ping 可用于测试服务器的网络连接情况,也可以用于寻找对主机执行 ICMP 攻击的机会。因此,最好阻止对服务器的 ping 请求。
Ping 的工作原理是向目标IP发送一个 ICMP 数据包,然后接收一个响应 ICMP 数据包。
要在 Linux 系统上阻止 ping 命令,最简单方法是添加 iptables 规则,如下例所示。
# iptables -A INPUT --proto icmp -j DROP
# iptables -L -n -v [List Iptables Rules]
要在 Linux 系统中阻止 ICMP 消息,另一种通用方法是添加内核变量,该变量将丢弃所有 ping 数据包。
# echo “1” > /proc/sys/net/ipv4/icmp_echo_ignore_all
为了使上述规则永久化,将以下代码行添加到 /etc/sysctl.conf 文件,然后使用 sysctl 命令应用该规则。
# echo “net.ipv4.icmp_echo_ignore_all = 1” >> /etc/sysctl.conf
# sysctl -p
在启用了 UFW 防火墙的,基于 Debian 的 Linux 发行版中,可以通过将以下规则添加到 /etc/ufw/before.rules 文件来阻止 ICMP 消息。
-A ufw-before-input -p icmp --icmp-type echo-request -j DROP
然后,重新启动 UFW 防火墙以应用该规则。
# ufw disable && ufw enable
在使用 Firewalld 接口管理 iptables 规则的 CentOS 或 Red Hat Enterprise Linux 发行版中,添加以下规则以禁用 ping 。
# firewall-cmd --zone=public --remove-icmp-block={echo-request,echo-reply,timestamp-reply,timestamp-request} --permanent
# firewall-cmd --reload
为了测试防火墙规则是否有效,可尝试 ping 目标服务器的 IP 地址。如果 ICMP 消息被阻止,则会收到“请求超时”或“目标主机无法访问”之类的消息。
作者:牛奇网,本站文章均为辛苦原创,在此严正声明,本站内容严禁采集转载,面斥不雅请好自为之,本文网址:https://www.niuqi360.com/linux/how-to-block-ping-icmp-requests-to-linux-systems/