禁用所有不加密的明文通信协议,本质是切断攻击者最易利用的数据窃听路径,需从协议栈底层、应用层行为、系统默认策略三方面同步收敛,覆盖识别、分层禁用、强制加密替代及固化验证全流程。

禁用所有不加密的明文通信协议,本质是切断攻击者最易利用的数据窃听路径。这不是简单关掉几个服务,而是从协议栈底层、应用层行为、系统默认策略三方面同步收敛——重点不是“哪些能关”,而是“哪些残留会反弹”。
先识别:别假定已清理干净
很多系统看似没启用 Telnet/FTP/RSH,但二进制仍在、端口监听未封、内核模块未卸载,随时可能被触发:
- 运行 ss -tlnp | grep -E ':21|:23|:513|:514|:69' 查看是否真有进程监听 FTP(21)、Telnet(23)、RSH/RLOGIN(513/514)、TFTP(69)端口
- 检查 systemctl list-unit-files --state=enabled | grep -i 'vsftpd\|telnet\|xinetd\|openbsd-inetd',确认托管服务未设为开机自启
- 查内核模块:lsmod | grep -E 'ipx|appletalk|netrom',非必要协议模块应未加载
- Android 端特别注意:adb shell dumpsys package
| grep cleartext ,验证是否仍允许明文流量(即使 manifest 里写了 false,也可能被 network_security_config 覆盖)
分层禁用:协议、服务、端口一个都不能漏
只停服务或只删配置,容易回弹。必须在三个层面同时生效:
- 协议层:Windows 中通过设备管理器 → 网卡属性 → 取消勾选“TCP/IP 上的 NetBIOS”、“Microsoft 网络的文件和打印机共享”;Linux 中用 sysctl -w net.ipv4.conf.all.accept_redirects=0 并写入 /etc/sysctl.conf 防止 NDP 欺骗绕过
- 服务层:CentOS/RHEL 上执行 systemctl disable vsftpd telnet.socket xinetd;Debian/Ubuntu 上 apt purge ftpd-hpa openbsd-inetd rsh-redone-server,再手动 rm -f /usr/bin/{ftp,telnet,rsh,rlogin}
- 网络层:用 iptables 或 nftables 显式丢弃明文端口流量,例如:iptables -A INPUT -p tcp -m multiport --dports 21,23,513,514,69 -j DROP,并保存规则
强制加密替代:让明文协议根本无法落地
禁用只是防守,替换才是闭环。关键不是“禁止 HTTP”,而是让系统/应用默认走加密通道:
- SSH 替代 Telnet/RSH:配置 /etc/ssh/sshd_config 中 PermitRootLogin no、PasswordAuthentication no、Protocol 2,并确保客户端只用 ssh -o PreferredAuthentications=publickey
- HTTPS 强制跳转:Web 服务器(Nginx/Apache)配置 return 301 https://$host$request_uri,并在 HSTS 响应头中加 max-age=31536000; includeSubDomains
- Modbus/TCP 升级 TLS:若设备支持,启用 Modbus Secure(TLS 1.3),禁用纯 Modbus TCP 的 502 端口,改用 8023 或自定义加密端口
- 邮件协议升级:Postfix/Dovecot 配置中关闭 plain IMAP/POP3,仅监听 imaps (993) 和 pop3s (995),证书需由可信 CA 签发
固化与验证:防止策略漂移
重启、更新、新网卡接入都可能导致协议自动启用,必须固化策略并定期验证:
- Windows:用组策略编辑器启用 计算机配置 → 管理模板 → 网络 → 网络连接 → 禁用 NetBIOS,并设置 Windows 防火墙:阻止所有未明确允许的入站连接
- Linux:将禁用命令写入 /etc/rc.local 或 systemd 服务单元(如 disable-plaintext.service),配合 auditd 监控 /etc/xinetd.d/、/etc/vsftpd/ 等目录变更
- 验证手段:nc -zv target 23 应失败;curl -I http://target 应返回 301 跳转;Wireshark 抓包检查关键业务流量是否全为 TLSv1.3 或 SSHv2 加密载荷










