![使用 UFW(防火墙)拒绝传入的 ping(ICMP)请求?](https://linux22.com/image/1200441/%E4%BD%BF%E7%94%A8%20UFW%EF%BC%88%E9%98%B2%E7%81%AB%E5%A2%99%EF%BC%89%E6%8B%92%E7%BB%9D%E4%BC%A0%E5%85%A5%E7%9A%84%20ping%EF%BC%88ICMP%EF%BC%89%E8%AF%B7%E6%B1%82%EF%BC%9F.png)
(简单防火墙) 命令行应用程序ufw
没有任何选项可以禁用传入的 ICMP Internet 协议请求。ICMP 主要用于ping
发现 Internet 或 LAN 上的服务器的 IP 地址。为了安全起见,我想隐藏我的服务器以免受 ping 请求的影响。我应该如何在 Ubuntu 上做到这一点(最好使用内置防火墙)?
答案1
这些sed
命令将阻止所有 ICMP 请求(包括ping
):
sudo sed -i -E 's/^\s*-A\ ufw-before-input\ -p\ icmp\ --icmp-type.*ACCEPT\s*/#\ \0/g' /etc/ufw/before.rules
sudo sed -i -E 's/^\s*-A\ ufw-before-forward\ -p\ icmp\ --icmp-type.*ACCEPT\s*/#\ \0/g' /etc/ufw/before.rules
解释
默认情况下ufw
阻止所有 ICMP 请求除了 ping
因此,您需要ACCEPT
在以下位置禁用这些 ping 例外/etc/ufw/before.rules
:
# ok icmp codes for INPUT
-A ufw-before-input -p icmp --icmp-type destination-unreachable -j ACCEPT
-A ufw-before-input -p icmp --icmp-type time-exceeded -j ACCEPT
-A ufw-before-input -p icmp --icmp-type parameter-problem -j ACCEPT
-A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT
# ok icmp code for FORWARD
-A ufw-before-forward -p icmp --icmp-type destination-unreachable -j ACCEPT
-A ufw-before-forward -p icmp --icmp-type time-exceeded -j ACCEPT
-A ufw-before-forward -p icmp --icmp-type parameter-problem -j AfCCEPT
-A ufw-before-forward -p icmp --icmp-type echo-request -j ACCEPT