(简单防火墙) 命令行应用程序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