UFW:仅允许特定主机的ping请求

时间:2013-05-04 15:47:35

标签: ubuntu firewall ping

我正在设置我的服务器,我必须为除了我和主机列表(aaa.bbb.ccc.ddd)之外的所有人禁用ping请求。

我在ubuntu服务器上使用ufw工具,我读到我必须对这些行进行评论:

ok icmp codes

-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-r​​equest -j ACCEPT,

然而,通过这样做它将禁止每个人ping,这是一个问题,因为我需要“aaa.bbb.ccc.ddd”来响应ping请求。

你能帮我写出正确的命令吗?

提前多多谢谢你。

1 个答案:

答案 0 :(得分:1)

我偶然发现了这个4个月大的问题。它确实应该列在不同的StackExchange(例如ServerFault)上,但有时甚至开发人员也需要配置防火墙。事实上,我在这里为你找到答案。

对于防火墙规则,您需要先接受来自安全IP的数据包,然后再删除其他数据包。我是这样做的:

假设您只想接受ping的一个安全IP,并且IP地址为“127.0.0.1”。当然,这个IP可以是您想要的任何地址(只需创建更多规则或为其他地址定义子网)。

第1步

首先要检查/etc/ufw/sysctl.conf中的以下内容

net/ipv4/icmp_echo_ignore_all=1

...应该用0重写,如果它还没有......

net/ipv4/icmp_echo_ignore_all=0

第2步

将IPv4规则添加到/etc/ufw/before.rules

-A ufw-before-input -p icmp --icmp-type echo-request –s 127.0.0.1 -m state --state ESTABLISHED -j ACCEPT

第3步(支持IPv6)

将IPv6规则添加到/etc/ufw/before6.rules

-A ufw6-before-input -p icmpv6 --icmpv6-type echo-request –s 127.0.0.1 -m state --state ESTABLISHED -j ACCEPT

第4步

现在,重启防火墙,喝一杯你想要的饮料。

service ufw restart