2.pptpd vpn 相關的設定
vim /etc/pptpd.conf
添加以下設定
(在此我的server有兩張網卡,
本來就有區網 網段為192.168.0.x, 為了避開, 所以改成192.168.16.x,
一般分開兩網段比較方便管理,也有人用10.0.0.x)
debug 測試的時候可以開(把#號拿掉)# 開啟 debug (會寫到 /var/log/message) 測試完記得關閉 debug # 連線數 connections 20 ppp /usr/sbin/pppd option /etc/ppp/pptpd-options localip 192.168.16.1 remoteip 192.168.16.201-220
local-ip是你主機的IP, 可故意分在不同網段
connections 可不寫
vim /etc/ppp/options
asyncmap 0 auth crtscts lock hide-password modem proxyarp lcp-echo-interval 30 lcp-echo-failure 4 noipx
vim /etc/ppp/pptpd-options
最後編輯帳號密碼name MyVPN # 與連線加密相關的設定 refuse-pap refuse-chap refuse-mschap require-mschap-v2 require-mppe-128 proxyarp nodefaultroute lock nobsdcomp # 設定要分派的 DNS Server ms-dns 168.95.1.1 ms-dns 8.8.8.8 # 指定 logfile logfile /var/log/pptpd.log # 設定閒置幾秒後自動斷線 idle 7200
vim /etc/ppp/chap-secrets
"username" MyVPN "password" *
開啟 Forward,主要是為了能夠進行 NAT
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
service network reload
3.啟動pptpd
最後啟動 pptpd 並且設定 pptpd 開機自動啟用
chkconfig --level 345 pptpd on
service pptpd start
檢查 pptpd是否有 run 起來:
service --status-all | grep pptp
note: 重啟pptpd的方法
service pptpd restart
3. 防火牆設置
opensuse 12.2內建SuSE2firewall ,我不會改iptables..
所以直接對internal的route設通通可以
vim /etc/sysconfig/SuSEfirewall2
記得備份!
裡面加入以下設定
完成#對internal 開放 FW_ALLOW_CLASS_ROUTING="int" FW_ROUTE="yes" FW_MASQUERADE="yes" FW_DEV_INT="ppp+" #如果對內本來還有別張網卡, ex eth1 #那就改成 "eth1 ppp+" 以空白隔開
Appendix. 其他linux之防火牆設置
一般linux的話, 直接照著網路上常有的nat設定 for vpn即可(port 1723 與 gre協定)
先來做個備份吧
note: 還原的方法
iptables-save > ./iptables_backup
iptables-restore < ./iptables_backup
開始設定iptable
#開啟 forward
echo "1" > /proc/sys/net/ipv4/ip_forward
#pptp
iptables -t nat -A POSTROUTING -s 192.168.16.0/24 -o eth0 -j MASQUERADE
iptables -A INPUT -i eth0 -p tcp --dport 1723 -j ACCEPT
iptables -A INPUT -i eth0 -p gre -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i ppp+ -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o ppp+ -j ACCEPT
Appendix.2 自訂log要記錄的資料
vim /etc/ppp/ip-down.local
以下為範例:
(
改完後記得還要chmod 把ip-down.local改成可執行 ex: chmod 777 /etc/ppp/ip-down.local)
#!/bin/bash BASENAME=${0##*/} INTERFACE=$1 DEVICE=$2 SPEED=$3 LOCALIP=$4 REMOTEIP=$5 IPPARAM=$6 echo "================================================" >> /var/log/pptpd.log echo "log of clientIP: $6 username: $PEERNAME" >> /var/log/pptpd.log echo "------------------------------------------------" >> /var/log/pptpd.log echo "/etc/ppp/ip-down.local starts.." >> /var/log/pptpd.log echo "time: `date -d today +%F,%T`" >> /var/log/pptpd.log echo "interface: $1 device: $2" >> /var/log/pptpd.log echo "assignIP: $5" >> /var/log/pptpd.log echo "================================================" >> /var/log/pptpd.log
非常有幫助的資料:
在 Linux 安裝 VPN Server 教學 (pptpd on CentOS)
PPTP协议的VPN服务器的搭建,包括pptpd的自动启动...