2015.05.03 08:42



압축(zip)

 tar cvzf file.tar.gz --exclude=file.tar.gz .

- 마지막의 .은 현재 폴더를 의미

- --exclude는 여러개 지정가능( --exclude=file1 --exclude=file2 ... )



내용확인

 tar tvf file.tar.gz



압축해제

 tar xvf file.tar.gz -C /etc/test



압축(bzip)

 tar cvpjf ssltools.tar.bz2 ssl/ 



해제

 tar xvpjf ssltools.tar.bz2

- 현재 폴더 하단의 ssl 폴더를 통째로 압축합니다.

- 해제시 하단에 폴더가 생기고 안에 풀립니다.

- tar로 파일을 묶고, bzip 으로 압축합니다.



tar --help 내용 중 일부

 -c, --create               create a new archive

 -t, --list                 list the contents of an archive

 -v, --verbose              verbosely list files processed

 -z, --gzip, --gunzip, --ungzip   filter the archive through gzip

 -f, --file=ARCHIVE         use archive file or device ARCHIVE


 --exclude=PATTERN      exclude files, given as a PATTERN

 -C, --directory=DIR        change to directory DIR




Posted by 해비
2015.04.29 00:58




민트데비안 콘솔모드 부팅설정


GRUB 수정

sudo vi /etc/default/grub

1

2

3

4

#GRUB_CMDLINE_LinUX_DEFAULT="quiet" 

GRUB_CMDLINE_LinUX_DEFAULT="text"


GRUB_TERMINAL=console

- 해당 항목 찾아서 변경한다.


1. GRUB_CMDLINE_LinUX_DEFAULT="quiet" 부분을 찾아서 앞에 '#' 으로 주석처리.

   (="quiet" 뒤에 무언가 더 들어있는 경우도 있다. 무시하자.)


2. GRUB_CMDLINE_LinUX_DEFAULT="text" 추가

   (GRUB_CMDLINE_LinUX_DEFAULT="" 으로 되어있는 경우, 안에 text 만 추가)


3. GRUB_TERMINAL=console 추가

   (주석으로 막혀 있는 경우, 주석 해제만 한다.)




적용...?

sudo update-grub 




재부팅 해서 확인 하면 끝~!






[참고]

http://ask.xmodulo.com/boot-into-command-line-ubuntu-debian.html

http://linuxmint.kr/8676



P.S.

- 한국 민트 리눅스 사용자 모임에 질문글 올렸다가 bagjunggyu님의 답변을 받아 적용 후 정리하였습니다. bagjunggyu님 감사합니다.



Posted by 해비
2015.04.28 00:17



삼바(SAMBA) 서버설치

 sudo apt-get install samba

 sudo apt-get install smbclient

 sudo apt-get install samba-common-bin 




설정1 - 공유폴더

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak

sudo vim /etc/samba/smb.conf


 /etc/samba/smb.conf

1

2

3

4

5

6

7

8

9

10

11

12

13

14

workgroup = WORKGROUP

dos charset = CP949

display charset = UTF8

unix charset = UTF8


[nas_rw]

path = /usr/hdd1/nas

writable = yes

valid users = net1


[nas_r]

path = /usr/hdd1/nas

writable = no

guest = yes

- 기본 smb.conf 내용을 모두 다 지우고 이 내용만으로 채웠는데 잘 되더라능~

- 갠히 기존파일에 수정만 했다가 안된다고 씩씩댔었다. (그냥 참고만...)

- 윈도우 에서 네트워크 드라이브 연결 시 폴더 2개가 노출된다. (nas_rw, nas_r)

- nas_rw 에 연결하기 위해서는 아이디가 net1 이어야 한다. 쓰기권한 yes 이므로 읽고, 쓰고 다 된다.

- nas_r 에 연결하기 위해서는 smb에 등록된 어떤 아이디든 가능하다. 쓰기권한 no 이므로 읽기만 된다.

노출될 폴더명, 사용자 아이디는 임의로 설정하자.




설정2 - 사용자 추가

sudo useradd net1

sudo useradd netr


sudo passwd -d net1

sudo passwd -d netr


sudo smbpasswd -a net1

sudo smbpasswd -a netr

- 사용자 추가

- 패스워드 제거(SSH 접속을 원천적으로 막음)

