ubuntu 20.04.1验证PPtP
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上验证
配置也是相当简单