PPTP 是什么
PPTP 是九十年代的远程接入 VPN 方案:控制信道走 TCP 1723,数据由 GRE(IP 协议号 47)承载。它部署极简单,Windows 内置客户端,因此在很长时间里是默认选择。问题出在认证:MS-CHAPv2 的握手材料可被截获后离线爆破,口令强度并不能改变结局,微软官方也已不建议使用。
基本信息
| 服务 | PPTP(Point-to-Point Tunneling Protocol) |
|---|---|
| 协议 | TCP 1723(控制);GRE,IP 协议号 47(数据) |
| 典型实现 | Windows RAS、Linux pptpd/poptop |
| 现状 | 已淘汰,不建议新部署 |
| 替代方案 | IKEv2、WireGuard、OpenVPN |
典型使用场景
- 遗留系统盘点:确认是否仍有服务器监听 1723 与加载 pptp 模块
- 淘汰迁移:把旧客户端与账号迁到 IKEv2 或 WireGuard 后回收配置
- 安全审计:检测网络中是否存在 GRE 流量与 PPTP 协商报文
- 排障:旧链路在多层 NAT 下不通时,确认 GRE 是否被中间设备丢弃
- 合规检查:确认没有把 PPTP 当作合规加密通道申报
确认是否仍有 PPTP 服务
确认是否仍有 PPTP 服务
ss -lntp | grep 1723
lsmod | grep pptp
sudo tcpdump -ni eth0 'tcp port 1723 or proto gre' -c 20
# Linux 侧遗留服务
# systemctl status pptpd资产排查:谁还在用 PPTP
资产排查:谁还在用 PPTP
Get-VpnConnection | Select-Object Name,ServerAddress,TunnelType
netstat -ano | findstr :1723
Get-WindowsOptionalFeature -Online -FeatureName *RAS* | Select-Object FeatureName,StatePPTP 的问题
| 维度 | 问题 | 后果 |
|---|---|---|
| 认证 | MS-CHAPv2 握手材料可离线爆破 | 口令强度决定不了安全性 |
| 加密 | MPPE 强度与现代标准差距明显 | 隧道内容近似明文保护 |
| 可达性 | GRE 协议号 47 常被丢弃 | 多层 NAT 与部分运营商网络不可用 |
| 维护 | 现代系统逐步移除相关组件 | 排障缺少文档与工具支持 |
迁移路径对照
迁移路径对照
IKEv2:系统原生支持,证书或预共享密钥,移动场景友好
WireGuard:配置轻量,UDP 端口自选,适合站点互联
OpenVPN:生态成熟,可用 TCP 443 兜底
改造点:更新客户端配置与防火墙策略、回收旧账号、保留回退窗口微软官方已不建议使用 PPTP:MS-CHAPv2 可被破解,隧道内容在攻击者获得握手材料后等同明文,继续使用等于把远程接入的凭据长期挂在公开网络上。
淘汰动作清单:停用并卸载相关服务、防火墙删除 1723 与 GRE 放行、组策略移除 PPTP 连接项、确认没有设备把它作为回退路径后再清理配置。