如何在 Linux 中始终禁用 Ping 响应(ICMP echo)?

如何在 Linux 中始终禁用 Ping 响应(ICMP echo)?

我想在我的 Ubuntu 操作系统上始终禁用 ping 响应,以下命令有效,但仅在系统重新启动之前有效:

关闭:

echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all

平:

echo "0" > /proc/sys/net/ipv4/icmp_echo_ignore_all

即使重新启动笔记本电脑后,如何才能关闭回声?

答案1

即使重新启动笔记本电脑,如何才能保持回声关闭?

您可以使用以下三种方式之一(以 root 身份):

编辑/etc/sysctl.conf

将以下行添加到您的/etc/sysctl.conf

net.ipv4.icmp_echo_ignore_all=1

然后:

sysctl -p

使用 iptables:

iptables -I INPUT -p icmp --icmp-type echo-request -j DROP

与计划任务

以 root身份运行crontab -e,然后添加以下行:

@reboot echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all

启动并启用服务:

systemctl start cron.service
systemctl enable cron.service

答案2

请注意,如果您正在使用 UFW 并尝试应用net.ipv4.icmp_echo_ignore_all中的设置/etc/sysctl.conf,您可能会发现这在重新启动后没有任何效果。在这种情况下,请查找相同的设置/etc/ufw/sysctl.conf并在那里进行更改。

答案3

在附带 UFW 应用程序防火墙的基于 Debian 的 Linux 发行版中,您可以通过将以下规则添加到/etc/ufw/before.rules文件来阻止 ICMP 消息:

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

相关内容