1、檢查服務器是否有必要的支持。如果檢查結果沒有這些支持的話,是不能安裝pptp的。執行指令:
#modprobe ppp-compress-18 && echo ok(用模塊方式支持MPPE加密模式瀏覽,如果內核支持檢測不到。)
這條執行執行后,顯示“ok”則表明通過。
2、安裝ppp和iptables。默認情況下,完整的CentOS是帶有這兩個組件的,但是精簡版的系統可能沒有。我們輸入下面的命令來確認,如果沒有則進行安裝,有的話系統不會做任何動作:
#yum install -y ppp iptables
3、安裝pptp。這個軟件在yum源里是沒有的,我們需要手動下載。我們先切換到tmp目錄:
#cd /tmp
然后執行下面的命令來下載pptp安裝包:
#wget http://acelnmp.googlecode.com/files/pptpd-1.3.4-1.rhel5.1.i386.rpm (32位系統使用)
#wget http://acelnmp.googlecode.com/files/pptpd-1.3.4-1.rhel5.1.x86_64.rpm (64位系統使用)
如果你的CentOS是32位的,則執行32位的那條指令;如果是64位的CentOS,則執行64位的那條指令。注意不要搞錯了。
接下來安裝pptp,同樣分32位和64位系統:
#rpm -ivh pptpd-1.3.4-1.rhel5.1.i386.rpm (32位系統使用)
#rpm -ivh pptpd-1.3.4-1.rhel5.1.x86_64.rpm (64位系統使用)
4、配置pptp。首先我們要編輯/etc/pptpd.conf文件:
#vim /etc/pptpd.conf
找到“locapip”和“remoteip”這兩個配置項,將前面的“#”注釋符去掉,更改為你期望的IP段值。localip表示服務器的IP,remoteip表示分配給客戶端的IP地址,可以設置為區間。這里我們使用pptp默認的配置:
localip 192.168.11.1
remoteip 192.168.11.2-102 (最大限制100個連接)
接下來我們再編輯/etc/ppp/options.pptpd文件,為VPN添加Google DNS:
#vim /etc/ppp/options.pptpd
在末尾添加下面兩行:
ms-dns 8.8.8.8
ms-dns 8.8.4.4
注意:最好打開這個文件里的debug選項(去掉debug前面的“#”),以方便我們在出錯的查看日志排錯。錯誤日志在/var/log/messages里,用命令:cat /var/log/messages | grep pptpd 查看有關PPTP的錯誤信息。
5、設置pptp VPN賬號密碼。我們需要編輯/etc/ppp/chap-secrets這個文件:
#vim /etc/ppp/chap-secrets
在這個文件里面,按照“用戶名 pptpd 密碼 *”的形式編寫,一行一個賬號和密碼。比如添加用戶名為test,密碼為1234的用戶,則編輯如下內容:
dreamfly pptpd 1234 *
mfisp pptpd 4321 *
mfisp pptpd 4321 *
6、修改內核設置,使其支持轉發。編輯/etc/sysctl.conf文件:
#vim /etc/sysctl.conf
將“net.ipv4.ip_forward”改為1,變成下面的形式:
net.ipv4.ip_forward=1
保存退出,并執行下面的命令來生效它:
#sysctl -p
7、添加iptables轉發規則。經過前面的6個步驟,我們的VPN已經可以撥號了,但是還不能訪問任何網頁。最后一步就是添加iptables轉發規則了,輸入下面的指令:
兩種修改方法:命令行或修改/etc/sysconf/iptables 文件
iptables -t nat -A POSTROUTING -o eth1 -s 192.168.11.0/24 -j MASQUERADE
iptables -L -t nat 可以看到:
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- 192.168.11.0/24 anywhere
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
在/etc/sysconf/iptables 文件 允許ping
-A RH-Firewall-1-INPUT -s 192.168.11.0/255.255.255.0 -p icmp -m icmp --icmp-type 8 -j ACCEPT
service iptables save 保存
service iptables restart 重啟
8.
設置開機自動運行服務。我們最后一步是將pptp和iptables設置為開機自動運行,這樣就不需要每次重啟服務器后手動啟動服務了。當然你不需要自動啟動服務的話可以忽略這一步。輸入指令:
#chkconfig pptpd on
#chkconfig iptables on
這樣就大功告成了,趕快到Windows下建立一個VPN連接,IP填寫自己的服務器IP,用戶名和密碼填寫自己設置好的用戶名和密碼,點擊“連接”,成功后就可以使用服務器去瀏覽網頁啦!
使用Ipad設置:
設置-->通用-->網絡-->VPN-->添加VPN配置...-->
選擇PPTP
描述 隨意填
服務器 xxx.xxx.xxx.xxx
帳號: xx
密碼:xx
存儲就可以了
最后完成之后,如果出現錯誤619則輸入命令mknod /dev/ppp c 108 0
注意:如果虛擬機內核不支持MPPE的話,無法使用加密,用WINDOWS默認VPN連接會顯示“證書信任錯誤”。
解決方法:修改/etc/ppp/options.pptpd注釋掉require-mppe-128這行,然后windows的vpn撥號的屬性改為可選加密,再次連接就成功了。
如果你無法訪問一些特定網站,建議你修改ppp接口的MTU(很多時候iphone能連接vpn但是無法打開任何網頁也可能跟這個有關系)
輸入vi /etc/ppp/ip-up
在倒數第二行加入如下內容:
/sbin/ifconfig $1 mtu 1400
缺省 MTU:1496
保存后需要重啟PPTP服務器,指令如下:
service pptpd restart