CentOS 6에서 pptp VPN 서버 설정
OS 확인
[root@vm ~]# cat /etc/redhat-release
CentOS release 6.6 (Final)
[root@vm ~]# yum install ppp
pptpd 패키지 설치
http://poptop.sourceforge.net/yum/beta/packages/ 를 방문하여 최신 버전을 확인 하여 사용하세요.
[root@vm ~]# cd /usr/local/src
[root@vm ~]#
[root@vm ~]# wget http://poptop.sourceforge.net/yum/beta/packages/ppp-2.4.5-33.0.rhel6.x86_64.rpm
[root@vm ~]# rpm -Uvh ppp-2.4.5-33.0.rhel6.x86_64.rpm
[root@vm ~]#
[root@vm ~]# wget http://poptop.sourceforge.net/yum/beta/packages/pptpd-1.4.0-1.rhel5.1.x86_64.rpm
[root@vm ~]# rpm -Uvh pptpd-1.4.0-1.rhel5.1.x86_64.rpm
설정
- /etc/pptpd.conf
- /etc/ppp/options.pptpd
- /etc/ppp/chap-secrets
- /etc/sysctl.conf
/etc/pptpd.conf 설정
/etc/pptpd.conf
설정 파일에 파일에서 아이피 정보를 설정합니다.
connections 10
localip 192.168.99.1
remoteip 192.168.99.100-200
- connections : 접속할 클라이언트 수를 지정합니다.
- localip : pptp vpn상에서의 현재 서버에 할당하고 싶은 아이피를 설정합니다.
- remoteip : 접속한 클라이언트에 할당할 아이피의 범위를 설정합니다. 위 예제에서는 192.168.99.100 에서부터 200번 사이의 아이피를 순차적으로 접속 클라이언트에 할당합니다.
etc/ppp/options.pptpd 설정
etc/ppp/options.pptpd
설정 파일에 DNS와 mtu(패킷을 한번에 보낼 수 있는 최대크기)등을 설정합니다. 아래의 설정을 추가하지 않고 디폴트 설정 그대로 운영하도 무방합니다.
ms-dns 8.8.8.8
ms-dns 8.8.4.4
mtu 1400
/etc/ppp/chap-secrets 설정
/etc/ppp/chap-secrets
파일에 접속 클라이언트의 인증 계정에 대해 설정합니다.
아래 예제에서는 접속 클라이언트의 인증 아이디로는 user1로 비밀번호로는 password1를 설정하였습니다. 실제 서버에서는 로그인 아이디와 복잡한 비밀번호로 설정할 필요가 있습니다.
# Secrets for authentication using CHAP
# client server secret IP addresses
user1 * password1 *
/etc/sysctl.conf 설정
/etc/sysctl.conf
에서 ipv4의 포워딩을 허용하도록 설정합니다.
# Controls IP packet forwarding
net.ipv4.ip_forward = 1
설정을 변경한 후에서 sysctl -p
커맨드를 실행하여 설정을 리로드합니다.
[root@docker-vm ~]# sysctl -p
net.ipv4.ip_forward = 1
pptpd 프로세스 기동
[root@vm ~]# /etc/init.d/pptpd restart
Shutting down pptpd: [ OK ]
Starting pptpd: [ OK ]
Warning: a pptpd restart does not terminate existing
connections, so new connections may be assigned the same IP
address and cause unexpected results. Use restart-kill to
destroy existing connections during a restart.
기타 사항
SELinux의 무효화
/etc/selinux/config
파일을 열어 SELINUX=disabled
로 설정을 변경합니다. /etc/selinux/config
파일에는 SELINUX
와 SELINUXTYPE
가 기술되어 있으니 SELINUXTYPE
에 disabled 설정 하지 않도록 주의 합니다.
[root@vm ~]# vi /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
설정을 변경한 후에는 재부팅이 필요합니다. 혹여 잘못하여 SELINUXTYPE
에 disabled 로 설정하여 재부팅하게되면 커널 패닉으로 재부팅 되지 않아 패닉상태가 될 수도 있습니다. 혹여 SELINUXTYPE
에 disabled 설정하여 커널 패닉 화면을 보게 되신다면 SELinux 무효화 설정 후 kernel panic 복구 을 참고하여 복구하세요.
로그 출력
로그를 출력하여 접속을 확인할 경우 /etc/pptpd.conf
의 debug를 활성화 하여 로그를 출력할 수 있습니다.
[root@vm ~]# vi /etc/pptpd.conf
# TAG: debug
# Turns on (more) debugging to syslog
#
debug
debug
설정후 아래와 같이 rsyslog.conf(syslog.conf)에 debug
를 추가하여 /var/log/pptpd
에 로그를 출력하도록 합니다.
[root@vm ~]# vi /etc/rsyslog.conf
*.=debug;\
news.none;mail.none -/var/log/pptpd
iptable 설정
혹시 iptable를 설정하였을 경우는 아래를 참조해 주세요.
pptp vpn에서 사용하는 포트인 1723 포트 개방과 위에서 ppp0에서 사용할 192.168.99.0/24
에 포워딩 설정한 내용입니다.아래 예제에서는 sshd의 기본 포트 22번도 열어 놓고 있습니다.
[root@vm ~]# cat /etc/sysconfig/iptalbes
# Generated by iptables-save v1.4.7 on Fri May 29 16:53:48 2015
*nat
:PREROUTING ACCEPT [17:1691]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [4:289]
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
# Completed on Fri May 29 16:53:48 2015
# Generated by iptables-save v1.4.7 on Fri May 29 16:53:48 2015
*filter
:INPUT ACCEPT [39:4272]
:FORWARD ACCEPT [6:466]
:OUTPUT ACCEPT [45:5831]
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 1723 -j ACCEPT
-A INPUT -i eth0 -p gre -j ACCEPT
-A FORWARD -s 192.168.99.0/24 -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j TCPMSS --set-mss 1356
COMMIT
# Completed on Fri May 29 16:53:48 2015
Windows 에서 VPN 클라이언트 접속
윈도우 8.1 에서 위에서 설정한 VPN서버에 접속하는 방법입니다.
새연결 네트워크 설정
을 클릭하여 새로운 네트워크 연결을 생성합니다.
회사에 연결(VPN)
을 선택합니다.
내 인터넷 연결 사용(VPN)
을 선택합니다.
인터넷 주소
에 위 서버의 아이피를 입력하고 대상 이름
부분에서 알아보기 쉬운 별칭 이름을 입력하고 만들기
버튼을 클릭하면 대상 이름
에 설정한 이름으로 네트워크 연결이 생성됩니다.
제어판\네트워크 및 인터넷\네트워크 연결
에서 확인 하면 위에서 생성한 네트워크 연결이 생성 되어 있는 것을 확인 할 수 있습니다.
그림
새로 생성한 내트워크 연결을 선택하고 마우스 오른쪽 버튼을 클릭하면 속성
을 클릭합니다.
그림
Internet Protocol Version 4(TCP/IPv4)
를 선택하고 속성
버튼을 클릭하여 세부 설정 창을 표시합니다.
(TCP/IPv4)의 세부 설청 창에서 고급
버튼을 클릭합니다.
IP설정
탭에서 원격 네트워크에 기본 게이트웨이 사용
이 선택되어 있는지 확인하고 확인
버튼을 클릭합니다.
새로 생성된 네트워크 연결에서 마우스 오른쪽 클릭으로 연결/연결 끊기
를 선택합니다.
윈도우 8 버전에서는 오른쪽에 연결 창이 포시되면 윈도우 7이나 다른 버전에서는 연결 창이 표시됩니다. 생성한 연결을 선택하면 연결
이라는 버튼이 표시되면 클릭하여 서버에 연결 합니다.
그림