# 安装yum源,及pptpd服务
yum install -y ppp pptpd iptables
# 編輯 “/etc/sysctl.conf"文件,打開ip包轉發
 
vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
 
#下面的指令全部給它下去:

sysctl -p
echo "localip 192.168.240.1" >> /etc/pptpd.conf
echo "remoteip 192.168.240.101-200" >> /etc/pptpd.conf
echo "ms-dns 8.8.8.8" >> /etc/ppp/options.pptpd
echo "ms-dns 8.8.4.4" >> /etc/ppp/options.pptpd
iptables --flush POSTROUTING --table nat
iptables --flush FORWARD
iptables -A INPUT -p tcp -m tcp --dport 1723 -j ACCEPT
iptables -A INPUT -p gre -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.240.0/24 -o eth0 -j MASQUERADE
service iptables save
service pptpd restart
service iptables restart
chkconfig pptpd on
chkconfig iptables on

 
編輯 /etc/ppp/options.pptpd
# 指定 logfile
logfile /var/log/pptpd.log
 
# 設定閒置幾秒後自動斷線
idle 1800
 
上面這些指令會創造一個 192.168.240.* 的網段給連上來的 vpn 用戶使用,並透過 Server 上的 eth0 轉送對外上網的封包 (Forward)。
這樣就大功告成了,接著我們要加入 VPN 的連線帳號。
加入 VPN 帳號
 
編輯 “/etc/ppp/chap-secrets" 以加入 VPN 帳號,一個帳號一行,格式為:
帳號名稱 pptpd 密碼 *
例如,我要新增一個帳號為 “vpn",密碼為 “test123″,則只要在 “/etc/ppp/chap-secrets" 加入一行:
vpn pptpd test123 *
 
加入之後,不用重新啟動 pptpd,你就可在 Client 端以 pptp 協定用 VPN 連線至這台 Server 了。
連線測試,連線成功之後,你可以連到 ip.calm9.com 查看你是否用 VPN Server 的 IP 在上網。
 
iptables 規則說明
設定步驟中的這三條指令是最重要的 iptables 規則:
 
iptables -A INPUT -p tcp -m tcp –dport 1723 -j ACCEPT
iptables -A INPUT -p gre -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.240.0/24 -o eth0 -j MASQUERADE
因為 pptp 是以 GRE (Generic Routing Encapsulation) 封包透過 1723 Port 進行傳輸,並且還要設定 VPN 的網段是由哪個網路介面轉送對外的封包。
 
在撥接 vpn 時,如果出現 807 錯誤,或是其它在確認帳號、密碼之前出現的錯誤,如果確定不是自己電腦的問題,你可以編輯 /etc/sysconfig/iptables,查看這兩條規則是否有正確出現在檔案裡面:
 
-A INPUT -p tcp -m tcp –dport 1723 -j ACCEPT
-A INPUT -p gre -j ACCEPT
並且這兩條規則的位置不能在任何 “-A INPUT -j REJECT …" 的規則下面。若有這種情形,請把它移到 “-A INPUT -J REJECT …" 的上方。
儲存之後,再重新啟動 iptables:
service iptables restartIMGP8681

Tags: , , ,