it-swarm.cn

如何启用ufw防火墙以允许icmp响应?

我有一系列Ubuntu 10.04服务器,每个服务器都启用了ufw防火墙。我允许端口22(用于SSH)​​和80(如果它是网络服务器)。我的问题是我正在尝试启用icmp echo响应(ping回复)。

ICMP的功能与其他协议不同 - 我知道它在技术意义上低于IP级别。你只需输入Sudo ufw allow 22,但不能输入Sudo ufw allow icmp

21
Jeremy Hajek

ufw不允许通过命令行界面命令指定icmp规则。它允许您通过其规则文件调整规则集,这些文件是iptables-restore样式文件。

ufw默认允许某些icmp流量,包括icmp echo reply,这已经在/etc/ufw/before.rules中默认配置:

-A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT

如果您的主机没有响应ping,请查看此文件以确保上面的行存在,如果不起作用,请查看ping主机以及它们之间的所有防火墙。

17
jdstrand

对于Ubuntu 18.04,您应该在/ 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 source-quench           -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 source-quench           -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 ACCEPT
-A ufw-before-forward -p icmp --icmp-type echo-request            -j ACCEPT

这些都在我的默认文件中。

当然,请确保这确实是问题所在。我的问题是我的计算机阻止了ping到我试图ping的服务器所在的网络。我最终使用了一个已经在互联网上为我做ping的网站(例如 https://ping.eu/ping/ )。

2
hoadlck

这是一个帮助文档,讨论如何启用/禁用ping等响应。

FW帮助

0
Casey Keller

将以下内容添加到/etc/ufw/before.rules文件中:

# allow outbound icmp
-A ufw-before-output -p icmp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
-A ufw-before-output -p icmp -m state --state ESTABLISHED,RELATED -j ACCEPT

编辑文件后,运行命令:

Sudo ufw reload
0
user3801989