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