설정 conf, key 만들기 등은

http://blog.iolate.kr/121

이 글 참고.


사실 난 우분투에서 만들었던 키 들을 그대로 가져왔기 때문에 잘 모르겠지만

크게 다르진 않을거다.

easy-rsa 의 경우도 구글링 해볼 것.



일단 설치는 간단하다.

brew install openvpn


mac ports 로도 되는 것 같지만 brew 가 훨씬 편하니 난 저것만 쓰겠음.


설치하고 나면 daemon 관련 작업을 하라고 하는데

sudo cp -fv /usr/local/opt/openvpn/*.plist /Library/LaunchDaemons

이것만 하고 그 뒤에 launchctl load 부분은 일단 스킵.


설정 파일가 위치할 폴더는 /usr/local/etc/openvpn/ 이다.

(사실 어디에 있든 상관은 없다.)


위에 링크한, 우분투에 openVPN 설치 글을 참고하여 키와 설정파일 들을 만들자.


그러고 나서 아까 brew 설치 후 시키는 대로 복사한 파일을 수정하자.

루트 권한이니 그냥 터미널로 수정을 추천. 잘 모르겠으면 복사해서 수정 후 다시 집어넣어 주면 된다.


<array>

    <string>/usr/local/opt/openvpn/sbin/openvpn</string>

    <string>--config</string>

    <string>/usr/local/etc/openvpn/openvpn.conf</string>

  </array>

빨간색으로 표시한 부분을 자신의 설정파일에 맞게 바꿔주자.

나의 경우엔 server.conf


만약 디렉토리 자체를 다른 곳에서 시작한 경우 앞부분 경로를 맞게 수정해주고

밑에 WatchPaths 와 WorkingDirectory의 경로도 바꿔주면 된다.


그리고 저장.


데몬을 로드하기 전에 문제가 있나 확인하기 위해 직접 실행해 본다.

나의 경우 설정 파일 경로 부터 key 권한 문제까지 여러 문제가 많았거든..;;ㅋㅋ


자신의 설정파일이 위치한 폴더로 이동 후( cd /usr/local/etc/openvpn/ )

sudo /usr/local/opt/openvpn/sbin/openvpn --config /usr/local/etc/openvpn/openvpn.conf


위에서 설정한 환경에 따라 당연히 인자는 적절히 수정해 줄 것.

실행 후 

Initialization Sequence Completed

라는 메세지가 나오면 성공이다.


인터럽트 걸고 나온 후에

sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.openvpn.plist 

를 실행해 주자.



이 후 연결해보면 연결은 잘 될텐데 클라이언트에서 인터넷이 안된다.

우분투에서의 iptables 같은 작업이 필요한 것.


그건 이렇게 하면 된다.


sudo sysctl -w net.inet.ip.fw.enable=1

sudo sysctl -w net.inet.ip.forwarding=1

sudo natd -interface en0

sudo ipfw add divert natd ip from any to any via en0


얘도 재부팅마다 해줘야 하는데,


https://forums.openvpn.net/topic11401.html


여기 들어가보면 저 스크립트를 데몬화 해주는 방법이 있다.

2017.01.16 추가 - Ubuntu 16.04 LTS xl2tpd + strongswan 설치


아래 글은 Ubuntu 12.04 에서 작성 및 테스트하였다.


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


vpn 의 목적이

1. 학교에서 막힌 곳 뚫기

2. 컴퓨터나 서버와 간단히 연결하기


였는데 openvpn 의 불편함으로 l2tp 뚫어봤음...

3g 에서 l2tp 연결해두고 학교 와이파이 잡으면 정상 사용가능한게 미스터리..ㅋㅋ

와이파이는 연결되있고 인터넷은 3g 이용함...ㅠㅠ



openvpn 은 워낙 헤매서 기억을 더듬어 어느정도 써놨는데

l2tp 는 전혀 기억이 안나므로 과정 대충 베끼다가 설정 파일들은 그냥 다 첨부하겠음 ㅋㅋ


우선 ipsec 설치 / 설정

apt-get install openswan

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

그리고 저 파일 수정이지만 내 설정을 올리겠으


다음은 /etc/ipsec.conf


virtual_private 는 특정 서브넷을 허용하고, 거부한단건데 사실 잘 모르겠음. 난 그냥 대충 해놨고, 잘 작동함. ㅋ


그리고 /etc/ipsec.secrets 을 열어서

서버주소 %any: PSK "공용 암호키"

를 넣어준다.


그 다음 service ipsec restart



드디어 본론! l2tp 설치/설정


sudo apt-get install xl2tpd ppp


설치 후

/etc/xl2tpd/xl2tpd.conf 를 수정해준다



아이피 주소 같은건 알아서 수정하자.

참고로 10.~~ 를 사용하지 않고 다른 대역을 사용하려면 ipsec.conf 파일에 virtual_private 를 수정해야할 필요가 있을수도 있음.


다음은 /etc/ppp/options.xl2tpd



이것 역시 dns 정도는 알아서 바꿔주자.


다음으로 /etc/ppp/chap-secrets 파일을 수정해주자.

로그인 정보 파일이며 이거 수정후에 재시작해 줄 필요는 없다.


(아이디        서버이름   비밀번호            할당할 아이피)


이 정보들을 쓰면 된다. 간격은 탭으로 적당히 띄우면 됨.

서버 이름과 할당할 아이피에는 * 을 써도 됨.

ex)

id            l2tpd    password            *



xl2tpd 재시작 해주면 된다. ( service xl2tpd restart )



아 iptables 설정을 해줘야 한다.


iptables -A FORWARD -s 10.7.0.0/24 -j ACCEPT

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


그리고 네트워크 포워드까지..


echo 1 > /proc/sys/net/ipv4/ip_forward


마지막 iptables 설정이랑 ip_forward 이건 재부팅시 초기화 된다. 매번 재시작시 다시 해주거나 재시작시 자동으로 되게 알아서 하면 됨.



ps. 혹시 안되면 재부팅 해보셔요.. 안되던거 재부팅으로 해결 ㅡㅡ

ps2. 몇번 나눠쓰고 대충 써서 글이 이상하거나 빼먹은거 있을 수 있음.

어차피 나보라고 쓰는거니까 나를 위해 태클걸어주면 감사히 수정하겠습니다~(?) ㅋ

'Linux, Server, Web' 카테고리의 다른 글

phpmyadmin 에러  (2) 2012.11.18
사용해 본 VPS 비교  (2) 2012.11.14
우분투 openVPN 설치/설정법  (0) 2012.09.29
ftp / samba  (0) 2012.01.01
Ubuntu apache2/php5/mysql/mariadb  (0) 2012.01.01

포트 변경의 메리트로 사용하게된 openvpn.

내가 사용할 일 없는 443(원래는 https용)을 vpn 용으로 지정해놓으면 막힐일 거의 없다 ㅋ


단점이라면, 컴퓨터라면 클라이언트를 따로 설치해야 하고,

모바일 기기라면 루팅/탈옥이 꼭 필요하다는 점..ㅠㅠ

안드로이드엔 openvpn 에서 만든 프로그램이 있고

iOS에서는 GuizmOVPN 이라는 유료앱이 있음. 앱스토어에 OpenVPN 앱이 있다. 이거 쓰면 됨.



1. 설치

sudo apt-get install openvpn


2. 키 폴더 만들기

mkdir /etc/openvpn/easy-rsa/

cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa/


3. /etc/openvpn/easy-rsa/vars 수정

사실 안해도 되지만 그러면 키 하나 만들때 마다 귀찮음 ㅋ

export KEY_COUNTRY="KR"

export KEY_PROVINCE="NA"

export KEY_CITY="Daegu"

export KEY_ORG="iolate"

export KEY_EMAIL="iolate@me.com"


4. 서버 키 만들기

cd /etc/openvpn/easy-rsa/

source ./vars                        #위에 설정한거 적용

./clean-all                             #키 폴더 비움

./build-dh

./pkitool --initca                     #ca 키 생성

./pkitool --server server         #서버 키 생성


cd keys

#만들어진 키 이동

sudo cp server.crt server.key ca.crt dh1024.pem ../../


하다가 openssl 오류나 2.0 어쩌구 에러나면 easy-ssl 폴더 안에

openssl-1.0.0.cnf -> openssl.cnf 링크 만들어 주면 된다.


5. 서버 설정 (/etc/openvpn/server.conf)

뭐 설정 skel 파일이 있긴한데....



대충 이렇게 쓰면 됨.

길이가 너무 길어져서 주석들은 전부 뺏음 ㅋ


6. vpn 재시작

service openvpn restart



7. 클라이언트 정보 파일 생성

cd /etc/openvpn/easy-rsa/

source ./vars 

./pkitool client


8. 클라이언트 설정 파일 (이름.ovpn 혹은 이름.conf)



난 키 파일을 설정 파일에 다 집어넣는걸 선호해서 저렇게 해놨는데

싫다면  <~> </~> 부분을 제거 후

cert client.crt

key client.key

ca ca.crt

이렇게 각각 적어주고 설정파일(conf 혹은 ovpn)과 함께 배포하면 된다.


9. iptables 설정




openvpn이 다 좋긴 한데 위에 적었듯이 서드파티 앱이 반드시 필요하고

한번 배포한 인증서의 차단이 조금 쉽지 않다는 것이 흠..

'Linux, Server, Web' 카테고리의 다른 글

사용해 본 VPS 비교  (2) 2012.11.14
우분투 L2TP VPN 설치/설정법  (2) 2012.09.29
ftp / samba  (0) 2012.01.01
Ubuntu apache2/php5/mysql/mariadb  (0) 2012.01.01
Ubuntu 초기 LAN 설정 건너뛴 후 인터넷 연결이 안될때  (0) 2011.07.06

+ Recent posts