![如何在Linux中始终禁用Ping(TCP)?](https://linux22.com/image/144776/%E5%A6%82%E4%BD%95%E5%9C%A8Linux%E4%B8%AD%E5%A7%8B%E7%BB%88%E7%A6%81%E7%94%A8Ping%EF%BC%88TCP%EF%BC%89%EF%BC%9F%20.png)
我想一直禁用 ping 响应。我使用以下命令禁用 ICMP ping
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
我应该怎么做才能禁用 TCP ping?
答案1
TCP“ping”只是某些程序/方法的一个奇特名称,它(ab)使用 TCP 协议来探测侦听该 TCP 服务号的端口是否打开。
因此,如果为整个互联网提供服务,例如 Web/HTTP 服务,则无法阻止特定的 TCP 端口应答(如果它正在侦听),否则会破坏 TCP 的内部工作原理/IP协议。
对于受限/您的团队使用的服务,您可以进行端口碰撞来隐藏它。看在来自任何源 IP 的端口碰撞后允许 SSH 访问举个例子。
但是,如果没有机器扫描,您可以做什么全部您的 TCP/IP 端口成功关闭/打开状态,正在创建仅允许的规则传入所需服务的连接,并删除与所有其他 TCP 端口的连接。
重要的是数据包是 DROP(ed) 而不是 REJECT(ed)。看在 iptables 中设置 -j REJECT 还是 -j DROP 更好?
至于忽略/删除服务器本身的 ICMP ping 请求,在内核级别执行此操作更有意义,请参阅如何在 Linux 中始终禁用 Ping 响应(ICMP echo)?
有关 TCP 协议的更多详细信息,我建议参考 Stevens 等人的参考书“TCP/IP Illusterated, the Protocols”第 2 版。https://en.wikipedia.org/wiki/TCP/IP_Illusterated
PS 不用说,最好的安全性首先就是不向互联网开放服务。
正确实施 DMZ - 前端/后端基础设施,并正确规划网络基础设施大有帮助。包括防火墙等安全功能以及强制使用 VPN 进行远程访问。