PPTP VPN 서버

간단하게 우분투를 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




  • 우분투로 vpn 서버 설정을 하고 windows 에서 vpn 클라이언트로 접속까지 되었습니다. ping 테스트도 서버 및 서버게이트웨이, DNS까지 확인이 되었습니다. 그런데도 인터넷이 안되는 경우에는 어떤 부분에서 더 확인 하면 될까요?

    • 우선 NAT 설정하고 MTU 설정을 다시한번 보시는게 좋을 것 같습니다.
      만약 구글은 접속이 되는데 네이버가 접속이 안된다면 MTU 문제이고,
      모든 인터넷 사이트들이 접속이 안된다면 NAT 설정이 문제일 듯 합니다.

    • 아 NAT와 MTU 가 둘다 문제가 있어서 NAT 설정은 고쳐놨습니다… 말씀대로 구글은 열리는데
      네이버나 다음이 안열리는데요
      MTU 설정 부분에서 파일을 생성해서 그안에 ifconfig $1 mtu 1500 만 넣어놓으면 되는건가요??

    • 네, 만약 안되시면
      ifconfig ppp0 mtu 1500
      이렇게 해보세요.

    • 넵 바쁘실텐데 답변 감사합니다. 많은 도움 되었습니다~ ^^

  • 알고싶어요

    혹시 서버 동시접속이 최대 몇명까지 가능한지 아시나요?