[CentOS] VPN Server 架設之PPTP

2014-03-10 CentOS

在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   *
 
SETP.3 設定IP forward,可選是否要NAT
 
shell# vim /etc/sysctl.conf
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中加密的設定
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)
 
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.
 
 
 
 
參考資料:
pptp官網
PPTP下載
http://blog.toright.com/archives/3260
http://plog.hlps.tc.edu.tw/post/1/8564
http://blog.loudly.me/2007/01/1c665e21d6e7ce0fbe2a589518ab5b08/

給 Mr. 沙先生一點建議

彙整

分類

展開全部 | 收合全部

License

訂閱 Mr. 沙先生 的文章

輸入你的 email 用於訂閱