64BitCentOS5.5單網(wǎng)卡配置PPTPD服務(wù)器
【51CTO.com 獨家特稿】 公司的辦公網(wǎng)絡(luò)是192.168.4.0/24,均只用單網(wǎng)卡eth0,通過Juniper防火墻映射公網(wǎng)IP上網(wǎng),即內(nèi)網(wǎng)內(nèi)所有的機器的網(wǎng)關(guān)均是防火墻的固定IP-192.168.4.3,目前想通過外網(wǎng)撥號(VPN服務(wù)器IP為192.168.4.222)進公司內(nèi)部局域網(wǎng)進行辦公,因為內(nèi)網(wǎng)里還有些SVN、samba文件服務(wù)器等,即VPN需求要做成點對局的。
公司的辦公拓補很簡單,如下圖:
初期因為我有成功的opevVPN點對點案例,所以考慮用openVPN來做;卻不料失敗了,點對點很順利能成功,但點對局卻失敗了。大家可看下openVPN的關(guān)鍵之處:
關(guān)鍵一:取消注釋 push "route 192.168.4.0 255.255.255.0",并將地址和掩碼替換為辦公網(wǎng)絡(luò)的地址和掩碼
目的是為客戶端加一條路由,這樣客戶端才有可能訪問到辦公網(wǎng)絡(luò)中出VPN Server之外的其它主機(有很多VPN客戶端直接添加默認路由,這樣客戶端的所有連接請求都被路由到 VPN 通道內(nèi),結(jié)果是客戶端此時不能訪問VPN,而此項添加指定地址的路由不會導致這一問題)
關(guān)鍵二:server端開啟ip轉(zhuǎn)發(fā)
配置服務(wù)器,運行包轉(zhuǎn)發(fā): echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward關(guān)鍵三:若VPN Server不是辦公網(wǎng)絡(luò)的默認網(wǎng)關(guān),則想辦法在默認網(wǎng)關(guān)上添加到 10.8.0.0/24 的路由項目,網(wǎng)關(guān)為服務(wù)器的內(nèi)部 IP 地址。
關(guān)鍵一中的操作只是能夠讓客戶端知道去往公司網(wǎng)絡(luò)的包如何路由,而關(guān)鍵三的操作是為了讓公司網(wǎng)絡(luò)里的主機知道去往VPN Client的包如何路由。
其實第三步本來其實也很好實現(xiàn),但由于我們的辦公網(wǎng)絡(luò)由美國總部劃分,防火墻是不能隨便添加靜態(tài)路由的,雖然VPN進行到這步時基本就告失敗了。今天特的嘗試了單網(wǎng)卡下配置pptpd的過程,很順利的就將點對局實現(xiàn)了,特將過程跟大家分享下:#p#
操作系統(tǒng):64位的Centos5.5,IP:192.168.4.222,準備安裝pptpd服務(wù),安裝過程參考了網(wǎng)友Ren的相關(guān)文章,我更喜歡將精力集中在以后的調(diào)優(yōu)、安全及分析上,其過程如下:
1、檢查服務(wù)器是否有必要的支持。如果檢查結(jié)果沒有這些支持的話,是不能安裝pptp的。執(zhí)行指令:
- #modprobe ppp-compress-18 && echo ok
這條執(zhí)行執(zhí)行后,顯示"ok"則表明通過。不過接下來還需要做另一個檢查,輸入指令:
- #cat /dev/net/tun
如果這條指令顯示結(jié)果為下面的文本,則表明通過:
- cat: /dev/net/tun: File descriptor in bad state
2、修改內(nèi)核設(shè)置,使其支持轉(zhuǎn)發(fā)。這步必須做,不然你僅僅能連結(jié)你的VPN機器,后面的局域網(wǎng)的資源你均不能訪問。編輯/etc/sysctl.conf文件:
- #vim /etc/sysctl.conf
將"net.ipv4.ip_forward"改為1,變成下面的形式:
- net.ipv4.ip_forward=1
保存退出,并執(zhí)行下面的命令來生效它:
- #sysctl -p
3、安裝pptp。這個軟件在yum源里是沒有的,我們需要手動下載。我們先切換到tmp目錄:
- #cd /tmp
然后執(zhí)行下面的命令來下載pptp安裝包:#wget http://acelnmp.googlecode.com/files/pptpd-1.3.4-1.rhel5.1.i386.rpm (32位系統(tǒng)使用)#wget http://acelnmp.googlecode.com/files/pptpd-1.3.4-1.rhel5.1.x86_64.rpm (64位系統(tǒng)使用)
如果你的CentOS是32位的,則執(zhí)行32位的那條指令;如果是64位的CentOS,則執(zhí)行64位的那條指令。注意不要搞錯了。
接下來安裝pptp,同樣分32位和64位系統(tǒng):
#rpm -ivh pptpd-1.3.4-1.rhel5.1.i386.rpm (32位系統(tǒng)使用)
#rpm -ivh pptpd-1.3.4-1.rhel5.1.x86_64.rpm (64位系統(tǒng)使用)
PS:這里補充說明一點,由于我的辦公網(wǎng)絡(luò)就是單網(wǎng)卡環(huán)境,所以沒必要開啟iptables的MASQUERADE功能,因為我的VPN撥進來就可以利用防火墻的NAT功能上網(wǎng),我特的用http://www.ip168.com來觀察了我的客戶機出去的公網(wǎng)IP,全被替換成防火墻的公網(wǎng)IP了。 #p#
4、配置pptp。首先我們要編輯/etc/pptpd.conf文件:
- #vim /etc/pptpd.conf
找到"locapip"和"remoteip"這兩個配置項,將前面的";"注釋符去掉,更改為你期望的IP段值。localip表示服務(wù)器的IP,remoteip表示分配給客戶端的IP地址,可以設(shè)置為區(qū)間。這里我們使用pptp默認的配置:
- localip 192.168.4.222
- remoteip 192.168.4.242-246
注意,這里的IP段設(shè)置,將直接影響后面的iptables規(guī)則添加命令。請注意匹配的正確性,如果你嫌麻煩,建議就用本文的配置,就可以一直復制命令和文本使用了。
5、設(shè)置pptp VPN賬號密碼。我們需要編輯/etc/ppp/chap-secrets這個文件:
#vim /etc/ppp/chap-secrets
在這個文件里面,按照"用戶名 pptpd 密碼 *"的形式編寫,一行一個賬號和密碼。比如添加用戶名為test,密碼為1234的用戶,則編輯如下內(nèi)容:
- test pptpd 1234 *
6、重啟pptp服務(wù)。輸入下面的指令重啟pptp:
- #/etc/init.d/pptpd restart
我個人習慣用service pptpd restart
現(xiàn)在你已經(jīng)可以連接自己的VPN并瀏覽網(wǎng)頁了。不過我們還需要做最后的一步。#p#
7、設(shè)置開機自動運行服務(wù)。我們最后一步是將pptp和iptables設(shè)置為開機自動運行,這樣就不需要每次重啟服務(wù)器后手動啟動服務(wù)了。當然你不需要自動啟動服務(wù)的話可以忽略這一步。輸入指令:
- #chkconfig pptpd on
記得讓你的Network Engineer將192.168.4.222映射一個公網(wǎng)IP,如220.249.xx.xx,我是做的DMZ映射;這個即是你的客戶機撥號時連接的公網(wǎng)IP。
客戶機如何在windows機上進行撥號連接呢?
這樣服務(wù)器端的配置就完成了,我下面再簡單說下windows客戶端的VPN連接情況。
選擇你的網(wǎng)絡(luò)鄰居,用右鍵點屬性,然后選擇"創(chuàng)建一個新的連接"
#p#
#p#
當你從公網(wǎng)上面用VPN撥號上來以后,你就身處公司的辦公環(huán)境,此時你想遠程桌面,連接SVN服務(wù)器,或連接Samba或公司內(nèi)部的MySQL0均可,注意安全。
后記:
對比openVPN和pptpd二款VPN軟件,我感覺它們做點對點均可,如果是做成點對局效果的話,我建議用pptpd,openVPN復雜不說,對網(wǎng)絡(luò)要求更為苛刻;如果是做成局對局的VPN環(huán)境,我建議用openVPN(當然這種情況直接在防火墻或路由器上做的話更簡單)最后,希望上述文檔能幫助跟我的網(wǎng)絡(luò)環(huán)境差不多的小伙們,祝大家工作愉快,生活亦愉快!
【51CTO.com獨家特稿,非經(jīng)授權(quán)謝絕轉(zhuǎn)載!合作媒體轉(zhuǎn)載請注明原文出處及作者!】