PPTP(點對點隧道協議):控制包和數據包分開,控制包采用TCP控制,數據包部分封裝PPP協議然后封裝GREV2協議。由此可見PPTP建立連接前,要求有IP網絡。
Ubuntu 20.04.1 上搭建PPtP Server和Client
Server端
-
安裝ppp
sudo apt install ppp
-
安裝pptpd
sudo apt install pptpd
-
配置pptpd
pptpd的配置文件為
/etc/pptpd.conf
,vim編輯它,一下為部分配置選項,詳情可閱讀配置文件里面的注釋。# ppp撥號程序路徑 ppp /usr/sbin/pppd # ppp配置文件 option /etc/ppp/pptpd-options # 開啟debug,日志輸出到syslog debug # 連接控制的超時時間(秒) stimeout 10 # 最大連接數 connections 100 # 本地端(server)IP localip 192.168.0.1 # 遠程對端(client)分配IP范圍 remoteip 192.168.0.234-238,192.168.0.245
其他默認即可,這里主要修改
localip
和remoteip
。需要注意的是remoteip可以指定一個范圍,或者某一個ip,不同的區域用逗號隔開,中間不能有空格。 -
配置pptpd對應的ppp配置文件
pptpd對應的ppp文件文件在上面的
/etc/pptpd.conf
文件中已指定,為/etc/ppp/pptpd-options
,安裝pptpd時也一並安裝了。 此文件中主要修改ms-dns項,設置為你想要的dns
#ms-dns 10.0.0.1 #ms-dns 10.0.0.2 ms-dns 114.114.114.114 ms-dns 8.8.8.8
除此之外,還需要留意這個文件里面對鑒權認證和數據加密相關的設置,默認的為:
# 留意refuse(拒絕,禁用)選項 refuse-pap refuse-chap refuse-mschap require-mschap-v2 require-mppe-128
鑒權大致分為chap和pap,chap又有一些不同分支版本,主要是對安全兼容等方面的加強。
-
設置ppp賬戶密碼
賬號密碼配置的文件有2個,一個是
/etc/ppp/chap-secrets
,一個是/etc/ppp/pap-secrets
。選用哪一個取決於上一個步驟使用何種驗證方式,因為這里禁用了:refuse-pap refuse-chap refuse-mschap
而啟用了:
require-mschap-v2
所以這里需要在
/etc/ppp/chap-secrets
配置賬戶密碼# Secrets for authentication using CHAP # client server secret IP addresses test * test * admin * admin *
-
啟動服務
sudo systemctl enable pptpd sudo systemctl start pptpd
由於這里不驗證client端通過server端上網,所以沒討論如何設置轉發和防火牆的設置。
-
擴展,設置轉發和防火牆
開啟轉發
sudo vim /etc/sysctl.conf #找到對應參數,修改成如下: net.ipv4.ip_forward=1 #保存,使配置生效 sudo sysctl -p
配置防火牆
sudo iptables -A INPUT -p gre -j ACCEPT sudo iptables -A INPUT -p tcp --dport 1723 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 47 -j ACCEPT #NAT轉發的這條信息根據自己之前的配置(localip,remoteip網段)修改,注意網卡名設置為你的wan口網卡名,Ubuntu高一點的版本一般是ens33 sudo iptables -t nat -A POSTROUTING -s 192.168.0.1/24 -o ens33 -j MASQUERADE
重啟服務
sudo systemctl restart pptpd
此時client端可以上外網了。
Client端
首先使用另一台ubuntu驗證,安裝相關的軟件
sudo apt-get install network-manager-pptp
sudo apt-get install pptp-linux
通過UI界面配置
選擇PPTP插件
設置密碼時需要點一下那個問好,選擇第一個或者第二個,才可以輸入密碼。然后點擊Advance,設置高級配置。
高級配置里面,根據上面server鑒權和數據加密的配置來勾選,這里server鑒權配置為mschapv2,數據加密使用了mppe-128。保存,連接。
然后,使用另一個賬號密碼在openwrt上連接,需要注意的是,一個賬號對應一路連接,同一個賬號不能同時從多個client端連接。
在server端可以看到此時有2個ppp連接
如果嫌麻煩,也可以直接在win10上驗證
配置也是相當簡單