간단하게 우분투를 VPN 서버로 만드는 방법을 알아보자.
PPTP로 만들면 windows 환경에서 따로 클라이언트 프로그램이 없어도 쉽게 연결할 수 있다.
설치
$ sudo apt-get install -y pptpd
local / remote ip 설정
/etc/pptpd.conf 파일 최하단에 다음을 추가한다.
locapip 192.168.13.1
remoteip 192.168.13.100-200
DNS 설정
/etc/ppp/pptpd-options 파일에서 ms-dns 항목을 주석을 풀고 수정한다.
ms-dns 8.8.8.8
ms-dns 8.8.4.4
사용자 추가
/etc/ppp/chap-secrets 파일 내용을 수정한다.
ID * Password * 순서로 사용자를 한명씩 추가하면 된다.
# Secrets for authentication using CHAP
# client server secret IP addresses
userId1 * Password1 *
userId2 * Password2 *
userId3 * Password3 *
userId4 * Password4 *
userId5 * Password5 *
userId6 * Password6 *
NAT 설정
사용자가 VPN을 통해 인터넷에 접속하려면 필요하다.
다음 명령어를 실행한다.
$ sudo su
# iptables -t nat -A POSTROUTING -s 192.168.13.0/24 -o eth0 -j MASQUERADE
# iptables-save > /etc/iptables.rules
# exit
그리고, /etc/rc.local 파일에 다음과 같이 추가해준다.
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will “exit 0” on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
# 여기 한 줄을 추가한다.
/sbin/iptables-restore < /etc/iptables.rule
exit 0
IP forwarding 설정
ip 포워딩을 허용하기 위해 커널 파라미터를 수정한다.
/etc/sysctl.conf 파일에서 net.ipv4.ip_forward=1 항목의 주석을 풀어주자.
.
.
.
# Uncomment the next line to enable TCP/IP SYN cookies
# See http://lwn.net/Articles/277146/
# Note: This may impact IPv6 TCP sessions too
#net.ipv4.tcp_syncookies=1
# Uncomment the next line to enable packet forwarding for IPv4
# 여기 한 줄의 주석을 해제한다.
net.ipv4.ip_forward=1
# Uncomment the next line to enable packet forwarding for IPv6
# Enabling this option disables Stateless Address Autoconfiguration
# based on Router Advertisements for this host
#net.ipv6.conf.all.forwarding=1
.
.
.
그 후, 바뀐 설정을 적용하기 위해 reload 해준다.
$ sudo sysctl -p
MTU 설정
네이버나 다음 같은 국내 포털 사이트들을 접속하기 위해 MTU를 수정해준다.
/etc/ppp/ip-up.local 파일에 다음과 같이 추가한다
(파일이 존재하지 않으면 생성해주자.)
ifconfig $1 mtu 1500
만약 위 설정으로 잘 동작하지 않으면 $1 을 ppp0 으로 바꿔보자
그리고 실행 가능하도록 권한을 수정한다.
$ sudo chmod a+x /etc/ppp/ip-up.local
pptpd 재시작
다음 명령어를 실행한다.
$ sudo service pptpd restart
위의 과정을 거치면 모든 설정이 완료된다.
시스템을 재시작해도 똑같이 적용된다.
* 참고
http://noise1.tistory.com/5
http://blog.riobard.com/2011/11/12/pptp-vpn-on-ubuntu/
http://blog.naver.com/PostView.nhn?blogId=ilinuxer0&logNo=60167759305