우분투 VPN 서버 구축 (PPTP)


우분투 VPN 서버 구축 우분투 환경에서 VPN 서버 구축 방법에 대해서 설명드리도록 하겠습니다. pptpd 데몬을 이용하여 서버 설정 방법 클라이언트 계정 설정 그리고 패킷을 포워딩하기 위한 iptables 설정 방법에 대해서 설명드리도록 하겠습니다.

우분투 VPN 서버 구축

소개

VPN(Virtual private network) 는 가상 사설네트워크로 외부에 공개하지 않고, 접근 하여 사용할 수 있는 네트워크입니다.

이 글에서 설명 드릴 VPN 서버는 우분투 리눅스 기반에서 PPTP (Point-to-Point Tunneling Protocol) 프로토콜을 이용하여 구축하게 됩니다.

외부 네트워크에서 VPN 네트워크로의 접근은 VPN 클라이언트를 이용하여 VPN 터널을 생성하여 접속하게 됩니다.

VPN 서버를 통해서 외부 네트워크에 접속하였을 경우, 출발지 클라이언트 정보를 숨길 수 있는 특징이 있습니다. VPN 서버와 비슷한 특징이 있는 웹 프록시 서버를 구축하는 내용은 아래의 글을 참고해 주시기 바랍니다.

우분투 프록시 설정 방법

VPN 서버 설치

먼저 아래의 명령어로 VPN 서버 프로그램인 pptpd 패키지를 설치합니다.

$ sudo apt install pptpd

VPN 서버 설정

/etc/pptpd.conf 파일을 열고 아래와 같은 내용 추가하거나, 기존 주석 처리된 내용을 수정합니다.

localip 10.0.0.1
remoteip 10.0.0.100-200

기존 19.268.0.0/24 네트워크가 사용 될 수 있기 때문에, 위의 네트워크로 지정하였습니다. 설정이 이뤄지고 있는 VPN 서버의 사설망 IP 주소는 10.0.0.1 으로 사용하게 되고, 클라이언트의 아이피는 10.0.0.100 ~ 10.0.0.200 까지의 아이피 주소가 할당되게 됩니다.

VPN 계정 추가

VPN 서버로 접속할 때 사용될 클라이언트 계정 정보를 입력합니다. /etc/ppp/chap-secrets 파일을 엽니다.

# Secrets for authentication using CHAP
# client        server  secret                  IP addresses
username pptpd mypassword *

사용자명을 username 그리고 패스워드를 mypassword 으로 지정하였습니다. 환경에 맞게 수정하셔서 사용하시면 되고 여러개의 접속 계정을 추가할 수도 있습니다.

VPN DNS 설정

다음은 /etc/ppp/pptpd-options 파일을 열고, 옵션 내용을 추가합니다.

ms-dns 8.8.8.8
mtu 1400
mru 1400

default-asyncmap

위와 같이 DNS 서버 등 VPN 네트워크 정보를 입력합니다. mtu와 mru 를 설정하지 않았을 경우, 통신 중간에 끊길 수 있으므로 꼭 입력해 주셔야 합니다.

VPN 네트워크 설정

다음은 VPN 네트워크에서 통신이 이뤄질 수 있도록 네트워크 설정을 해주셔야 합니다. 다음 명령어를 사용하여 패킷이 VPN 서버로 전달 되었을 경우 패킷을 포워딩 할 수 있는 기능을 활성화 합니다.

$ sudo sysctl -w net.ipv4.ip_forward=1

다음은 iptables 정책을 수정합니다. 먼저 ifconfig 명령어로 외부 네트워크와 연결된 인터페이스를 확인합니다.

위의 명령어에서 확인된 인터페이스는 ens3 입니다. ens3 라는 인터페이스 이름으로 아래의 명령어를 실행합니다.

$ sudo iptables -A FORWARD -o ens3 -j ACCEPT
$ sudo iptables -A FORWARD -m state --state ESTABLISHED,RELATED -i ens3 -j ACCEPT
$ sudo iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE

모든 설정이 끝나면 다음 명령어로 pptpd 데몬을 다시 시작합니다.

$ sudo /etc/init.d/pptpd restart
[ ok ] Restarting pptpd (via systemctl): pptpd.service.

( 본문 인용시 출처를 밝혀 주시면 감사하겠습니다.)