請參考以下步驟:(centos6.5中測試通過)
1、服務器端安裝軟件
1.1 首先安裝ppp,命令:
[root@test ~]#yum install -y ppp
提示Complete! ,表示安裝成功;
1.2 安裝pptpd,安裝命令如下:
[root@test ~]#yum clean all
[root@test ~]#yum makecache
[root@test ~]#yum -y install pptpd
2、配置pptpd
2.1編輯/etc/pptpd.conf,命令如下
[root@test ~]#vi /etc/pptpd.conf
將
#localip 192.168.0.1
#remoteip 192.168.0.234-238
修改成
#用100網段是因為大多數路由器的內網都是192.168.0.0的網段,避免沖突
localip 192.168.100.1
remoteip 192.168.100.234-238,192.168.100.245
即將這兩行第一個字符“#”去掉,保存退出。
注: 以上設置的IP地址: localip 192.168.100.1和remoteip 192.168.100.2-200分別是vpn服務器的地址和vpn客戶端獲取地址段,也可以自行設置。
2.2編輯/etc/ppp/options.pptpd,命令如下
[root@test ~]#vi /etc/ppp/options.pptpd
將
#ms-dns 10.0.0.1
#ms-dns 10.0.0.2
改成
ms-dns 223.5.5.5
ms-dns 223.6.6.6
即將這兩行第一個字符“#”去掉,而后修改DNS的IP。
注: ms-dns 223.5.5.5和 ms-dns 223.6.6.6是設置的dns地址,可以設置成其他的,例如:ms-dns 114.114.114.114等。
2.3設置使用pptp的用戶名和密碼命令:
[root@test ~]#vi /etc/ppp/chap-secrets
打開后只有兩行,而且一個賬號都沒有
# Secrets for authentication using CHAP
# client server secret IP addresses
根據需要添加賬號,每行一個。按照:“用戶名 pptpd 密碼 ip地址”的格式輸入,每一項之間用空格分開,例如:test pptpd 123456 * (*表示所有IP),保存並退出。
3、修改內核設置,以支持數據轉發:
[root@test ~]#vi /etc/sysctl.conf
將net.ipv4.ip_forward=0 改成net.ipv4.ip_forward=1
保存並退出
執行以下命令使修改后的參數生效
[root@test ~]#sysctl -p
4、添加iptables轉發規則
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o eth1 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -j SNAT --to-source 外網ip地址/或者內網IP地址
注: 如果本地需要訪問雲服務中的ECS、RDS、OSS內網,可以設置為內網IP地址,如果是本地需要通過VPN端訪問公網,可以設置為外網IP地址
nat規則清除: iptables -t nat -F ,如果需要修改最好先清除一下,否則問題多。
另外要注意的是,如果你的Iptables限制vpn段的IP可以訪問80端口,那么使用http://外網IP:80 這樣是不能訪問的,因為服務器檢測到要連接80端口的IP不是vpn段的IP。可以將域名解析到192.168.100.1 即vpn的網關上來訪問80端口。
添加好轉發規則后,使用如下命令保存設置並重啟防火牆
[root@test ~]#/etc/init.d/iptables save
[root@test ~]#/etc/init.d/iptables restart
5、重啟pptp服務
[root@test ~]#/etc/init.d/pptpd restart
此處要注意,其實此時pptp還沒運行起來,所以使用restart重啟,會顯示Shutting down pptp [FAILED]。還會有一個警告,可以忽略。如不放心可以再用以上命令重啟一下pptp就非常順利的運行了。
6、設置pptp和iptables隨系統啟動
[root@test ~]#chkconfig pptpd on
[root@test ~]#chkconfig iptables on
至此,pptp服務端安裝結束。
在本地計算機“網絡和共享中心”,設置新的連接或網絡,即可訪問VPN。
7. 設置一下防火牆,保證192.168.100.0/24可以正常訪問服務。
#!/bin/bash
iptables -F
iptables -X
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp -s 192.168.100.0/24 --dport 80 -j ACCEPT
#iptables -A INPUT -p tcp -s 123.125.174.237 --dport 8080 -j ACCEPT
#svn server port
#iptables -A INPUT -p tcp --dport 3690 -j ACCEPT
#iptables -A INPUT -p icmp -j ACCEPT
#pptp
iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -j SNAT --to-source 10.44.12.223
iptables -A INPUT -i lo -p all -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT
iptables-save > /etc/sysconfig/iptables