1.
概述与风险提示
1) PPTP 是较老的 VPN 协议,使用 MPPE 与 MS-CHAPv2 进行加密与认证。
2) 在现代安全评估中,PPTP 被认为弱于 IPsec、OpenVPN 与 WireGuard,易受中间人攻击与密码破解。
3) 若必须在香港 VPS 上启用 PPTP,应理解其固有风险并采取额外加固措施。
4) 合规与隐私方面,香港对网络服务有具体法规,部署前请确认业务与日志策略。
5) 推荐场景:对兼容性要求高且流量安全不是最高优先级的内部测试或过渡方案。
2.
在香港VPS上部署PPTP的基础配置
1) 环境示例:Ubuntu 20.04,VPS 规格 2 vCPU / 4 GB RAM / 80 GB SSD / 500 Mbps 带宽。
2) 安装与模块:apt update && apt install -y pptpd ppp;确保内核模块 gre 与 ppp_generic 已加载。
3) pptpd.conf 示例条目:localip 10.0.0.1 remoteip 10.0.0.100-10.0.0.199;请用私有网段并限制池大小。
4) /etc/ppp/chap-secrets 示例:vpnuser pptpd "StrongP@ssw0rd!" *;每个用户独立条目,禁止通配符共享。
5) 启用转发与 NAT:sysctl -w net.ipv4.ip_forward=1;iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o eth0 -j MASQUERADE。
3.
加密方式与认证选择分析
1) PPTP 常用加密为 MPPE,通常为 40-bit、56-bit 或 128-bit;128-bit MPPE 为常见选择,但依赖 MS-CHAPv2 的密钥交换。
2) MS-CHAPv2 认证存在已知弱点,可被暴力或离线破解;建议外层增加 TLS 隧道或仅用于低安全场景。
3) 如果需要更高安全性,请优先选择 L2TP/IPsec (AES-128/256)、OpenVPN (AES-256) 或 WireGuard (ChaCha20)。
4) 加密比较表(用于直观选择):
| 方案 | 主要加密 | 认证 | 安全等级 | 备注 |
| PPTP+MPPE | RC4/MPPE 128 | MS-CHAPv2 | 中低 | 兼容性好,但易受攻击 |
| L2TP/IPsec | AES-128/256 | IPsec PSK 或证书 | 高 | 比 PPTP 安全,性能中等 |
| OpenVPN | AES-256-GCM | TLS 证书 | 很高 | 灵活但配置复杂 |
| WireGuard | ChaCha20-Poly1305 | 公钥对 | 很高 | 性能好,简洁 |
5) 结论:若必须用 PPTP,至少启用 MPPE-128 并限制使用时长与访问权限。
4.
安全加固措施(针对PPTP特性)
1) 禁用 MS-CHAPv1,仅允许 MS-CHAPv2,并强制复杂密码与最小长度 12 字符。
2) 使用 iptables 限制来自单 IP 的连接数:iptables -A INPUT -p tcp --dport 1723 -m connlimit --connlimit-above 5 -j DROP。
3) 对 GRE(协议 47)流量做白名单,仅允许必要源 IP 段连接;若无外部固定客户端则考虑禁止。
4) 开启 fail2ban 针对 /var/log/auth.log 中的失败认证记录,规则示例:maxretry 3, bantime 3600。
5) 最小化服务暴露:如非必要,关闭 PPTP 控制端口的公网访问,通过跳板机或内网访问管理接口。
5.
针对DDoS与流量异常的防护建议
1) PPTP 使用 TCP/1723 与 GRE,很多 CDN 无法代理 GRE,故 CDN 仅能保护 Web 服务,不能直接为 PPTP 提供透明防护。
2) 建议选择支持 GRE 保护的高防 IP 或上游抗 DDoS 服务;或者使用 BGP 黑洞与流量清洗服务。
3) 在 VPS 端启用连接速率限制与 SYN cookie:sysctl -w net.ipv4.tcp_syncookies=1;iptables -A INPUT -p tcp --syn -m limit --limit 10/s -j ACCEPT。
4) 使用 conntrack 与 connlimit 限制每个源 IP 的并发连接,例如 10 个为阈值以防滥用。
5) 监控指标示例:当 1 分钟内新连接数 > 5000 或 pps > 100k 时触发上游清洗。
6.
真实案例与服务器配置举例
1) 案例背景:某企业香港 VPS(规格:2 vCPU / 4 GB / 80 GB SSD / 500 Mbps,Ubuntu 20.04),用于分支连回。
2) 初始配置:pptpd 1.4.0,localip 10.8.0.1 remoteip 10.8.0.100-10.8.0.150;chap-secrets 中有 12 个用户。
3) 攻击事件:连续 2 小时内观测到 120kpps 的 UDP/ICMP 风暴并伴随针对 TCP/1723 的 20000 并发连接尝试,CPU 从 5% 上升到 95%。
4) 处置措施:暂时在上游开启流量清洗,启用 iptables 限制(connlimit 5),启用 fail2ban(bantime 86400),并将部分管理接口移到私有网络。
5) 结果数据:清洗与规则生效后,CPU 回落至 12%,合法 VPN 连接恢复 98%,每秒传入包从 120k 降至 3k。
7.
运维监控与合规建议
1) 常用监控:vnstat(流量),iftop(并发流量),netdata/Prometheus+Grafana(指标可视化)。
2) 日志与告警:收集 /var/log/auth.log 与 pptpd 日志,设置阈值告警(失败登录 > 10/小时)。
3) 备份策略:用户认证文件与 pptpd 配置每日增量备份,保留 30 天。示例 cron:0 3 * * * tar czf /backup/pptpd-$(date +\%F).tgz /etc/pptpd* /etc/ppp*。
4) 定期审计:每季度变更密码与证书,检查 open ports 与已安装软件版本。
5) 长期建议:评估迁移到更安全的方案(OpenVPN/WireGuard),并在迁移窗口内逐步下线 PPTP 服务。
来源:在香港vps搭建pptp时的安全加固与加密方式选择指南