环境:
操作系统:VMWare 上的 CentOS 7 linux
防火墙:firewalld
SElinux:
IP 地址:192.168.3.128
1-安装ppp
在 linux 中创建 pptp 连接,依赖于 ppp 和 pptpd 包。所以首先我们安装这个包,然后配置它以满足我们的需求。一一运行以下命令:
# yum install ppp
# cd /usr/local/src
# wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.4.0-1.el6.x86_64.rpm
# rpm -Uhv pptpd-1.4 .0-1.el6.x86_64.rpm
注意 也可使用epel yum源,使用yum install pptpd, pptp最新的版本是2013年发布,至少没有更新
2-配置pptpd
现在,我们对 ppp 进行一些配置。首先重命名原来的ppp配置文件:
# mv /etc/pptpd.conf /etc/pptpd.conf.orig
然后使用所需的编辑器打开 /etc/pptpd.conf。这里我们使用 Vim:
# vim /etc/pptpd.conf
并将这些行放入其中:
option /etc/ppp/options.pptpd
logwtmp
localip 10.10.10.1
remoteip 10.10.10.2-254:
# mv /etc/ppp/options.pptpd /etc/ppp/options.pptpd.orig
然后打开 /etc/ppp/options.pptpd 并将以下行放入其中:
# vim /etc/ppp/options.pptpd
name pptpd
proxyarp
lock
nobsdcomp
novj
novjccomp
nologfd
ms-dns 8.8.8.8
ms-dns 8.8.4.4
noauth
现在我们为我们的用户创建用户名和密码。所以打开 /etc/ppp/chap-secrets 并输入您想要的用户名和密码,如下所示:
# vim /etc/ppp/chap-secrets
USERNAME test PASSWORD test
3-配置路由和防火墙
要让我们的服务器正确路由 ip 数据包,我们必须启用内核 ip 转发。运行这个命令:
# echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
然后使其永久生效:
# sysctl -p
现在我们在防火墙中放置一些规则以允许 PPTP 流量并启用 NAT:
# firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p gre -j ACCEPT
# firewall-cmd --permanent --zone=public --add-masquerade
# firewall-cmd --permanent - -add-port=1723/tcp
# firewall-cmd --reload
4- 配置 SElinux
因为我们更喜欢将 selinux 保持在强制模式,如果没有设置适当的 selinux 策略,它会拒绝 pptp 连接。所以运行这个命令:
#setbool -P daemons_use_tty
5-启动服务
最后启动并启用服务:
# systemctl start pptpd
# systemctl enable pptpd
[root@localhost ~]# systemctl status pptpd
● pptpd.service - PoPToP Point to Point Tunneling Server
Loaded: loaded (/usr/lib/systemd/system/pptpd.service; disabled; vendor preset: disabled)
Active: active (running) since Mon 2022-05-16 08:21:34 CST; 2min 49s ago
Main PID: 34736 (pptpd)
CGroup: /system.slice/pptpd.service
└─34736 /usr/sbin/pptpd -f
May 16 08:21:34 localhost.localdomain systemd[1]: Started PoPToP Point to Point Tunneling Server.
May 16 08:21:34 localhost.localdomain systemd[1]: Starting PoPToP Point to Point Tunneling Server...
May 16 08:21:34 localhost.localdomain pptpd[34736]: MGR: connections limit (100) reached, extra IP addresses ignored
May 16 08:21:34 localhost.localdomain pptpd[34736]: MGR: Manager process started
May 16 08:21:34 localhost.localdomain pptpd[34736]: MGR: Maximum of 100 connections available
[root@localhost ~]#