VPN 서버 설정 (CentOS 6.X 기준)

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 파일을 조금 손 보자. 다른 건 건드릴 게 없고, 가장 아래쪽에

pptpd.conf
localip 192.168.1.2-254
remoteip 192.168.2.2-254

를 추가하면 된다.

그리고 /etc/ppp/options.pptpd 파일에 아래의 내용을 추가하거나 변경하자. DNS 는 다른 걸 써도 된다. 8.8.8.8 이라든가 …

options.pptpd
ms-dns 168.126.63.2
ms-dns 168.126.63.1

마지막으로 /etc/ppp/chap-secrets 파일에다가 ID pptpd PASSWORD * 를 적어주면 된다. 예를 들자면 내 경우에는

chap-secrets
akpil pptpd PASSWORD *

가 된다. PASSWORD 에는 반드시 비밀번호를 적어주어야 한다. PASSWORD 라고 적어주면 저 akpil 계정의 VPN 비밀번호는 PASSWORD 가 된다. 그리고 Tab 등을 쓰지 말고 스페이스바를 눌러서 띄어쓰기를 하자. 대개 저 파일에서 오류는 탭키 때문이다.

여기까지 하면 일단 VPN 설정은 끝났고, 이제 외부로 패킷을 포워딩하기 위한 설정 두어가지 정도 남아 있다. 먼저, /etc/sysctl.conf 파일에

sysctl.conf
net.ipv4.ip_forward = 1

이 있는지를 보자. 보통 1로 되어 있을텐데, 가끔 0으로 되어 있는 경우도 있다. 이 값이 바뀌었을 경우에는

sysctl -p 

라고 터미널에서 입력해주면 된다.

그리고 iptables 설정을 좀 바꿔주어야 한다. 내 경우에는 /etc/rc.d/rc.iptables 라는 파일에다가.

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