在Windows中不管是VPN或是遠端當跳板,總是受到微軟的限制而變得很困擾,當人數一多就變得很麻煩。
在此篇使用CentOS 6.5安裝 PPTP Server,簡單又好用只能說Linux真是太強大了。
首先先了解一下什麼是PPTP,PPTP維基百科
SETP.1 安裝PPP及PPTPD,由於PPTPD在CentOS內建的官方套件內沒有,需要自行下載
shell# yum install ppp
shell# wget http://poptop.sourceforge.net/yum/stable/rhel6/i386/pptpd-1.4.0-1.el6.i686.rpm
shell# rpm -Uvh pptpd-1.4.0-1.el6.i686.rpm
SETP.2 設定
shell# vim /etc/pptpd.conf
#寫上幾個我會修改到的設定
connections 5 —允許5個連線
localip 192.168.1.1 —Server的IP
remoteip 192.168.1.100-110 —連線進來時配給100~110的IP
shell# vim /etc/ppp/options.pptpd
name pptpd —這個設定關係到chap-secrets中的設定
#加密的部分因VPN希望讓Windows可以單純的設定所以將不需要的加密都註解掉
#refuse-pap
#refuse-chap
#refuse-mschap
require-mschap-v2
ms-dns 168.95.1.1
ms-dns 168.95.192.1
#登入的密碼設定檔、由於是明碼的非常不安全,請使用不常用的密碼
vim /etc/ppp/chap-secrets
主要分為使用者、服務、密碼、IP
Example:
eric pptpd ericpwd 192.168.1.1
david pptpd davidpwd *
eric pptpd ericpwd 192.168.1.1
david pptpd davidpwd *
SETP.3 設定IP forward,可選是否要NAT
shell# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
net.ipv4.ip_forward = 1
#讓設定生效
shell# sysctl -p
or
shell# service network reload
SETP.4 開機啟動、Firewall
$ chkconfig pptpd on $ service pptpd start
#Firewall
$ iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE $ iptables -A INPUT -p tcp -m state --state NEW,RELATED,ESTABLISHED -m tcp --dport 1723 -j ACCEPT $ iptables -A INPUT -p gre -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
- 用 iptables 的 nat 讓 192.168.1.0/24 的封包從 eth0 轉發出去
- 開放 input 1723 port 和 gre 協議
SETP.5 Test,測試部分將不詳解
#Log 位置
/var/log/messges
/var/log/pptpd.log
Error tag:
1. 請調整/etc/ppp/options.pptpd中加密的設定
1. 請調整/etc/ppp/options.pptpd中加密的設定
Mar 9 22:27:49 localhost pptpd[32650]: GRE: read(fd=6,buffer=8059660,len=8196) from PTY failed: status = -1 error = Input/output error, usually caused by unexpected termination of pppd, check option syntax and pppd logs
Mar 9 22:27:49 localhost pptpd[32650]: CTRL: PTY read or GRE write failed (pty,gre)=(6,7)
Mar 9 22:27:49 localhost pptpd[32650]: CTRL: PTY read or GRE write failed (pty,gre)=(6,7)
2. 檢查chap-secrets中帳密是否正確,service須跟options.pptpd中的name pptpd相符。
Mar 9 21:43:13 localhost pppd[32201]: Plugin /usr/lib/pptpd/pptpd-logwtmp.so loaded.
Mar 9 21:43:13 localhost pppd[32201]: The remote system is required to authenticate itself
Mar 9 21:43:13 localhost pppd[32201]: but I couldn’t find any suitable secret (password) for it to use to do so.
Mar 9 21:43:13 localhost pppd[32201]: The remote system is required to authenticate itself
Mar 9 21:43:13 localhost pppd[32201]: but I couldn’t find any suitable secret (password) for it to use to do so.
參考資料:
pptp官網
PPTP下載
pptp官網
PPTP下載
http://blog.toright.com/archives/3260
http://plog.hlps.tc.edu.tw/post/1/8564
http://blog.loudly.me/2007/01/1c665e21d6e7ce0fbe2a589518ab5b08/
http://blog.loudly.me/2007/01/1c665e21d6e7ce0fbe2a589518ab5b08/