CentOS 搭建pptpd服務器

PPTP
點對點隧道協議(PPTP)是一種實現虛擬專用網絡的方法。 PPTP使用用於封裝PPP數據包的TCP及GRE隧道控制通道
PPTP可以應用到幾乎所有的操作系統,無需安裝任何軟件。

安裝所需的依賴包
[root@vultr ~]# yum install ppp

安裝pptpd
[root@vultr ~]# yum install pptpd
說明:如果所使用的yum源中沒有pptpd,就手動去下載該軟件包或者包含該軟件包的源

ppp配置:
配置ppp,一個option文件/etc/ppp/options.pptpd,一個用戶賬戶文件

echo 'ms-dns 8.8.8.8' >> /etc/ppp/options.pptpd
echo 'ms-dns 8.8.4.4' >> /etc/ppp/options.pptpd

pptpd配置:
[root@vultr software]#
sed -i 's/^logwtmp/#logwtmp/g' /etc/pptpd.conf
echo 'localip 192.168.88.1' >> /etc/pptpd.conf
echo 'remoteip 192.168.88.100-199' >> /etc/pptpd.conf

[root@vultr software]#
echo 'test pptpd 123456 *' >> /etc/ppp/chap-secrets

說明:pptp客戶的用戶名、服務名稱、密碼和IP地址範圍,每行一個賬戶:

說明:該配置文件就添加localip和remoteip兩個參數就好了,localip爲服務端的ip,remoteip爲分配給客戶端的ip段。這兩項都可以分配多個ip。

注意:這兩個IP段不能有重合。

設置pptpd開機自啓動:
[root@vultr software]# chkconfig --level 35 pptpd on

防火牆配置:
iptables -t nat -A POSTROUTING -s 192.168.88.0/24 -o venet0 -j MASQUERADE
service iptables save
service pptpd restart


如果pptp服務器還是有問題,可查看下面設置,如果沒有問題,下面可以忽略

開啓系統內核的IP轉發功能:
[root@vultr software]# grep ip_forward /etc/sysctl.conf
net.ipv4.ip_forward = 0

該參數默認爲0,將該參數設置爲1
net.ipv4.ip_forward = 1

使該參數修改生效:
[root@vultr software]# sysctl -p
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
net.ipv6.conf.all.accept_ra = 2
net.ipv6.conf.eth0.accept_ra = 2

因爲直接在公網IP上做的,所以防火牆的策略是關閉所有,開啓所需,因爲做了代理,OUTPUT鏈就全放開了。
[root@vultr scripts]# cat iptables.sh
#/bin/bash
#清除規則
iptables -F
iptables -X
iptables -Z
iptables -t nat -F
iptables -t nat -X
iptables -t nat -Z
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

#設定規則
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

#開啓常用服務端口
iptables -A INPUT -p tcp --dport 21 -m state --state NEW -j ACCEPT
iptables -A INPUT -p tcp --dport 20 -m state --state NEW -j ACCEPT

iptables -A INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --set
iptables -A INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --update --seconds 300 --hitcount 5 -j DROP
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT

#開啓端口轉發
iptables -A INPUT -p gre -j ACCEPT
iptables -A INPUT -p tcp --dport 1723 -m state --state NEW -j ACCEPT
iptables -A FORWARD -s 192.168.88.0/24 -o eth0 -j ACCEPT
iptables -A FORWARD -d 192.168.88.0/24 -i eth0 -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.88.0/24 -o eth0 -j SNAT --to-source 123.123.123.123
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -s 192.168.88.0/24 -j TCPMSS --set-mss 1400
/etc/init.d/iptables save

說明:
iptables -t nat -A POSTROUTING -s 192.168.88.0/24 -o eth0 -j SNAT --to-source 123.123.123.123(這是vps公網IP)
這一條也可以寫成:
iptables -t nat -A POSTROUTING -s 192.168.88.0/24 -o eth0 -j MASQUERADE (這種寫法主要應用於無固定公網IP,直接讓它自動獲取訪問外網的IP作爲源IP。比如有些撥號上網,公網IP經常會變動)

寫完上面這一條規則基本算是完成了,可以在客戶端訪問了

客戶端連接能上google了,但是卻不能訪問baidu,看日誌。。。。。

iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -s 192.168.88.0/24 -j TCPMSS --set-mss 1400
這裏涉及到不同系統平臺下MTU值不一樣

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章