异地组网之 PPTP 快速部署 (ubuntu 20.04+pptpd+pptp-linux+win10)
异地组网之 PPTP 快速部署 (ubuntu 20.04+pptpd+pptp-linux+win10)
-
相关文章2:异地组网之 IPSec 快速部署
-
相关文章3:异地组网之 OpenVPN 快速部署
声明:本教程仅用于个人学习或工业组网应用,请勿用于“非法”用途,否则带来法律风险自行承担。
PPTP(点对点隧道协议):控制包和数据包分开,控制包采用 TCP 控制,数据包部分封装 PPP 协议然后封装 GREV2 协议。由此可见 PPTP 建立连接前,要求有 IP 网络。
Ubuntu 20.04.1 上搭建 PPTP Server 和 Client
1. Server 部署
- 1.1 安装 ppp
sudo apt install ppp
- 1.2 安装 pptpd
sudo apt install pptpd
- 1.3 配置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,不同的区域用逗号隔开,中间不能有空格。
-
1.4 配置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又有一些不同分支版本,主要是对安全兼容等方面的加强。
-
1.5 设置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 *
- 1.6 启动服务
sudo systemctl enable pptpd
sudo systemctl start pptpd
由于这里不验证client端通过server端上网,所以没讨论如何设置转发和防火墙的设置。
-
1.7 (扩展)设置转发和防火墙
开启转发
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 端可以上外网了。
2. Client 端
首先使用另一台 ubuntu 验证,安装相关的软件
sudo apt-get install network-manager-pptp
sudo apt-get install pptp-linux
- 注:可能由于墙的问题 shots 无法显示,可前往 这里 查看
通过UI界面配置
选择PPTP插件
设置密码时需要点一下那个问好,选择第一个或者第二个,才可以输入密码。然后点击Advance,设置高级配置。
高级配置里面,根据上面server鉴权和数据加密的配置来勾选,这里server鉴权配置为mschapv2,数据加密使用了mppe-128。保存,连接。
然后,使用另一个账号密码在openwrt上连接,需要注意的是,一个账号对应一路连接,同一个账号不能同时从多个client端连接。
在server端可以看到此时有2个ppp连接
如果嫌麻烦,也可以直接在win10上验证
配置也是相当简单