如何安全关闭CentOS上的PPTP服务
PPTP(点对点隧道协议)因其已知的安全漏洞(如MS-CHAPv2的缺陷),已不再被视为安全的VPN解决方案。 若您的CentOS服务器仍在运行PPTP服务,出于安全加固的考虑,立即关闭它是非常必要的操作,以下是清晰、安全的关闭步骤:
第一步:停止正在运行的PPTP服务
连接到您的CentOS服务器
使用SSH工具(如PuTTY、OpenSSH客户端)以管理员权限(root或具有sudo权限的用户)登录服务器。
停止
pptpd服务
PPTP服务在CentOS上通常由pptpd守护进程提供,执行以下命令立即停止它:sudo systemctl stop pptpd
或(对于较旧的SysVinit系统):
sudo service pptpd stop
第二步:禁止PPTP服务开机自启
仅停止服务不会防止它在下次服务器重启时自动运行,需禁用其自启:
sudo systemctl disable pptpd
或(SysVinit):
sudo chkconfig pptpd off
验证是否禁用成功:
sudo systemctl is-enabled pptpd
如果输出是 disabled,表示设置成功。

第三步:检查并终止相关进程(可选但推荐)
有时服务停止后,残留进程可能仍在监听端口,彻底检查:
sudo netstat -tulnp | grep ':1723\b'
或
sudo ss -tulnp | grep ':1723\b'
查找仍在监听TCP 1723端口(PPTP默认控制端口)的进程,如果发现进程ID(PID),使用kill命令终止:
sudo kill -9 <PID>
第四步:配置防火墙阻止PPTP流量(关键步骤)
即使服务停止,防火墙若开放端口,外部仍可尝试连接。必须封锁相关端口:
如果使用
firewalld(CentOS 7/8/Stream 默认):sudo firewall-cmd --permanent --remove-service=pptp # 移除预定义的pptp服务规则 sudo firewall-cmd --permanent --remove-port=1723/tcp # 直接移除TCP 1723端口 sudo firewall-cmd --permanent --remove-port=47/tcp # 移除GRE协议对应的端口(协议号47,常被误标为TCP/UDP端口,实际是IP协议) sudo firewall-cmd --reload # 重载防火墙配置使更改生效
重要提示:
firewalld的pptp服务定义通常同时包含1723/tcp和gre协议(IP协议47),上述命令确保两者均被移除。
如果使用
iptables(CentOS 6 或 显式使用): 查找并删除允许PPTP的规则(通常涉及TCP 1723和GRE协议47):sudo iptables -L INPUT -nv --line-numbers # 仔细查看INPUT链规则
找到目标为
ACCEPT且涉及dpt:1723或proto gre的规则,记录其行号,然后删除:sudo iptables -D INPUT <行号>
永久生效: 修改
/etc/sysconfig/iptables文件(CentOS 6)或使用iptables-save > /etc/sysconfig/iptables(CentOS 7+ 如使用iptables服务)保存规则。操作防火墙规则前务必备份!
第五步:确认PPTP服务已彻底关闭
执行最终检查:
- 检查服务状态:
sudo systemctl status pptpd
应显示
inactive (dead)和disabled。 - 检查端口监听:
sudo netstat -tulnp | grep -E ':1723|pptpd' sudo ss -tulnp | grep -E ':1723|pptpd'
应无任何与
1723端口或pptpd进程相关的输出。 - 测试外部连接(谨慎):
从外部网络尝试连接服务器的公网IP地址的1723端口(可使用telnet <your-server-ip> 1723),如果连接被拒绝或超时,说明端口已成功关闭。测试后请结束telnet会话。
常见问题解答 (Q&A)
Q:关闭PPTP后,现有的VPN连接会怎样?
A:当pptpd服务被停止时,所有通过该服务建立的现有PPTP VPN连接将立即中断。Q:我需要卸载
pptpd软件包吗?
A:停止并禁用服务、封锁防火墙端口后,服务已不可用,卸载可进一步减少潜在攻击面(sudo yum remove pptpd),但如果您未来可能临时需要,保留软件包但确保服务彻底关闭也是可接受的。Q:关闭后如何重新启用PPTP?
A:强烈不建议重新启用。 若必须:1)sudo systemctl enable pptpd2)sudo systemctl start pptpd3) 在防火墙重新开放TCP 1723端口和GRE协议(IP 47)。请务必评估安全风险!Q:PPTP关闭了,我应该用什么替代?
A:强烈建议迁移到更安全的VPN协议:- OpenVPN: 开源、灵活、强加密,配置稍复杂但社区支持完善。
- IPsec (L2TP/IPsec 或 IKEv2): 标准协议,现代操作系统原生支持,安全性好。
- WireGuard: 新兴协议,高性能、代码简洁、加密先进,配置相对简单。
维护服务器安全是持续的过程,及时淘汰已知存在严重缺陷的服务(如PPTP),迁移至经过严格验证的现代替代方案(如OpenVPN, WireGuard, IPsec),是保障服务器与用户数据免受威胁的基础措施。 定期审查运行中的服务与开放的端口,是每个负责任的系统管理员工作的重要部分。
