HCRM博客

在CentOS系统上搭建PPTP VPN及配置网关教程

在CentOS上配置PPTP服务并实现网关路由:技术实践指南

前言 在特定网络场景下(如兼容老旧设备或简化配置),CentOS系统部署PPTP VPN并使其作为客户端网关仍有一定价值,本文提供详细操作流程及关键注意事项,强调安全与稳定性。

在CentOS系统上搭建PPTP VPN及配置网关教程-图1


PPTP VPN基础原理简述

  • 协议构成:PPTP依赖GRE协议(47端口)建立隧道,TCP端口1723进行控制连接,采用MPPE协议加密数据
  • 网关角色:配置成功后,VPN服务器可为客户端分配内网IP,并承担其网络流量的路由转发职责

CentOS PPTP服务端部署流程

环境准备

# 确认系统内核支持MPPE
modprobe ppp-compress-18 && echo "MPPE模块已加载"
# 安装核心组件
yum -y install pptpd ppp iptables-services
systemctl enable pptpd iptables

主配置文件修改 (/etc/pptpd.conf)

option /etc/ppp/options.pptpd
logwtmp
localip 192.168.100.1          # 服务器虚拟接口IP
remoteip 192.168.100.2-200      # 分配给客户端的IP池

PPP认证配置 (/etc/ppp/options.pptpd)

name pptpd                     
refuse-pap                      
refuse-chap
require-mschap-v2               # 强制MSCHAPv2加密
require-mppe-128                # 启用128位MPPE加密
ms-dns 8.8.8.8                  # 指定客户端DNS
ms-dns 114.114.114.114
proxyarp                        # 启用ARP代理
nodefaultroute
lock
nobsdcomp

添加VPN账户 (/etc/ppp/chap-secrets)

# 格式:用户名 * 密码 *
vpnuser1 * MySecurePass123 *
vpnuser2 * AnotherStrongPwd! *

内核转发与防火墙规则

# 开启IPv4转发
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p
# 配置NAT转发与端口开放
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A INPUT -p gre -j ACCEPT
iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
service iptables save

启动服务与验证

systemctl start pptpd
netstat -tulnp | grep 1723      # 确认端口监听

配置网关路由策略(关键步骤)

阻止客户端默认路由覆盖

修改 /etc/ppp/ip-up 文件,在末尾添加:

在CentOS系统上搭建PPTP VPN及配置网关教程-图2
#!/bin/bash
# 禁止添加默认路由,防止客户端断网
if [ "$PPP_REMOTE" == "192.168.100.1" ]; then
    ip route del default dev $PPP_IFACE
fi

设置策略路由(基于源IP)

# 创建自定义路由表
echo "200 vpntable" >> /etc/iproute2/rt_tables
# 添加路由规则
ip rule add from 192.168.100.0/24 lookup vpntable
ip route add default via 您的物理网关 dev eth0 table vpntable
# 持久化配置(编辑/etc/rc.local)
echo "ip rule add from 192.168.100.0/24 lookup vpntable" >> /etc/rc.local

连接测试与故障排查

  • 客户端连接: Windows:网络设置 > VPN > 输入服务器IP与账户 Linux:pptpsetup --create myvpn --server xx.xx.xx.xx --username user --password pass --encrypt

  • 关键验证命令

    ip addr show pptp0          # 查看PPTP接口状态
    tail -f /var/log/messages   # 实时追踪系统日志
    tcpdump -i eth0 port 1723   # 抓取控制流量
  • 常见问题

    • 连接超时 → 检查防火墙1723/TCP和GRE协议(47)
    • 认证失败 → 确认chap-secrets文件权限(600)及格式
    • 无法上网 → 验证net.ipv4.ip_forward=1及iptables NAT规则

安全建议 PPTP协议已知存在MSCHAPv2漏洞风险,仅建议在低安全需求或隔离环境使用。如处理敏感数据,强烈建议迁移至IPsec/L2TP或WireGuard方案。 定期审计服务器日志与账户权限是基础运维要求。

注:本文配置已在CentOS 7.9及AlmaLinux 8.8实测通过,适用于需严格管控流量的边缘网络场景,技术决策应始终优先考虑长期维护成本与威胁模型。

在CentOS系统上搭建PPTP VPN及配置网关教程-图3

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/37320.html

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
请登录后评论...
游客游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~