安裝VPN伺服器Poptop(PPTPD) on CentOS
Poptop – The PPTP Server for Linux
架設點對點PPP撥接式VPN伺服器這類文章其實很多了,而且我googlecode的檔案下載很多次了,想說貼上來做個筆記吧。
Step.1 首先測試是否能安裝PPTPD
modprobe ppp-compress-18 && echo ok
如果有回應ok就是代表核心支援PPP,不支援也可以試試看就是了,然後輸入以下兩行指令。

cat /dev/ppp
cat /dev/net/tun
如果回應是如下的狀況就是可以安裝PPTPD了~
cat: /dev/ppp: No such device or address
cat: /dev/net/tun: File descriptor in bad state


Step.2 安裝基本套件
yum install -y ppp iptables
Step.3 依照系統安裝PPTPD
32位元系統
rpm -ihv http://acelnmp.googlecode.com/files/pptpd-1.3.4-1.rhel5.1.i386.rpm
64位元系統
rpm -ihv http://acelnmp.googlecode.com/files/pptpd-1.3.4-1.rhel5.1.x86_64.rpm
Step.4 建立PPTPD主設定檔
vi /etc/ppp/options.pptpd
直接使用官網的推薦模式即可,DNS可修改為咕狗或其他的,內容以下:
name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
proxyarp
lock
nobsdcomp
novj
novjccomp
nologfd
ms-dns 4.4.2.1
ms-dns 4.4.2.2
Step.5 建立PPTPD的虛擬IP設定檔
vi /etc/pptpd.conf
這邊也是直接使用官網的推薦模式即可,內容以下:
option /etc/ppp/options.pptpd
logwtmp
localip 192.168.0.1
remoteip 192.168.0.234-238,192.168.0.245
Step.6 建立使用者
vi /etc/ppp/chap-secrets
按照原始檔裡面的說明來增加使用者,格式是一行一個帳號,範例帳號whoami、密碼lulala
# Secrets for authentication using CHAP
# client server secret IP addresses
whoami pptpd lulala *
Step.7 修改PPTPD使用的MTU值
vi /etc/ppp/ip-up
在第16行空白的地方加入如下內容
/sbin/ifconfig $1 mtu 1400
Step.9 設定伺服器可IP轉發
cp /etc/sysctl.conf /etc/sysctl.conf.bak
vi /etc/sysctl.conf
找到以下兩個選項設為1啟動IP轉發
net.ipv4.ip_forward = 0 改成 1
net.ipv4.tcp_syncookies = 0 改成 1
存檔後輸入以下指令啟用IP轉發
/sbin/sysctl -p
Step.10 設定iptables規則,要注意的是第二行的1723端口是必須開放的,有使用其他防火牆的記得要開放1723端口;另外第三行的eth0要對應到你實際使用的網路介面。
iptables -A INPUT -p gre -j ACCEPT
iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
iptables -A FORWARD -p tcp --syn -s 192.168.0.0/24 -j TCPMSS --set-mss 1356
service iptables save
service iptables restart
OpenVZ規格的主機則依照下面設定,第三行8.8.8.8的部分要改成主機的真實IP
iptables -A INPUT -p gre -j ACCEPT
iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source 8.8.8.8
iptables -A FORWARD -p tcp --syn -s 192.168.0.0/24 -j TCPMSS --set-mss 1356
service iptables save
service iptables restart

Step.11 加到服務後啟動PPTPD
chkconfig --level 345 pptpd on
service pptpd start
然後用這個指令測試PPTPD有沒有運作成功
ps ax |grep pptpd
netstat -atunp | grep pptpd

如果撥號時提示錯誤619,可以先SSH連線過去後輸入下列指令試試看
rm -rf /dev/ppp
mknod /dev/ppp c 108 0
service pptpd restart
還是不行的話再編輯pptpd.conf
vi /etc/pptpd.conf
將logwtmp加上註解:
#logwtmp
最後在重新啟動PPTPD就應該正常了。
service pptpd restart

如果你有ROOT了就不用擔心PORT的問題吧~ 一開始先開基本的HTTP、FTP、VPN服務用的PORT,或是利用APF來做管理也很方便,我也是利用APF來管理IPTABLES的
搜尋一下,網路很多教學~
嘿嘿嘿 另外一個KVM也可以玩了 你要玩嗎??
要的話 敲我的skype…嘿嘿
遇到鬼打牆了 一台pptp的VPN
在公司可以連到 在家連不到 這是什麼跟什麼啊@@
就跟你說要放乖乖了,不聽~ 哼!(丟筆)
終於修好了…
BTW, 小憂的照片….怎麼一付是正在爽的樣子[咦