- 삼바 사용자 추가

  - 리눅스에 존재하는 사용자명과 동일한 사용자명으로 추가, 패스워드는 동일하지 않아도 된다

  - a 옵션 은 사용자 추가를 의미 하므로, 패스워드 변경시 -a 옵션 없이 입력한다.




포트개방

sudo iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 137:139 -j ACCEPT

sudo iptables -A INPUT -m state --state NEW -m udp -p udp --dport 137:139 -j ACCEPT

sudo iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT




서비스시작

sudo /etc/init.d/samba restart






Posted by 해비
2015.04.05 20:09

Tor WiFi Router 만들기

WiFi 접속만으로 Tor Network 에 연결할수 있는 라우터를 만들어 보겠습니다.


준비물

- Raspberry pi 본체 (또는 linux OS가 설치된 시스템)

- USB WLAN(RTL8188CUS) 무선랜

  (여기서는 iptime의 N100mini 를 사용했습니다만 동일 칩셋이 들어간 어떤 무선랜이라도 상관없을 것이라 봅니다)

- SD(Raspbian OS) 라즈비안OS가 설치된 SD 메모리 (기타 저장장치에 linux 가 설치된 시스템이면 필요없음)


결과물

- Tor WiFi AP 토르 네트워크에 연결되는 와이파이 액세스 포인트



Tor 이 무엇인지, 어디에 쓰이는지 모르시는분들은 검색해서 참조하여 주십시오.

(양파 모양의 아이콘을 띄고 있습니다.)




[작업순서]

1. AP가 될 무선랜 어뎁터의 IP 설정

2. DHCP서버 설치 및 설정

3. 무선랜을 AP로 변신시켜줄 hostapd 설치 및 설정

4. rtl871xdrv 가 포함된 hostapd 를 다운로드 하여 덮어쓰자

5. tor 설치 및 설정

6. iptables 설정

7. 로그 파일 생성 및 설정

8. Tor 자동시작 설정




1. AP가 될 무선랜 어뎁터의 IP 설정

sudo vim /etc/network/interfaces

1

2

3

4

 iface wlan0 inet static

 address 192.168.42.1

 netmask 255.255.255.0

 up iptables-restore < /etc/iptables.ipv4.nat




2. DHCP서버 설치 및 설정

 # sudo apt-get install isc-dhcp-server

- DHCP 서버 설치



sudo vim /etc/dhcp/dhcpd.conf

1

2

3

4

5

6

7

8

9

10

11

12

 #option domain-name "example.orWg";

 #option domain-name-servers ns1.example.org, ns2.example.org;

 authoritative;

 subnet 192.168.42.0 netmask 255.255.255.0 {

 range 192.168.42.10 192.168.42.50;

 option broadcast-address 192.168.42.255;

 option routers 192.168.42.1;

 default-lease-time 600;

 max-lease-time 7200;

 option domain-name "local";

 option domain-name-servers 8.8.8.8, 8.8.4.4;

 }

- 진하게 표시된 부분에 유의하여 설정을 진행합니다.




 # sudo vim /etc/default/isc-dhcp-server

1

 INTERFACES="wlan0"

- DHCP를 적용할 장치를 설정합니다.



 # sudo service isc-dhcp-server restart

- DHCP 서버 재시작




3. 무선랜을 AP로 변신시켜줄 hostapd 설치 및 설정

 # sudo apt-get install hostapd

- hostapd 설치



sudo vim /etc/hostapd/hostapd.conf

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

 interface=wlan0

 #driver=nl80211

 driver=rtl871xdrv

 ssid=onionWiFi

 hw_mode=g

 ieee80211n=1

 wmm_enabled=1

 wmm_ac_bk_cwmin=4

 wmm_ac_bk_cwmax=10

 wmm_ac_bk_aifs=7

 wmm_ac_bk_txop_limit=0

 wmm_ac_bk_acm=0

 wmm_ac_be_aifs=3

 wmm_ac_be_cwmin=4

 wmm_ac_be_cwmax=10

 wmm_ac_be_txop_limit=0

 wmm_ac_be_acm=0

 wmm_ac_vi_aifs=2

 wmm_ac_vi_cwmin=3

 wmm_ac_vi_cwmax=4

 wmm_ac_vi_txop_limit=94

 wmm_ac_vi_acm=0

 wmm_ac_vo_aifs=2

 wmm_ac_vo_cwmin=2

 wmm_ac_vo_cwmax=3

 wmm_ac_vo_txop_limit=47

 wmm_ac_vo_acm=0

 channel=6

 macaddr_acl=0

 auth_algs=1

 ignore_broadcast_ssid=0

 wpa=2

 wpa_passphrase=yourpassword

 wpa_key_mgmt=WPA-PSK

 wpa_pairwise=TKIP

 rsn_pairwise=CCMP

