VPN 프로토콜을 구현하는 프로그램은 여러가지가 있고, 그중 하나가 pptp 이다.
먼저 서버쪽에서 어떻게 설정하는지를 보자. CentOS 6.X 버전 기준이다.
root 계정에서 다음의 명령어를 입력하자.
rpm --import http://poptop.sourceforge.net/yum/RPM-GPG-KEY-PPTP rpm -Uvh http://poptop.sourceforge.net/yum/stable/rhel6/pptp-release-current.noarch.rpm yum update yum install ppp pptpd -y
필요한 패키지 설치는 끝났다. 이제부터 설정에 들어가자.
/etc/pptpd.conf 파일을 조금 손 보자. 다른 건 건드릴 게 없고, 가장 아래쪽에
localip 192.168.1.2-254 remoteip 192.168.2.2-254
를 추가하면 된다.
그리고 /etc/ppp/options.pptpd 파일에 아래의 내용을 추가하거나 변경하자. DNS 는 다른 걸 써도 된다. 8.8.8.8 이라든가 …
ms-dns 168.126.63.2 ms-dns 168.126.63.1
마지막으로 /etc/ppp/chap-secrets 파일에다가 ID pptpd PASSWORD * 를 적어주면 된다. 예를 들자면 내 경우에는
akpil pptpd PASSWORD *
가 된다. PASSWORD 에는 반드시 비밀번호를 적어주어야 한다. PASSWORD 라고 적어주면 저 akpil 계정의 VPN 비밀번호는 PASSWORD 가 된다. 그리고 Tab 등을 쓰지 말고 스페이스바를 눌러서 띄어쓰기를 하자. 대개 저 파일에서 오류는 탭키 때문이다.
여기까지 하면 일단 VPN 설정은 끝났고, 이제 외부로 패킷을 포워딩하기 위한 설정 두어가지 정도 남아 있다. 먼저, /etc/sysctl.conf 파일에
net.ipv4.ip_forward = 1
이 있는지를 보자. 보통 1로 되어 있을텐데, 가끔 0으로 되어 있는 경우도 있다. 이 값이 바뀌었을 경우에는
sysctl -p
라고 터미널에서 입력해주면 된다.
그리고 iptables 설정을 좀 바꿔주어야 한다. 내 경우에는 /etc/rc.d/rc.iptables 라는 파일에다가.
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
를 적어놨다. 이 부분은 방화벽 설정마다 다르기 때문에 확인이 필요하다. 내 서버에서는 /etc/rc.d/rc.local 파일에서 /etc/rc.d/rc.iptables 파일을 불러오도록 해놨기 때문에 iptables 설정은 모두 /etc/rc.d/rc.iptables 파일에 넣어놨다. 저 규칙은 iptables 규칙 중 가장 앞쪽부분에 있어야 한다. 적어도 reject rule 설정 앞쪽에 있어야 한다.
pptpd 서비스를 등록하자.
chkconfig pptpd on
pptpd 데몬을 시작하자.
service pptpd start
여기까지 하면 서버 설정은 끝났다.
2014/07/02 akpil