如何在 Ubuntu Server 20.04 LTS 上阻止或取消阻止 ping 请求

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 请求。 希望这可以帮助!