디지문닷넷 - Poptop (The PPTP VPN Server for Linux) 설치
BLOG main image
288564 Visitors up to today!
Today 95 hit, Yesterday 219 hit
전체 (283)
일상 (54)
유희 (20)
견문록 (26)
PC 탐구 (144)
축구 (28)
애니메이션 (10)

디지문 호스팅

태터툴즈

이올린

올블로그

리눅스포털

SULinux

DNS Powered by DNSEver.com

너나우리

Serverchk.com

MRTG

Superuser Server Utility

rss

[디지문, 2009/10/09 13:03, PC 탐구/리눅스]
테스트 OS : CentOS 5.3 32bit

참고 링크 :
http://www.nabble.com/pptp-on-CentOS-td10425221.html
http://annyung.oops.org/?m=white&p=pptpd
http://blog.naver.com/poorpuppet?Redirect=Log&logNo=40005182496


 2009년 10월 현재 CentOS 공식 미러 사이트의 레파지토리에는 아직 pptpd 세트가 등록되어 있지 않길래 CentOS 5.x 32bit에 rpm으로 한방 설치할 수 있게끔 각종 소스 링크 찾아 다니느라 애먹었습니다. ^^
[root@localhost ~]# rpm -Uvh http://pptpclient.sourceforge.net/yum/stable/rhel5/pptp-release-current.noarch.rpm
[root@localhost ~]# yum -y install ppp pptpd
※ 웹상의 poptop 설치에 대한 문서들 대부분이 dkms와 kernel_ppp_mppe 설치까지 소개하고 있는데 커널에 mppe 모듈이 포함되지 않던 시절에나 필요하던 겁니다. 요즘 커널엔 mppe 모듈이 기본 포함되어 있어 ppp, pptpd 두 가지만 설치합니다.

 
[root@localhost ~]# cat /etc/pptpd.conf
option /etc/ppp/options.pptpd
logwtmp
localip 10.0.0.1
remoteip 10.0.0.2-50
[root@localhost ~]# cat /etc/ppp/options.pptpd

debug
name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
# require-mppe-128 <== 이 설정을 주석처리 하지 않으면 특정 사이트에 접속이 되지 않는다. 주석처리하고 pptp 클라이언트 상에서도 해당 옵션을 사용치 않도록 한다.

ms-dns 168.126.63.1
#ms-wins 10.0.0.3

proxyarp
nodefaultroute
lock
nobsdcomp

[root@localhost:~]# cat /etc/ppp/chap-secrets
# Secrets for authentication using CHAP
# client        server  secret                  IP addresses
####### redhat-config-network will overwrite this part!!! (begin) ##########
aaa                *    password@                      *
bbb                *    password@                      *
####### redhat-config-network will overwrite this part!!! (end) ############
[root@localhost ~]# iptables -I INPUT -p tcp --dport 1723 -j ACCEPT
[root@localhost ~]# /etc/init.d/pptpd start


위처럼 설정한 pptp 서버에 접속하기 위한 클라이언트 측 설정은 아래와 같습니다.
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지



클라이언트에서 접속하면 아래와 같이 서버 측 인터페이스 정보에 ppp0 인터페이스가 추가된 것을 확인할 수 있습니다.