- 1. AP의 장치명을 설정.

- 3. AP의 드라이버명을 지정.

- 4. SSID 에 노출될 명칭

- 6. n 모드 지원

- 7 ~ 27. WMM (무선 QoS) 설정

- 28. 사용할 무선랜 채널

- 30~36. 무선보안 설정



# sudo vim /etc/default/hostapd

1

 DAEMON_CONF="/etc/hostapd/hostapd.conf"

- hostapd.conf 파일위치 설정




4. rtl871xdrv 가 포함된 hostapd 를 다운로드 하여 덮어쓰자

1

 # wget http://www.adafruit.com/downloads/adafruit_hostapd.zip 

2

 # unzip adafruit_hostapd.zip 

3

 # sudo mv /usr/sbin/hostapd /usr/sbin/hostapd.ORIG 

4

 # sudo mv hostapd /usr/sbin

5

 # sudo chmod 755 /usr/sbin/hostapd




5. tor 설치 및 설정

 # sudo apt-get install tor 

- tor 설치



sudo vim /etc/tor/torrc

1

2

3

4

5

6

7

8

 Log notice file /var/log/tor/notices.log

 VirtualAddrNetwork 10.192.0.0/10

 AutomapHostsSuffixes .onion,.exit

 AutomapHostsOnResolve 1

 TransPort 9040

 TransListenAddress 192.168.42.1

 DNSPort 53

 DNSListenAddress 192.168.42.1

- 7, 8 IP주소는 위에서 설정한 wlan0 의 것과 동일하게 합니다.




6. iptables 설정

 iptables -P INPUT ACCEPT

 iptables -F


 iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP

 iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP

 iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP


 iptables -A INPUT -i lo -j ACCEPT


 iptables -A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT


 iptables -A INPUT -i eth0 -p udp --sport 68 --dport 67 -j ACCEPT


 iptables -A INPUT -i wlan0 -j ACCEPT


 iptables -A INPUT -i eth0 -p tcp -m tcp --sport 137 --dport 137 -j ACCEPT

 iptables -A INPUT -i eth0 -p udp -m udp --sport 137 --dport 137 -j ACCEPT

 iptables -A INPUT -i eth0 -p udp -m udp --sport 138 --dport 138 -j ACCEPT

 iptables -A INPUT -i eth0 -p tcp -m tcp --sport 139 --dport 138 -j ACCEPT


 iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT


 iptables -A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7

 iptables -P INPUT DROP


 iptables -P OUTPUT ACCEPT


 iptables -nL

 

 iptables -t nat -F

 iptables -t nat -A PREROUTING -i wlan0 -p tcp --dport 22 -j REDIRECT --to-ports 22

 iptables -t nat -A PREROUTING -i wlan0 -p udp --dport 53 -j REDIRECT --to-ports 53

 iptables -t nat -A PREROUTING -i wlan0 -p tcp --syn -j REDIRECT --to-ports 9040

 iptables -t nat -nL

- eth0 포트 22 는 ssh 접속용, 67~68 은 dhcp, 137~139 는 netbios (RFC 1001, 1002 문서 참고)

- wlan0 의 포트 리다이렉트 설정은 ssh 접속용인 22번을 제외하고 tor 라우터 설정.




1

 # sudo iptables-save > iptables.conf

2

 # sudo cp iptables.conf /etc/iptables.conf

- 부팅 후 iptables 규칙이 유지되도록 현재 규칙을 저장



sudo vim /etc/network/interfaces

1

 pre-up iptables-restore < /etc/iptables.conf

- eth0 설정 아랫부분에 위 내용 추가




7. 로그 파일 생성 및 설정

1

 # sudo touch /var/log/tor/notices.log

2

 # sudo chown debian-tor /var/log/tor/notices.log

3

 # sudo chmod 644 /var/log/tor/notices.log




8. Tor 자동시작 설정

1

 # sudo service tor start

2

 # sudo service tor status

3

 # sudo update-rc.d tor enable



ls -l /var/log/tor 

