CentOS 7下安裝pptp服務

一、檢查是否支持PPTP

1. 在安裝之前查看系統是否支持PPTP

modprobe ppp-compress-18 && echo success #應該輸出:success

2. 是否開啓TUN/TAP

cat /dev/net/tun #應該輸出:cat: /dev/net/tun: File descriptor in bad state

3. 是否開啓ppp

cat /dev/ppp #應該輸出:cat: /dev/ppp: No such device or address

如果環境不滿足上面3個條件,表示很可能不支持pptp

 

二、安裝相關軟件

1.安裝PPP

yum install -y ppp

2.安裝epel源

yum install -y epel-release

3.檢查是否已添加到源列表中

yum repolist

4.沒有則更新源列表

yum -y update

5.安裝pptp

yum install -y pptpd

 

注:如出現異常:One of the configured repositories failed (Unknown)

解決方案是:先把epel卸載,更新後再裝

yum remove epel-release

yum -y update

yum install epel-release

 

三、修改配置

1.vi /etc/pptpd.conf設置VPN內網IP段

最後IP設置改爲:

localip 192.168.100.1

remoteip 192.168.100.234-238,192.168.100.245

2.vi /etc/ppp/options.pptpd

更改DNS項:

ms-dns 8.8.8.8

ms-dns 8.8.4.4

修改日誌記錄:

nologfd

logfile /var/log/pptpd.log

3.vi /etc/ppp/chap-secrets

設置VPN賬號密碼(格式:{account} pptpd {password} *)

例:pptptest pptpd 123456 *

 

啓動pptp:service pptpd start

關閉pptp:service pptpd stop

重啓pptp:service pptpd restart

關閉防火牆,windows下使用使用“添加VPN連接”填寫服務IP、用戶名、密碼連接應該可以連上,這時候本地電腦可以訪問VPN服務器,但是不能訪問外網

啓動防火牆:service firewalld start

關閉防火牆:service firewalld stop

重啓防火牆:service firewalld restart

 

四、開啓服務器系統路由模式,支持包轉發(通過VPN訪問外網)

1.vi /etc/sysctl.conf 修改內核參數支持內核轉發,增加一行:

net.ipv4.ip_forward=1

sysctl -p  #使設置立刻生效

2.創建規則文件:vi /usr/lib/firewalld/services/pptpd.xml,內容爲:

<?xml version="1.0" encoding="utf-8"?>

<service>

    <short>pptpd</short>

    <description>PPTP</description>

    <port protocol="tcp" port="1723"/>

</service>

3.啓動防火牆:service firewalld start

4.添加服務:

firewall-cmd --permanent --zone=public --add-service=pptpd

允許防火牆僞裝IP:

firewall-cmd --add-masquerade

5.開啓47及1723端口:

firewall-cmd --permanent --zone=public --add-port=47/tcp

firewall-cmd --permanent --zone=public --add-port=1723/tcp

6.允許gre協議:

firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p gre -j ACCEPT

firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 0 -p gre -j ACCEPT

7.設置規則允許數據包由eth0和ppp+接口中進出

firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i ppp+ -o eth0 -j ACCEPT

firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i eth0 -o ppp+ -j ACCEPT

8.設置轉發規則,從源地址發出的所有包都進行僞裝,改變地址,由eth0發出:

firewall-cmd --permanent --direct --passthrough ipv4 -t nat -I POSTROUTING -o eth0 -j MASQUERADE -s 192.168.100.0/24

9.重啓防火牆:service firewalld restart

奇怪點,到了這步後發現還是無法上網

需要安裝iptables增加規則才能訪問外網,配置後卸載iptables也沒有問題,或許可以用firewall-cmd命令替代,暫時不知道怎麼替代命令

yum install -y iptables-services

 

開放pptp端口1723,允許轉發

iptables -I INPUT 7 -m state --state NEW -p tcp --dport 1723 -j ACCEPT

iptables -P FORWARD ACCEPT

iptables配置,配置虛擬網段NAT支持。如果pptp客戶端不需要上網,可以忽略本步驟。

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

解決PPTP服務網速慢,參考網頁: http://www.92csz.com/52/1244.html
iptables -I FORWARD -p tcp --syn -i ppp+ -j TCPMSS --set-mss 1356
 

保存iptables規則

service iptables save

10.重啓防火牆:service firewalld restart

終於可以上網了,瀏覽器百度輸入ip,發現是服務器的ip地址了

觀察服務器日誌/var/log/pptpd.log,連接斷開都有日誌打印

Plugin /usr/lib64/pptpd/pptpd-logwtmp.so loaded.
Using interface ppp0
Connect: ppp0 <--> /dev/pts/1
peer from calling number 116.22.2.240 authorized
MPPE 128-bit stateless compression enabled
Cannot determine ethernet address for proxy ARP
local  IP address 192.168.0.1
remote IP address 192.168.1.1


LCP terminated by peer (8Q^WM- ^@<M-Mt^@^@^@^@)
Connect time 0.1 minutes.
Sent 2686 bytes, received 7458 bytes.
Modem hangup
Connection terminated.
 

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