[root@localhost ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:4D:95:7B
          inet addr:192.168.0.150  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe4d:957b/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3980 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3899 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1029989 (1005.8 KiB)  TX bytes:998987 (975.5 KiB)
          Interrupt:177 Base address:0x1400

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:84 errors:0 dropped:0 overruns:0 frame:0
          TX packets:84 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:7200 (7.0 KiB)  TX bytes:7200 (7.0 KiB)

ppp0      Link encap:Point-to-Point Protocol
          inet addr:10.0.0.1  P-t-P:10.0.0.2  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1400  Metric:1
          RX packets:32 errors:0 dropped:0 overruns:0 frame:0
          TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:3376 (3.2 KiB)  TX bytes:121 (121.0 b)

[root@localhost ~]#

2009/10/09 13:03 2009/10/09 13:03
Trackback Address :: http://www.digimoon.net/blog/trackback/340
이찬휘 | 2010/03/07 21:59 | PERMALINK | EDIT/DEL | REPLY
저는 ifconfig 했을때 ppp0도 뜨지않고
윈도우에서 pptp클라이언트로 접속해도 619,809같은 이상한것들을 뱉어내는데
어떻게해야하죠?
디지문 | 2010/03/08 00:43 | PERMALINK | EDIT/DEL
서버에서 ifconfig로 ppp0 인터페이스가 확인되려면 클라이언트에서 연결에 성공해야 합니다.
본문에 클라이언트 설정 방법을 캡처한 이미지로 설명을 보강해 놓았으니 참고 바랍니다.
| 2010/03/08 09:47 | PERMALINK | EDIT/DEL | REPLY
관리자만 볼 수 있는 댓글입니다.
이찬휘 | 2010/03/08 20:35 | PERMALINK | EDIT/DEL | REPLY
자세히보니까 ms-chap-v2를 사용한다고되있어서
그거 사용설정해보니까 연결되고 ifconfig치면 ppp연결작동하는거 확인했습니다.
그런데 vpn 자체에만연결이되고 정작 인터넷은 연결이 안되는데 설명좀 해주세요.
멋진 호스팅도 하나 운영하고계시는데 답글달아주셔서 감사합니다.
디지문 | 2010/03/08 21:35 | PERMALINK | EDIT/DEL
VPN 클라이언트에서 네트워킹 탭 -> 인터넷프로토콜(TCP/IP) -> 고급 -> 일반에서 '원격 네트워크에 기본 게이트웨이 사용' 부분을 체크하고 안하고에 차이가 있습니다. 체크하면 VPN 서버가 게이트웨이가 되는 겁니다. 모든 트래픽이 VPN 서버를 거쳐 나가는 것이죠. 체크를 풀면 반대입니다.
윈도 내장 PPTP 클라이언트를 설정하면 기본값으로 '원격 네트워크에 기본 게이트웨이 사용' 부분은 체크가 되어 있습니다. 이 경우 VPN 클라이언트의 TCP/IP 속성에서 DNS는 수동으로 설정되어 있지 않은 경우 인터넷이 안 됩니다. 이게 poptop의 아쉬운 단점입니다. 서버가 클라이언트에게 DHCP 정보를 넘겨 주지 않으므로 pptp 서버가 사용하는 DNS를 클라이언트가 참고를 못하는 겁니다.

아래 링크에 자세하게 설명되어 있습니다.
http://annyung.oops.org/?m=white&p=pptpd

Kornet DNS(168.126.63.1) 정도로 수동으로 설정하시기 바랍니다.
이찬휘 | 2010/03/08 22:08 | PERMALINK | EDIT/DEL | REPLY
현재 서버의 게이트웨이 주소와 클라이언트의 게이트웨이 주소가 다릅니다. 당연히 다를 수 밖에 없지만 현재 가상서버를 통해서 pptp서버를 돌리고 있기때문에 eth0 네트워크가 직접적으로 외부공인ip와 연결되어 있습니다.
ms-dns설정과 클라이언트의 dns주소를 같게해봐도 오류가 뜨네요 가상서버에서 막아놓은 무언가 걸린것같기도 하고요, 오늘 답변많이 해주셨는데 감사합니다.
이찬휘 | 2010/03/09 23:12 | PERMALINK | EDIT/DEL | REPLY
중국에서 아는사람이 있는데 한국 홈페이지가 접속이 안된다고해서 vpn으로 우회에서 들어가도록 하는건데
그러면 리눅스를 게이트웨이로해서 홈페이지를 들어가야하는게 정상이라고 생각합니다.
그런데 vpn내부에만접속이되고 네이버같은곳에는 들어갈 수가 없습니다.
오류를 찾아보면 dns서버가 응답하지 않는다고? 뜹니다(dns not reponding)
options.pptpd에는 dns서버 주석처리했습니다.
DNS를 인식을 못하는거같은데 하루종일삽질해도 결과가없습니다. 도와주세요
디지문 | 2010/03/10 13:38 | PERMALINK | EDIT/DEL
ms-dns 옵션은 활성화되어야 합니다. 주석처리하면 안 됩니다.
제 설정 파일 참고하세요.

[root@digimoon ~]# cat /etc/ppp/options.pptpd
debug
name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
# require-mppe-128

ms-dns 168.126.63.1
#ms-wins 10.0.0.3

proxyarp
nodefaultroute
lock
nobsdcomp
[root@digimoon ~]#

VPN 서버를 게이트웨이로 하여 외부로 통신이 안 되는 이유는 마스커레이드 설정이 되어 있지 않아서일 겁니다. eth0과 ppp0 인터페이스 사이에 ip forwarding이 이루어지도록 아래와 같이 설정합니다.

[root@localhost ~]# echo 1 > /proc/sys/net/ipv4/ip_forward

시스템을 재부팅해도 적용되도록 하려면 위 커맨드를 /etc/rc.d/rc.local 파일에 추가하거나...

/etc/sysctl.conf 파일에 아래 내용을 설정하면 됩니다.
net.ipv4.ip_forward = 1

iptables에는 마스커레이드 설정을 위해 아래 룰을 추가합니다. VPN서버가 10.0.0.0/24 네트웍을 사설 대역으로 사용한다는 가정하입니다.
[root@localhost ~]# iptables -A POSTROUTING -s 10.0.0.0/24 -o eth0 -j MASQUERADE

그리고 VPN서버의 iptables 방화벽에 tcp/udp 53, tcp 80 포트를 열어 놓았는지도 확인해 보세요.
이찬휘 | 2010/03/10 17:06 | PERMALINK | EDIT/DEL | REPLY
완벽하게 인터넷 연결 잘 되는거 확인이 됬습니다. 현재 vpn에서 접속해서 댓글을 올리는 것입니다.
컴퓨터라는 것이 알면 알수록 짜릿해지고, 재미있어 지는 것 같습니다. 덕분에 예전부터 바래왔던 기능중 하나를 제대로 구현했습니다.
감사합니다.
[로그인][오픈아이디란?]
Name
Password
Homepage

Secret
*1 ... *4 *5 *6 *7 *8 *9 *10 *11 *12 ... *283