我正在设置我的服务器,我必须为除了我和主机列表(aaa.bbb.ccc.ddd)之外的所有人禁用ping请求。
我在ubuntu服务器上使用ufw工具,我读到我必须对这些行进行评论:
-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,
然而,通过这样做它将禁止每个人ping,这是一个问题,因为我需要“aaa.bbb.ccc.ddd”来响应ping请求。
你能帮我写出正确的命令吗?
提前多多谢谢你。
答案 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