- tor 로그를 확인할 수 있다.




웹브라우저를 열고 아래 주소에 접속하면 Tor 네트워크에 연결되었는지를 확인할 수 있다.

https://check.torproject.org



만약 위 화면과 다르게 양파에 붉은 X 자 표시가 되어있다면, Tor 네트워크로 접속되지 않았음을 의미한다.




[변경사항]

- 2015.04.22 : iptables 설정 중 deny 로그 남기는 부분의 설정 위치에 대한 오류가 있어 정정합니다.






[참고사이트]

http://www.maketecheasier.com/set-up-raspberry-pi-as-wireless-access-point/

http://www.raspberrypi.org/forums/viewtopic.php?t=53943&p=413909

http://www.raspberrypi.org/forums/viewtopic.php?f=28&t=44044

https://learn.adafruit.com/onion-pi/install-tor

http://www.instructables.com/id/Raspberry-Pi-Tor-relay/step1/Start-the-TOR-Server/

http://w1.fi/cgit/hostap/plain/hostapd/hostapd.conf






Posted by 해비
2015.01.28 13:30

Tomcat 설치




다운로드

http://tomcat.apache.org/



­압축해제

# tar ­-zxf apache­-tomcat­-8.0.17.tar.gz ­-C /usr/share/tomcat8



­링크설정

# ln -­s /usr/share/tomcat8/apache-­tomcat­-8.0.17 /usr/share/tomcat

- 링크 설정을 하는 이유는 나중에 버젼업이 되어 새 버젼의 톰캣을 설치후 링크 를 변경하는 것으로 다른 파일들의 톰캣 경로를 그대로 사용하고자 함 입니다.


­톰캣계정 추가

# useradd tomcat



­소유권 변경, 실행권한 설정

# chown -­R tomcat:tomcat /usr/share/tomcat8
# chmod +x /usr/share/tomcat/bin/*.sh

- 톰캣 ­8.0.17버젼에서는 기본적으로 실행권한 설정이 되어 있었다.



톰캣 시작/종료

sudo /bin/su ­ - tomcat ­-c /usr/share/tomcat/bin/startup.sh
sudo /bin/su ­ - tomcat ­-c /usr/share/tomcat/bin/shutdown.sh



­시작/종료 스크립트 생성

# vi /etc/init.d/tomcat

#!/bin/sh
### BEGIN INIT INFO
# Provides: Tomcat
# Required­Start: $network
# Required­Stop: $network
# Default­Start: 2 3 5
# Description: Java Servlet and JSP Engine
### END INIT INFO

case "$1" in
'start')
/bin/su ­ - tomcat ­-c /usr/share/tomcat/bin/startup.sh
;;
'stop')
/bin/su ­ - tomcat ­-c /usr/share/tomcat/bin/shutdown.sh
;;
*)
echo "Usage: $0 { start | stop }"
;;
esac
exit 0



실행권한 부여

# chmod 755 /etc/init.d/tomcat



자동시작 등록

update­rc.d tomcat defaults

- 부팅 시 자동으로 톰캣 서버가 실행되도록 한다.



자동시작 제거

update­rc.d -­f tomcat remove



관리페이지 경로 변경

도메인 루트는 서비스에 사용하면서 동시에 톰캣 관리 페이지를 사용하고자 할때, 관리페이지 접근경로를 변경 한다.


/usr/share/tomcat/webapps/ROOT

톰캣 루트 경로 이다.


관리 페이지에 접근시 사용할 경로(이하 여기서는 /tcman) 으로 한다.

/usr/share/tomcat/webapps/ROOT/tcman 폴더 생성


/usr/share/tomcat/webapps/ROOT/ 폴더에서 WEB­INF 폴더를 제외한 모든 파일을 tcman 으로 이동


톰캣 재기동

/etc/init.d/tomcat stop

/etc/init.d/tomcat start


이제 /tcman 을 붙여야지 관리페이지로의 접근이 가능하다.

물론 / 로 접근 시 404 오류를 내뱉을 것이다. 파일 없다고...


오류 보기가 싫으면 index.html 하나 만들어서 임시로 넣어두는 것도 좋은 방법~

- 관리페이지 경로 변경은 제가 생각한 방법인데, 더 좋은 방법이 있을지는 모르겠네요...





- 참고 -

