'VPN'에 해당되는 글 1건

  1. 2015.06.02 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 파일에는 SELINUXSELINUXTYPE가 기술되어 있으니 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이나 다른 버전에서는 연결 창이 표시됩니다. 생성한 연결을 선택하면 연결 이라는 버튼이 표시되면 클릭하여 서버에 연결 합니다.

그림


VPN서버 접속에 필요한 인증 창이 표시 되면 위 서버에서 설정한 아이디와 비빌번호를 입력합니다.


VPN 서버에 연결 되었습니다.


정상적으로 연결되었을 경우 PC의 아이피가 외부에서는 VPN서버의 아이피로 표시되게 됩니다. 네이버나 다음에서 아이피 확인 이라고 검색하면 PC의 아이피를 확인 할 수 있습니다. VPN서버의 아이피가 표시되면 정상 적으로 작동하고 있는 것입니다.


Posted by dewnine
,