在CentOS安裝pptpd以及部署
在使用CentOS系統的時候,對有些人也許會遇到在CentOS安裝pptpd的問題。下面就來介紹一下,如何在CentOS安裝pptpd。在CentOS安裝pptpd最省事的安裝就是下載rpm包pptpd-1.3.4-1.rhel5.1.i386.rpm,然后直接執行 rpm –ivh pptpd-1.3.4-.rhel5.1.i386.rpm 。幸運的是這個包沒有其他依賴,因此CentOS安裝pptpd應該是異常的順利。如果使用源碼安裝,會出現ppp版本高的情況,需刪除pppd2.3.4 再安裝pppp2.4.3,反而麻煩了。安裝完rpm包后,自動生成幾個配置文件,主配置文件/etc/pptpd.conf,選項文件/etc/ppp/options.pptpd, 帳號文件/etc/ppp/chapsecrets.后面配置pptpd主要就是對這幾個文件進行修改。
一、CentOS安裝pptpd (vpn)拓撲結構
vpn的訪問邏輯上存在3個網絡:
1、欲訪問的目標網絡。通常在vpn服務器所在的內部網絡(vpn服務器有2個網卡,一個是公網的,一個是私有網絡的)
2、Vpn的公網網絡。
3、Vpn連接后與客戶端形成的虛擬網絡。建議單獨設置一個網絡,這樣就不會占用vpn后面的私有網絡(目標網絡)的ip資源/地址。
![]() |
圖1 |
當然vpn隧道網絡可以跟目標網絡是同一個網段,不過不推薦這樣。
二、CentOS安裝pptpd vpn服務器端的配置
(一)修改主配置文件/etc/pptpd.conf.只需要加入下面兩行:
localip 172.16.195.1
remoteip 172.16.195.101-200
Localip這行是給vpn服務器設置一個隧道ip
Remoteip是自動分配給客戶端的ip地址范圍。
(二)修改選項文件/etc/ppp/options.pptpd.需要設定分配給客戶端的dns,因此僅需把ms-dns前的注釋去掉,改成可用的dns如下:ms-dns 61.135.154.5 ms-dns 159.226.240.66
為了方便查看調試信息,把debug行前面的注釋取消即可。Dump前的注釋也取消。
(三)CentOS安裝pptpd 添加帳號。通過編輯文件/etc/ppp/chap-secrets逐行加入;一個賬號占一行。一行分4列,其表示如下:
用戶名
服務器名
密碼
ip
沒有字符數限制
Pptpd—都用這個,如果用其它的名稱,需要修改options.pptpd文件的name行的內容
用雙引號的話,密碼就不能包含雙引號了
* 表示有pptpd隨機分配ip
三、CentOS安裝運行pptpd.執行命令service pptpd start或者執行/etc/init.d/pptpd 即可啟動它。
通過檢查進程、查看系統日志來確定pptpd是否正常。
四、客戶端配置(windows)。
這個應該很容易了,就不再多費口舌。
五、撥號登錄。
撥號過程中,登錄到vpn服務器查看日志,會看到用戶的連接情況,下面是截取的一個片斷,供參考:
- Dec 19 17:16:01 max-vpn pppd[9833]: Plugin /usr/lib/pptpd/pptpd-logwtmp.so loaded.
- Dec 19 17:16:01 max-vpn pppd[9833]: pptpd-logwtmp: $Version$
- Dec 19 17:16:01 max-vpn pppd[9833]: pppd options in effect:
- Dec 19 17:16:01 max-vpn pppd[9833]: debug # (from /etc/ppp/options.pptpd)
- Dec 19 17:16:01 max-vpn pppd[9833]: logfile /etc/ppp/vpn.log # (from /etc/ppp/options.pptpd)
- Dec 19 17:16:01 max-vpn pppd[9833]: dump # (from /etc/ppp/options.pptpd)
- Dec 19 17:16:01 max-vpn pppd[9833]: plugin /usr/lib/pptpd/pptpd-logwtmp.so # (from command line)
- Dec 19 17:16:01 max-vpn pppd[9833]: require-mschap-v2 # (from /etc/ppp/options.pptpd)
- Dec 19 17:16:01 max-vpn pppd[9833]: refuse-pap # (from /etc/ppp/options.pptpd)
- Dec 19 17:16:01 max-vpn pppd[9833]: refuse-chap # (from /etc/ppp/options.pptpd)
- Dec 19 17:16:01 max-vpn pppd[9833]: refuse-mschap # (from /etc/ppp/options.pptpd)
- Dec 19 17:16:01 max-vpn pppd[9833]: name pptpd # (from /etc/ppp/options.pptpd)
- Dec 19 17:16:01 max-vpn pppd[9833]: pptpd-original-ip 200.199.118.72 # (from command line)
- Dec 19 17:16:01 max-vpn pppd[9833]: 115200 # (from command line)
- Dec 19 17:16:01 max-vpn pppd[9833]: lock # (from /etc/ppp/options.pptpd)
- Dec 19 17:16:01 max-vpn pppd[9833]: local # (from command line)
- Dec 19 17:16:01 max-vpn pppd[9833]: novj # (from /etc/ppp/options.pptpd)
- Dec 19 17:16:01 max-vpn pppd[9833]: novjccomp # (from /etc/ppp/options.pptpd)
- Dec 19 17:16:01 max-vpn pppd[9833]: ipparam 200.199.118.72 # (from command line)
- Dec 19 17:16:01 max-vpn pppd[9833]: ms-dns xxx # [don't know how to print value] # (from /etc/ppp/options.pptpd)
- Dec 19 17:16:01 max-vpn pppd[9833]: proxyarp # (from /etc/ppp/options.pptpd)
- Dec 19 17:16:01 max-vpn pppd[9833]: 172.16.195.1:172.16.195.101-200 # (from command line)
- Dec 19 17:16:02 max-vpn pppd[9833]: nobsdcomp # (from /etc/ppp/options.pptpd)
- Dec 19 17:16:02 max-vpn pppd[9833]: require-mppe-128 # (from /etc/ppp/options.pptpd)
- Dec 19 17:16:02 max-vpn pppd[9833]: pppd 2.4.4 started by root, uid 0
- Dec 19 17:16:02 max-vpn pppd[9833]: Using interface ppp0
- Dec 19 17:16:02 max-vpn pppd[9833]: Connect: ppp0 <--> /dev/pts/1
- Dec 19 17:16:02 max-vpn pptpd[9832]: CTRL: Ignored a SET LINK INFO packet with real ACCMs!
- Dec 19 17:16:02 max-vpn pppd[9833]: Unsupported protocol 'IPv6 Control Protovol' (0x8057) received
- Dec 19 17:16:02 max-vpn pppd[9833]: MPPE 128-bit stateless compression enabled
- Dec 19 17:16:04 max-vpn pppd[9833]: Cannot determine ethernet address for proxy ARP
- Dec 19 17:16:04 max-vpn pppd[9833]: local IP address 172.16.195.1
- Dec 19 17:16:04 max-vpn pppd[9833]: remote IP address 172.16.195.101
- Dec 19 17:16:04 max-vpn pppd[9833]: pptpd-logwtmp.so ip-up ppp0 sery 200.199.118.72
- [root@max-vpn ~]#
這段日志表明已經有一個來自200.199.118.72連接到vpn服務器,其賬號為sery,分配給這個客戶端機器的vpn地址是172.16.195.101.在撥號的機器(windows)上查看其現在的網絡參數:
- C:\Users\sery>ipconfig/all
- Windows IP 配置
- 主機名 . . . . . . . . . . . . . : sery-sony
- 主 DNS 后綴 . . . . . . . . . . . :
- 節點類型 . . . . . . . . . . . . : 混合
- IP 路由已啟用 . . . . . . . . . . : 否
- WINS 代理已啟用 . . . . . . . . . : 否
- DNS 后綴搜索列表 . . . . . . . . : maxthon.net
- PPP 適配器 VPN 連接:
- 連接特定的 DNS 后綴 . . . . . . . :
- 描述. . . . . . . . . . . . . . . : VPN 連接
- 物理地址. . . . . . . . . . . . . :
- DHCP 已啟用 . . . . . . . . . . . : 否
- 自動配置已啟用. . . . . . . . . . : 是
- IPv4 地址 . . . . . . . . . . . . : 172.16.195.101(首選)
- 子網掩碼 . . . . . . . . . . . . : 255.255.255.255
- 默認網關. . . . . . . . . . . . . : 0.0.0.0
- DNS 服務器 . . . . . . . . . . . : 61.135.154.5
- 159.226.240.66
- TCPIP 上的 NetBIOS . . . . . . . : 已啟用
六、CentOS安裝pptpd設置路由及ip偽裝。
需要在這里可以登錄vpn服務器,但由于沒有設置相關的轉發規則,因此還是沒辦法訪問vpn后面的私有網絡或者通過vpn訪問互聯網(windows機器會在狀態欄的網絡連接圖標顯示一個黃色的感嘆號)。所以還需要完成下面幾步才算真正結束了—看了一些網上的文章,通常就是在這里結束了,看來作者只是登錄了一下虛擬環境。
(一)開啟ip轉發功能:修改配置文件/etc/sysctl.conf,使net.ipv4.ip_forward = 1
(二)寫個腳本文件,實現路由,其內容大致如下:
- [root@max-vpn ~]# more /usr/local/bin/vpn_route.sh
- #!/bin/bash
- /sbin/iptables -t nat -A POSTROUTING -s 192.168.195.0/24 -o eth0 -j SNAT --to-source 61.135.251.50
- /sbin/iptables -t nat -A POSTROUTING -s 172.16.195.0/24 -o eth1 -j SNAT --to-source 192.168.195.166
- /sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
目標網絡/vpn的內部網絡為192.168.195.0/24,vpn服務器有2個網卡,其中一個連接公網(eth0),ip地址是61.135.251.51,另外一個網卡連私有網絡,ip是192.168.195.166。這樣就能正常地路由所涉及的網絡了。手動執行一下這個腳本,看客戶端(windows)是否能訪問目標網絡里的機器:最簡單的方法就是ping,假定目標網絡里有一個192.168.195.100的機器,并請允許icmp通過,ping 192.168.195.100 ,正常的話,再進一步訪問這個服務器(如遠程登錄)。沒有問題的話,把它加在開機自啟里面。為安全起見,你可以在這個腳本里加更多的iptables規則。
這樣就可以在CentOS安裝pptpd了。大家可以順利的使用pptpd了。
【編輯推薦】