http://wolfpaulus.com/jounal/software/tomcat_squeeze/comment­page­1/#comment­60189
http://fruitdev.tistory.com/19
https://www.debian­administration.org/article/28/Making_scripts_run_at_boot_time_with_Debian






Posted by 해비
2015.01.28 13:11

Oracle JDK 설치

리눅스에 기본 설치된 OpenJDK 또는 JRE ? 대신 오라클에서 제공하는 자바 가상머신 설치 방법에 대해 설명합니다.


모든 과정은 Root 권한으로 진행합니다.

매 구문마다 sudo 명령어를 붙여서 진행해도 되지만 불편하다면 su - root 로 아예 루트권한으로 바꾼 후 작업 합니다.




다운로드

오라클 사이트에 가서 최신 자바 JDK를 다운로드 합니다.

http://www.oracle.com/technetwork/java/index.html




­압축해제

# tar ­-zxf jdk-­8u31-­linux­-x64.tar.gz ­-C /opt/jdk/

- 표시된 부분의 파일명은 JDK 버젼과 OS 버젼에 따라 다릅니다. 알아서 수정할 것!




설치확인

# ls /opt/jdk/
jdk1.8.0_31

- ls 명령어 실행 시, jdk어쩌고 폴더가 리스트에 있다면 성공적으로 설치된 것 입니다.


기본JDK설정 (2개 다 실행한다)

# update­alternatives --­­install /usr/bin/java java /opt/jdk/jdk1.8.0_05/bin/java 100
# update­alternatives ­­--install /usr/bin/javac javac /opt/jdk/jdk1.8.0_05/bin/javac 100

(노란배경 부분은 설치확인 명령에서에 확인된 폴더명으로 버젼에 맞게 수정한다.)

- java, javac 명령어 입력 시 현재 설치된 것을 불러오도록 설정 합니다.


기본설정 확인

# update­alternatives ­­--display java
# update­alternatives ­­--display javac

- ­ 자바 버젼을 계속 구 버젼 참조하면 우선순위 변경(표시된 위치는 알아서 시스템에 맞게 수정)




우선순위 변경

# update­alternatives ­­--install /usr/bin/java java /usr/lib/jvm/java­6­openjdk­amd64/jre/bin/java 90

- 맨 뒤의 숫자가 클 수록 우선순위가 높다. 우리가 설정한 수치는 100 이었으므로 100 보다 작은 수로 지정을 한다.

- 기존 것 손대기 싫다면, 저위에 수치를 100 대신 기존 수치 보다 더 높은 값으로 지정해 주면 된다.






- 참고 -

https://www.digitalocean.com/community/tutorials/how­to­manually­install­oracle­java­on­a­debian­or-
ubuntu­vps






Posted by 해비
2015.01.24 08:46

SSH 터널을 이용한 VNC 연결




Putty 설정 창으로 가서...

접속 > SSH > X11 > X11 포워딩 사용 항목 체크




접속 > SSH > 터널링 > 원포트 5900, 로컬, 127.0.0.1:5900 추가
(포트 번호는 상황에 맞게 수정 필요함, 여기서는 0번 디스플레이사용으로 가정함)




x11vnc 접속 예시.

- 뭔가 휑한 빈화면 보여주는건 좀 그렇다 싶어서 최대한 있어보이게(?) 만들고 캡쳐~






사용된 x11vnc 시작 명령어

 sudo x11vnc -auth guess -display :0

- sudo 안 붙이고 그냥 적으니까 display:0 번 어쩌고 오류남...(이유는 모르겠는데 아마 특정 파일에 접근이 안되나 봄)






[내용추가]

1. VNC 서버를 현재 데스크탑 화면을 직접 조정

apt-get install x11vnc 

하나의 데스크탑이 공유되므로 동시에 같은 화면을 보게 됩니다.



2. 별도의 가상 데스크탑 화면으로 접속

apt-get install tightvncserver

각각 독립적인 가상의 데스크탑으로 접속되므로 별도의 화면에서 작업하게 됩니다.





Posted by 해비
2015.01.10 10:27

L2TP VPN서버 구축



L2TP 의 장점은 아래 사이트에 자세히 비교가 되어있습니다.

http://kr.giganews.com/vyprvpn/compare-vpn-protocols.html


요약하자면, 보통의 공유기에 내장된 PPTP VPN 보다 보안성이 뛰어나면서 iOS 디바이스에 적용 가능한 유일한 프로토콜!

