Raspberry Pi 로 PPTP SERVER 구축하기
Raspberry Pi 로 PPTP SERVER 구축하기.
pptp server 를 구축하게 된 이유.
내 서버는 내부 내트워크에 설치 되어 있어서 공인 아이피가 없다.
pptp vpn 서비스를 이용해서 내 서버에 고정 아이피를 할당해서 서버를 운영 중 이다.
ip4 에서 vpn 유료 서비스를 이용하고 있었는데, 돈이 아까웠다.
친구집의 인터넷이 공인 아이피더라. 공인 아이피가 무려 4개나 들어 오더라.
그래서 놀고 있던 라즈베리 파이 2 를 친구내 집에 설치해서 vpn 서버를 운영함으로서 비용을 절약 할 수 있었음.
내 서버 상태.
내 서버는 공인 아이피 -> 친구네집 -> 라즈베리파이 pptp server -> 내 서버 이렇게 운영이 된다.
글을 남기는 이유.
이미 인터넷에 pptp server를 구축하는 글은 많은데 나처럼 사용하는 사람은 없더라.
일반 적으로 pptp server 를 구축한 뒤 pptp vpn 으로 인터넷 서핑만 하려면 이 포스팅은 필요 없다.
구축환경.
라즈베리 파이 (Ubuntu)
본문.
난 전문적인 지식이 없음. 그냥 내가 대충 막해서 성공한 내역을 기록 함.
우선 업데이트 하자.
sudo apt-get update && sudo apt-get upgrade
pptp 를 설치하자.
sudo apt-get install pptpd
그리고 재부팅 후에도 자동으로 시작하게 설정하자.
sudo systemctl enable pptpd
/etc/pptpd.conf 파일을 수정하자.
vim /etc/pptpd.conf
파일 마지막에 아래 내용을 추가한다.
localip 192.168.99.1 remoteip 192.168.99.200-210
/etc/ppp/pptpd-options 파일을 수정한다.
vim /etc/ppp/pptpd-options
마지막에 다음을 추가한다.
ms-dns 8.8.8.8 ms-dns 8.8.4.4 noipx mtu 1490 mru 1490
그리고 이 부분이 중요 함.
require-mppe-128
이 부분을 찾아서 주석 처리 한다.# require-mppe-128
이 부분을 주석 처리 하지 않으면 pptp 연결 설정할 때 pptp 접속 시 보안 사용 옵션을 체크 해야 하는데,
난 리눅스에서 pptp 연결 할 때 보안 사용 옵션을 사용할 줄 모른다.;;;
사용 할 줄 아는 사람은 저 부분을 주석 처리 하지 않아도 된다.
이제 사용자를 추가하자.
vim /etc/ppp/chap-secrets
Username[TAB]*[TAB]password[TAB]*
이런 식으로 추가 하면 된다
Userid * PassWd *
/etc/sysctl.conf 파일을 수정한다.
vim /etc/sysctl.conf
#net.ipv4.ip_forward=1 이 부분을 찾아 주석 처리를 해제 한다.
net.ipv4.ip_forward=1
이런식으로 정의 되어 있어야 한다.
그리고 라우팅 추가.
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
라즈베리 파이 ubuntu 에는 iptables 가 설치 되어 있지 않다. 설치하자.
iptables 를 설치 하지 않아도 되지만 서버 운영을 위해서 포트포워딩이 필요하다.
그래서 나는 iptables 가 필요 했다.
apt-get install iptables-persistent
iptables 을 설정하자.
vim /etc/iptables/rules.v4
아래는 나의 iptables 내역.
# Generated by iptables-save v1.4.21 on Mon Feb 27 10:49:12 2017 *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -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 Mon Feb 27 10:49:12 2017 # Generated by iptables-save v1.4.21 on Mon Feb 27 10:49:12 2017 *nat :PREROUTING ACCEPT [14:1824] :INPUT ACCEPT [14:1824] :OUTPUT ACCEPT [38:3758] :POSTROUTING ACCEPT [0:0] -A POSTROUTING -o eth0 -j MASQUERADE -A PREROUTING -p tcp -i eth0 --dport 9091 -j DNAT --to 192.168.99.200:9091 -A PREROUTING -p tcp -i eth0 --dport 80 -j DNAT --to 192.168.99.200:80 -A PREROUTING -p tcp -i eth0 --dport 32400 -j DNAT --to 192.168.99.200:32400 -A PREROUTING -p tcp -i eth0 --dport 222 -j DNAT --to 192.168.99.200:222 COMMIT # Completed on Mon Feb 27 10:49:12 2017
각 부분을 설명한다.
이 부분은
-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
기본적으로 설정이 되어 있을 수도 있다.
아래 부분은 내가 정의한 내역이다. 공인 아이피로 들어 오는 특정포트를 내가 접속한 vpn 주소로 포트 포워딩 시키는 역활을 한다.
-A PREROUTING -p tcp -i eth0 --dport 9091 -j DNAT --to 192.168.99.200:9091 -A PREROUTING -p tcp -i eth0 --dport 80 -j DNAT --to 192.168.99.200:80 -A PREROUTING -p tcp -i eth0 --dport 32400 -j DNAT --to 192.168.99.200:32400 -A PREROUTING -p tcp -i eth0 --dport 222 -j DNAT --to 192.168.99.200:222
위에서
remoteip 192.168.99.200-210
이렇게 설정이 되어 있으므로,내 서버에서 vpn 접속을 하면 192.168.99.200 아이피를 할당 받더라.그래서 내가 원하는 포트들을 192.168.99.200 번으로 포워딩 시킴으로서 서버 운영이 가능해 진다.
iptables 를 수정했으면 reload 한다.
sudo netfilter-persistent reload
구축 끝 .
이제 클라이언트 서버에서 pptp로 vpn 서버에 접속하면 된다.
참고한 사이트.
다음에는 client 서버에서 pptp 를 접속하는 방법을 기록 하겠다.
오류나 잘 못된 부분이 있으면 알려주세요.
'Linux' 카테고리의 다른 글
Centos 에 Docker 설치하기 (0) | 2017.03.03 |
---|