Ping 是一种网络管理实用程序,用于测试 IP 网络上系统的可用性。 Ping 还用于通过监控往返时间和数据包丢失来测试网络连接的质量。 另一方面,网络入侵者和黑客也使用 ping 来识别网络子网以寻找潜在的主机或执行 ICMP 泛洪攻击。 因此,最好阻止对服务器的 ping 请求以防止任何类型的攻击。
本文是关于如何阻止对 Linux 服务器的 ping 请求。 如果您需要使用 ping 进行系统管理和故障排除,我们还将介绍如何取消阻止 ping 请求。
先决条件
- Ubuntu 20.04 LTS
- 用户 sudo 特权
笔记: 此处讨论的命令已在 Ubuntu 20.04 LTS 上进行了测试。
阻止/取消阻止对 Linux 服务器的 ping 请求
Ping 的工作原理是向目标系统发送一个 ICMP 数据包(Echo 请求),然后接收一个响应 ICMP 数据包(Echo 回复)。 在 Linux 中,ping 命令会继续发送 ICMP 数据包,直到您使用 Ctrl+C 停止它。
为了阻止 ping 请求,您需要忽略/阻止发送到您的服务器的 ICMP 回显请求。 您可以通过以下两种方式阻止/取消阻止对 Linux 服务器的 ICMP 回显请求。
- 通过内核参数
- 通过 iptables
让我们开始吧。
通过内核参数阻止/取消阻止 ping 请求
通过内核参数,您可以暂时或永久地阻止 ping 请求。 内核参数可以通过 系统控制 命令, /sys/proc 目录,和 /etc/sysctl.conf 文件。
临时阻止/取消阻止 ping 请求
Linux 中的 sysctl 命令用于读取和写入内核参数 /proc/sys 目录。 使用此命令,我们可以设置内核参数来阻止/取消阻止 ping 请求。 内核参数 net.ipv4.icmp_echo_ignore_all 控制系统是否应响应 ICMP 回显请求。 它的默认值为’0′ 这意味着响应 ICMP 请求。
阻止 Ping 请求
为了阻止 ping 请求,请在终端中发出以下命令:
$ sudo 系统控制 -w net.ipv4.icmp_echo_ignore_all=1
此命令将内核参数设置为“1”,这意味着忽略所有 ICMP 请求。
现在,对您系统的所有 ping 请求都将被阻止,发件人将不会收到任何响应,如下面的屏幕截图所示。
取消阻止 Ping 请求
要取消阻止 ping 请求,请通过将参数值更改为默认值“0”再次运行相同的命令。
$ sudo 系统控制 -w net.ipv4.icmp_echo_ignore_all=0
或者,您可以通过更改内核参数值来阻止 ping 请求 /proc/sys 使用 echo 命令的目录。 但是,要使用此方法,您需要以 root 身份运行该命令。
为了阻止 ping 请求,首先在终端中使用以下命令切换到 root 帐户:
$ 苏 根
当提示输入密码时,输入 root 的密码。
然后在终端中发出以下命令:
$ 回声 1 > /过程/系统/网/IPv4/icmp_echo_ignore_all
要取消阻止 ping 请求,命令将是:
$ 回声 0 > /过程/系统/网/IPv4/icmp_echo_ignore_all
永久阻止 ping 请求
内核参数也可以通过 /etc/sysctl.conf 文件。 此文件将允许您永久阻止对服务器的 ping 请求。
阻止 Ping 请求
为了阻止对系统的 ping 请求,请编辑 /etc/sysctl.conf 文件:
$ sudo 纳米 /ETC/sysctl.conf
然后在文件中附加以下行:
net.ipv4.icmp_echo_ignore_all = 1
Save 和 close 文件。
然后在终端中发出以下命令以应用此配置而无需重新启动:
$ 系统控制 -p
取消阻止 Ping 请求
要取消阻止 ping 请求,请编辑 /etc/sysctl.conf 文件:
$ sudo 纳米 /ETC/sysctl.conf
然后修改值 net.ipv4.icmp_echo_ignore_all 至 ‘0′:
net.ipv4.icmp_echo_ignore_all = 0
Save 和 close 文件。
然后在终端中发出以下命令以应用此配置而无需重新启动:
$ 系统控制 -p
使用 iptables 阻止/取消阻止 ping 请求
iptables 是 Linux 中的防火墙实用程序,可根据某些规则控制传入和传出流量。 它预装在 Ubuntu 系统中。 如果系统中缺少它,您可以在终端中使用以下命令安装它:
$ sudo 易于 安装 iptables 阻止 Ping 请求
要阻止对系统的 ping 请求,请在终端中键入以下命令:
$ sudo iptables -一个 输入 -p icmp –icmp 类型 8 -j 拒绝
在哪里 一个 flag 用于在 iptables 中添加规则和 icmp 类型 8 是用于回显请求的 ICMP 类型号.
上述命令将在防火墙中添加一条规则,该规则将阻止任何传入系统的 ping 请求。 通过添加此规则,任何向您的系统发送 ping 请求的人都会看到“目的端口不可达”消息,如下面的屏幕截图所示。
如果您不希望出现此消息,请使用以下命令替换 拒绝 和 降低:
$ sudo iptables -一个 输入 -p icmp –icmp 类型 8 -j 降低
现在任何向您的系统发送 ping 请求的人都会看到以下类似的输出:
取消阻止 Ping 请求
为了解除阻止对服务器的 ping 请求,请在终端中键入以下命令:
$ sudo iptables -D 输入 -p icmp –icmp 类型 8 -j 拒绝
在哪里 D flag 用于删除 iptables 中的规则和 icmp 类型 8 是用于回显请求的 ICMP 类型号.
为了使这些规则在系统重新启动后保持不变,您需要 iptables 持久化 包裹。 在终端中发出以下命令以安装 iptables-persistent:
$ sudo 易于 安装 iptables 持久化
系统将要求您确认是否要继续安装。 打 是的 继续,之后系统将开始安装,一旦完成,就可以使用了。
添加或删除任何规则后,在终端中发出以下命令以使其在系统重新启动后仍然存在。
$ sudo netfilter-持久保存
$ sudo netfilter-持久重新加载
要查看添加到 iptables 的所有规则,请在终端中发出以下命令:
$ sudo iptables -L
这就是它的全部! 在本文中,我们讨论了如何通过内核参数或通过 iptables 实用程序阻止/取消阻止对 Linux 服务器的 ping 请求。 希望这可以帮助!