안드로이드나 PC같은 경우는 OpenVPN 이 더 나을수도 있습니다만 아이폰은... ㅠㅠ;;


L2TP가 설치되는 서버가 방화벽 아래에 있다면 반드시 아래의 포트를 열어 주셔야 합니다.

TCP

 1701

UDP

 4500

UDP

 500






전체 설치 과정

1. 프로그램 설치
2. 설정
    2.1 OpenSwan 설정
        2.1.1 l2tp-psk.conf 설정
        2.1.2 ipsec.conf 설정
        2.1.3 ipsec.secrets 설정

    2.2 xl2tpd 설정
        2.2.1 xl2tpd.conf 설정
    2.3 ppp 설정
        2.3.1 options.xl2tpd 설정
        2.3.2 chap-secrets 설정
3. 서비스 재시작 




1. 프로그램 설치

apt-get install openswan xl2tpd ppp

3개의 패키지를 설치 합니다.




2. 설정

2.1 OpenSwan 설정

2.1.1 l2tp-psk.conf 설정

/etc/ipsec.d/l2tp-psk.conf

-------------------------



conn L2TP-PSK-NAT
     rightsubnet=vhost:%priv
     also=L2TP-PSK-noNAT

conn L2TP-PSK-noNAT
     authby=secret
     pfs=no
     auto=add
     keyingtries=3
     rekey=no
     dpddelay=10
     dpdtimeout=90
     dpdaction=clear
     ikelifetime=8h
     keylife=1h
     type=transport
     left=192.168.0.100
     leftprotoport=17/1701
     right=%any
     rightprotoport=17/%any

- left=192.168.0.100 이 부분은 현재 자신이 할당받은 IP를 적어준다. (예 : eth0 에 할당되어 있는, 실제 인터넷에 연결된 IP주소)



2.1.2 ipsec.conf 설정

/etc/ipsec.conf

---------------



version 2.0

config setup
     dumpdir=/var/run/pluto/
     nat_traversal=yes
     virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:25.0.0.0/8,!%v4:10.0.1.0/24,%v6:fd00::/8,%v6:fe80::/10
     oe=off
     protostack=netkey

include /etc/ipsec.d/l2tp-psk.conf



2.1.3 ipsec.secrets 설정

/etc/ipsec.secrets

------------------



192.168.0.100 %any:    PSK "secretcode"

- 앞의 IP주소는 2.1.1 항목과 동일하게 설정, PSK 는 사전 공유된 비밀키 인데 임의로 복잡하게 설정하여 쉽게 알아내거나 유추하지 못하도록 설정 한다.

- VPN 연결 시, 접속하려는 모든 사용자는 이 PSK 코드를 알고 있어야 접속 가능하다.




2.2 xl2tpd 설정

2.2.1 xl2tpd.conf 설정

/etc/ipsec.secrets

------------------



[global]

[lns default]
ip range = 10.7.0.2-10.7.0.20
local ip = 10.7.0.1

length bit = yes
require chap = yes
refuse pap = yes
require authentication = yes
pppoptfile = /etc/ppp/options.xl2tpd 

- iprange : VPN에 연결된 클라이언트가 할당받을 IP대역입니다.

- local ip : VPN서버 자신이 할당받을 IP 입니다.




2.3 ppp 설정

2.3.1 options.xl2tpd 설정

/etc/ppp/options.xl2tpd

----------------------



require-mschap-v2
ms-dns 168.126.63.1
asyncmap 0
auth
crtscts
lock
hide-password
modem
debug
name l2tpd
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4



2.3.2 chap-secrets 설정

/etc/ppp/chap-secrets

-----------------------



# Secrets for authentication using CHAP
# client    server    secret            IP addresses
user1    l2tpd    password1    *
user2    l2tpd    password2    *

- 사용자ID, 서버타입, 암호, IP주소 순으로 나열해서 적어주면된다.

- IP주소에 * 대신 10.7.0.3 이런식으로 할당해서 지정해 놓을수도 있다.

  (이 경우, 동일 ID로 2번째 접속한 사람은 중복IP로 인하여, VPN네트워크가 정상적으로 동작하지 않는다.)




3. 서비스 재시작

sudo service xl2tpd start 

sudo service ipsec start

- 이미 서비스가 시작되어 있다면, restart 명령어로 재시작 한다.




