Centos7 搭建PPTP-VPN 服务

warning: 这篇文章距离上次修改已过486天,其中的内容可能已经有所变动。

PPTP点对点隧道协议(PPTP,Point-to-Point Tunneling
Protocol)是一种协议(一套通信规则),它允许企业通过私人“隧道”在公共网络上扩展自己的企业网络。注意:苹果手机从ios10起不支持pptp
vpn了

PPTP以通用路由封装(GRE)协议向对方作一般的点对点传输。通过TCP1723端口来发起和管理GRE状态。因为PPTP需要2个网络状态,因此会对穿越防火墙造成困难。很多防火墙不能完整地传递连接,导致无法连接。
在Windows或Mac OS平台,通常PPTP可搭配MSCHAP-v2或EAP-TLS进行身份验证
,也可配合微软点对点加密(MPPE)进行连接时的加密。

1371745-20211109170105742-1724833638.png1371745-20211109170105742-1724833638.png

声明:本文仅限用于企业远程办公或企业跨境电商用途参考,如果用于其他用途一概和本博文无关

搭建清单: Centos7 (我这里使用腾讯云的服务器) ppp和pptpd 包 iptables (我这里使用iptables)
win10客户端(连接测试使用)

1、查看是否支持
[root@VM_centos ~]# modprobe ppp-compress-18 && echo yes
yes
[root@VM_centos ~]# cat /dev/ppp
cat: /dev/ppp: 没有那个设备或地址
2、禁用firewalld防火墙和安装需要的包
#停止和禁用firewalld
[root@VM_centos ~]# systemctl stop firewalld
[root@VM_centos ~]# systemctl disable firewalld
#增加epel yum源
[root@VM_centos ~]# yum install epel-release -y
#安装需要的包
[root@VM_centos ~]# yum install ppp ppp-devel pptpd iptables iptables-services -y
3、修改配置文件pptpd.conf option.pptpd
[root@VM_centos ~]# vim /etc/pptpd.conf
#找到此处去掉前面注释
localip xxx.xxx.xxx.xxx  #自定义一个ip或者内网ip地址
remoteip 192.168.0.10-20  #自定义分配给客户端的网段和地址池
[root@VM_centos ~]# vim /etc/ppp/options.pptpd
#修改下ms-dns,和添加一个日志文件,其他默认都开启的不用动即可
name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
ms-dns 8.8.8.8
ms-dns 114.114.114.114
proxyarp
lock
nobsdcomp 
novj
novjccomp
nologfd
logfile /var/log/pptpd.log
4、修改用户认证配置文件chap-secrets
[root@VM_centos ~]# vim /etc/ppp/chap-secrets
#添加用户格式:用户名 pptpd 密码 *
# Secrets for authentication using CHAP
# client    server    secret            IP addresses
test    * 123456 *
5、打开系统ipv4转发 sysctl.conf
[root@VM_centos ~]# vim /etc/sysctl.conf
#有此项的话修改数值为1 没有的新添加一条
net.ipv4.ip_forward=1
#应用生效
[root@VM_centos ~]# sysctl -p
6、启动pptpd服务
[root@VM_centos ~]# systemctl start pptpd
7、开放需要的端口(iptables和云服务器的安全组),此步操作完就可以先测试下是否可以连接了
# 1723端口和gre协议是必须添加的,其他规则的端口不用按我的这个添加
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT 
iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
iptables -A INPUT -p gre -j ACCEPT
#保存规则
[root@VM_centos ~]# service iptables save
#重启生效
[root@VM_centos ~]# systemctl restart iptables

1371745-20211109170454511-1751764398.png1371745-20211109170454511-1751764398.png

8、增加转发规则,和修改mtu的大小,为了可以连上vpn后上网
#注意这里网段和上面配置文件(/etc/pptpd.conf)网段子网一致,eth0和本机网卡名称一致(本机只有eth0和lo)
[root@VM_centos ~]# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
#保存规则
[root@VM_centos ~]# service iptables save
#重启生效
[root@VM_centos ~]# systemctl restart iptables
#修改MTU默认值1396为1500,在exit 0前面加一句
[root@VM_centos ~]# vim /etc/ppp/ip-up
.......
ifconfig $1 mtu 1500   //新增

exit 0

#重启下pptpd服务
[root@VM_centos ~]# systemctl restart pptpd

1371745-20211109170610401-675140741.png1371745-20211109170610401-675140741.png

9、win10客户端连接测试(连接后所有上网流量都通过vpn服务器)

win10客户端pptp vpn主要配置参数

1371745-20211109170717361-155764852.png1371745-20211109170717361-155764852.png

win10客户端连接后的信息,上公网和访问内网机器

1371745-20211109170756173-265188688.png1371745-20211109170756173-265188688.png

如果想用本地网络上网,又可以访问连接vpn服务器的网络(连接后上网流量还是通过本地网络)
1371745-20211109170842116-119517424.png1371745-20211109170842116-119517424.png

1371745-20211109170915637-1424000451.png1371745-20211109170915637-1424000451.png

以上教程转自:https://me.jinchuang.org/archives/517.html/comment-page-2#comments
更改PPTP默认端口:
Server:

修改 /etc/services 文件
查找 1723,然后将其修改为你想修改的数值,重启 pptpd即可.

客户端:

1、找到 C:\WINDOWS\system32\drivers\etc,修改services文件,修改里面的VPN(PPTP)端口1723为你设定的端口
2、系统自带的东西,修改配置参数当然就得进注册表了。进入HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE- BFC1-08002bE10318}项,其中有类似0000、0001、0002……这样的子项,每个子项都对应一个网适配器的配置。逐一打开这些子项,找到其中字段DriverDesc值为WAN Miniport (PPTP)的子项,例如我找到的是0003。在这个子项里的TcpPortNumber的值就是pptp vpn所使用的端口,双击修改其值,选择基数为十进制,修改成所需要的值确认即可。重启机器后,修改生效。

1371745-20211109171412563-182665220.png1371745-20211109171412563-182665220.png

最后修改于:2023年07月23日 20:45

添加新评论

选择表情