PPTP로 나만의 VPN을 설정하는 방법


상태: 더 이상 사용되지 않음

이 문서는 더 이상 사용되지 않으며 더 이상 유지 관리되지 않습니다.

이유

Ubuntu 12.04는 2017년 4월 28일에 수명 종료(EOL)에 도달했으며 더 이상 보안 패치 또는 업데이트를 받지 않습니다.

대신 보기

이 문서는 여전히 참조용으로 유용할 수 있지만 모범 사례를 따르지 않거나 이 또는 다른 Ubuntu 릴리스에서 작동하지 않을 수 있습니다. 사용 중인 Ubuntu 버전에 대해 작성된 최신 문서를 사용하는 것이 좋습니다.

현재 Ubuntu 12.04를 실행하는 서버를 운영 중인 경우 지원되는 Ubuntu 버전으로 업그레이드하거나 마이그레이션하는 것이 좋습니다.

  • Ubuntu 12.04에서 Ubuntu 14.04로 업그레이드하는 방법
  • Ubuntu 14.04에서 Ubuntu 16.04로 업그레이드하는 방법
  • 서버 데이터를 지원되는 버전으로 마이그레이션하는 방법

소개

사용자가 자주 묻는 질문 중 하나는 서버에 다른 IP 주소를 추가하는 방법입니다. VPN 터널을 생성하여 드롭릿에 고유한 개인 IP 주소를 할당할 수 있습니다. 자체 VPN(가상 사설망)을 구축하거나 해당 IP 주소에 SSL 인증서를 할당하려는 경우 몇 가지 옵션이 있습니다. 가능한 모든 옵션 중에서 가장 최적의 옵션은 PPTP와 OpenVPN 사이입니다. 지점간 터널링 프로토콜(PPTP)을 사용하면 자체 VPN을 매우 빠르게 구현할 수 있으며 대부분의 모바일 장치와 호환됩니다. PPTP는 OpenVPN보다 덜 안전하지만 더 빠르고 더 적은 CPU 리소스를 사용합니다.

1단계 - PPTP 설치

다른 사람에게 IP를 처리하고 모든 서버를 VPN에 인증할 책임이 있는 서버를 하나 선택해야 합니다. 이것이 PPTP 서버가 됩니다.

CentOS 6 x64에서:

rpm -i http://poptop.sourceforge.net/yum/stable/rhel6/pptp-release-current.noarch.rpm
yum -y install pptpd

우분투 12.10 x64:

apt-get install pptpd

이제 /etc/pptpd.conf를 편집하고 다음 행을 추가해야 합니다.

localip 10.0.0.1
remoteip 10.0.0.100-200

여기서 localip은 서버의 IP 주소이고 remoteip는 연결하는 클라이언트에 할당될 IP입니다.

다음으로 사용자와 암호를 추가하여 PPTP에 대한 인증을 설정해야 합니다. /etc/ppp/chap-secrets에 추가하기만 하면 됩니다.

여기서 client는 사용자 이름이고 server는 서비스 유형입니다. 예를 들어 pptpd는 secret이고 IP 주소는 인증할 수 있는 IP 주소를 지정합니다. IP 주소 필드에 '*'를 설정하여 모든 IP에 대해 사용자 이름/암호 쌍을 허용하도록 지정합니다.

2단계 - /etc/ppp/pptpd-options에 DNS 서버 추가

ms-dns 8.8.8.8
ms-dns 8.8.4.4

이제 PPTP 데몬을 시작할 수 있습니다.

service pptpd restart

실행 중이고 연결을 수락하는지 확인합니다.

3단계 - 포워딩 설정

PPTP 서버에서 IP 전달을 활성화하는 것이 중요합니다. 이렇게 하면 PPTP로 설정한 공용 IP와 개인 IP 간에 패킷을 전달할 수 있습니다. /etc/sysctl.conf를 편집하고 이미 존재하지 않는 경우 다음 행을 추가하십시오.

net.ipv4.ip_forward = 1

변경 사항을 활성화하려면 sysctl -p를 실행하십시오.

4단계 - iptables에 대한 NAT 규칙 생성

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE && iptables-save

PPTP 클라이언트가 서로 통신하도록 하려면 다음 iptables 규칙을 추가하십시오.

iptables --table nat --append POSTROUTING --out-interface ppp0 -j MASQUERADE
iptables -I INPUT -s 10.0.0.0/8 -i ppp0 -j ACCEPT
iptables --append FORWARD --in-interface eth0 -j ACCEPT

이제 PPTP 서버도 라우터 역할을 합니다.

드롭릿에 연결할 수 있는 서버를 제한하려면 TCP 연결을 포트 1723으로 제한하는 iptables 규칙을 설정할 수 있습니다.

5단계 - 클라이언트 설정

클라이언트 서버에서 PPTP 클라이언트를 설치합니다.

yum -y install pptp

6단계 - 필요한 커널 모듈 추가

modprobe ppp_mppe

새 파일 /etc/ppp/peers/pptpserver를 만들고 다음 줄을 추가하여 이름과 암호를 자신의 값으로 바꿉니다.

pty "pptp 198.211.104.17 --nolaunchpppd"
name box1
password 24oiunOi24
remotename PPTP
require-mppe-128

여기서 198.211.104.17은 PPTP 서버의 공용 IP 주소이며 사용자 이름은 'box1'이고 비밀번호는 '24oiunOi24'이며 PPTP 서버에서 /etc/ppp/chap-secrets 파일을 지정했습니다.

이제 우리는 이 PPTP 서버를 '호출'할 수 있습니다. 이것이 포인트 투 포인트 프로토콜이기 때문입니다. /etc/ppp/peers/에서 동료 파일에 지정한 이름을 이 다음 줄에서 사용해야 합니다. 파일 pptpserver를 호출했기 때문에:

pppd call pptpserver

PPTP 서버 로그에서 성공적인 연결이 표시되어야 합니다.

PPTP 클라이언트에서 ppp0 인터페이스를 통해 개인 네트워크로의 라우팅을 설정합니다.

ip route add 10.0.0.0/8 dev ppp0

인터페이스 ppp0이 PPTP 클라이언트 서버에 나타나야 하며 ifconfig를 실행하여 확인할 수 있습니다.

이제 PPTP 서버와 이 네트워크에 연결된 다른 클라이언트를 ping할 수 있습니다.

이 네트워크에 두 번째 PPTP 클라이언트를 추가할 수 있습니다.

yum -y install pptp
modprobe ppp_mppe

/etc/ppp/peers/pptpserver에 추가(자신의 이름과 암호 값으로 대체):

pty "pptp 198.211.104.17 --nolaunchpppd"
name box2
password 239Aok24ma
remotename PPTP
require-mppe-128

이제 두 번째 클라이언트에서 다음을 실행하십시오.

pppd call pptpserver
ip route add 10.0.0.0/8 dev ppp0

패킷이 PPTP 서버를 통과하고 이전에 배치한 iptables 규칙을 사용하여 라우팅되기 때문에 첫 번째 클라이언트를 ping할 수도 있습니다.

이 설정을 사용하면 고유한 가상 사설망을 만들 수 있습니다.

모든 장치가 하나의 네트워크에서 안전하게 통신하도록 하려면 이것이 빠른 구현 방법입니다.

Nginx, Squid, MySQL 및 생각할 수 있는 다른 응용 프로그램과 함께 사용할 수 있습니다.

트래픽은 128비트로 암호화되므로 OpenVPN보다 CPU 사용량이 적고 여전히 트래픽에 추가 보안 수준을 제공합니다.