#. 인터넷 연결을 위해 체크할 사항들

NAT 설정

iptables -t nat -A POSTROUTING -s 10.7.0.0/24 -o eth0 -j MASQUERADE


포워딩 설정

sysctl -w net.ipv4.ip_forward=1


- 리붓시 다시 설정이 필요합니다.

- 인터넷 연결이 안되어 본 명령어 적용시 현재 연결중인 VPN끊고 다시 연결 하셔야 합니다.

- 상세 정보는 아래 링크로 대체 합니다.

http://haebi.kr/entry/iptables를-사용한-인터넷-공유설정
http://haebi.kr/entry/ipv4forwarding-확인-및-설정






1. 아이폰에서 VPN설정 후 연결하여 테스트 진행.

2. VPN연결되면 상단에 VPN 마크가 표시됨.

3. 그런데 인터넷이 안되는 상황 발생...?

4. iptables MASQUERSDE 설정으로 VPN IP에 인터넷 공유가  필요 (아래 링크)

    http://haebi.kr/entry/iptables를-사용한-인터넷-공유설정

5. 잘 안된다면 기존의 설정파일을 여기 설정으로 대체 하자!! (기존 파일이 필요할지도 모르니 백업은 알아서들 하시고~)



- [2015.01.12] iOS에서도 해당 어플 설치 시 OpenVPN이 됩니다.

- [2015.01.15] 인터넷 연결시 추가로 확인할 사항을 본 포스트에 추가 하였습니다.



참고 : http://blog.iolate.kr/122



Posted by 해비
2015.01.10 09:22

iptables를 사용한 인터넷 공유설정



iptables -t nat -A POSTROUTING -s 10.7.0.0/24 -o eth0 -j MASQUERADE

-s 뒤에 오는 것은 소스IP 의 대역입니다.(공유된 인터넷을 사용할 내부 IP)

-o 뒤에 오는 eth0 은 실제 인터넷에 연결된 이터넷 장치 입니다.



위 예문은 10.7.0.0 의 IP 대역으로 부터의 패킷을 etho 으로 -j 점프(?) 시킨다 입니다.

(로컬 IP대역은 각자 상황에 맞게 수정하여야 합니다.)


-s 뒤에 /24 는 서브넷 마스크 255.255.255.0 을 의미 합니다.




왜 24 라는 숫자가...?


서브넷 마스크(255.255.255.0)를 2진수로 풀어내면 아래와 같이 됩니다.

255

 255

 255

 0

 11111111

 11111111

 11111111

 00000000


여기서 1의 갯수가 총 24개 !! 바로 이것입니다.


1이 1개 더 증가해서

11111111.11111111.11111111.10000000 이라면


서브넷 마스크 는

255.255.255.128 이 되겠군요...




이렇게 했는데 그런데 안되쟎...?


제 경우 ipv4_forwarding 설정이 0 이어서 안된 경우가 있었습니다. 덕분에 리눅스 재설치 까지 해가며 삽질을...;;

ipv4_forwarding 설정을 확인 하시고, 1로 설정한 후 네트워크 서비스를 재시작 하였더니 바로 잘 동작하였습니다.



ipv4_forwarding설정 방법

http://haebi.kr/entry/ipv4forwarding-확인-및-설정



Posted by 해비
2015.01.10 09:03

현재 포워딩 상태 확인

sysctl net.ipv4.ip_forward




ipv4 패킷 재전송을 허용하고자 하는경우, 아래와 같이 설정한다.


vim /etc/sysctl.conf

net.ipv4.ip_forward=1


# 으로 주석처리 되어있는 경우, 주석을 제거하고, 0 으로 설정 또는 아예 없는 경우 추가 및 수정한다.

이 파일 수정 시 매 부팅마다 자동 적용된다.




만약, 현재 시스템 가동중에만 수행하고 재부팅시 리셋되기를 원한다면 아래 명령어를 입력한다.

sysctl -w net.ipv4.ip_forward=1




작업 후, 네트워크 서비스 재시작을 하여야 적용된다.

네트워크 서비스 재시작 방법

http://haebi.kr/entry/Network-Service



p.s.

Debian Linux 에서 작업한 내용이며, 다른 계열의 리눅스 에서는 다를 수 있습니다.


출처 : http://linuxpoison.blogspot.kr/2008/01/how-to-enable-ip-forwarding.html

Posted by 해비