上一篇 下一篇 分享链接 返回 返回顶部

如何禁止Ubuntu服务器中的PING请求?

发布人:Minchunlin 发布时间:2021-02-10 11:01 阅读量:2884

为了测试网络质量,会使用PING设施,而黑客们也经常使用它来欺骗主机和目标服务器,进行泛滥攻击。用户有时会觉得有必要阻止不需要的服务器请求,以保证系统的安全,保护服务器不受任何形式的攻击。在本文中,我们将看到如何阻止PING请求。本教程也将指导用户如何解封PING请求。

Packet Internet Groper (PING)

PING是用来检查任何源头和目的地之间的连接状态。用户可以知道数据包收到响应所需的时间。在本文中,我们将通过Ubuntu或Debian,或Linux Mint 20系统中需要的iptables命令来与服务器进行通信,以阻止和解除它们。

先决条件

Ubuntu 20.04 或 Linux Mint 20 或 Debian 10。且具有sudo权限的用户。

本教程中使用的命令是在Ubuntu系统上测试的。第一步是安装iptables,为此我们将使用系统的终端窗口。使用Ctl+Alt+T快捷键打开终端。

在Ubuntu中阻止/解除阻止PING请求

ICMP是用于发送PING请求的协议。该数据包将请求Echo到目的系统,然后作为响应得到Echo回复。PING命令具有连续发送ICMP数据包的能力。这种数据包发送机制会一直持续下去,除非用户按键盘上的Ctl+C快捷键来停止它。

要阻止PING请求,用户需要阻止ICMP请求。我们将讨论到阻止和解除阻止这些回波请求的方法。这些方法是

通过内核参数

通过iptables

如何通过内核参数来禁止/解除禁止PING请求

要暂时或永久地禁止PING请求,可以使用内核方法。内核的参数可以通过sysctl命令进行编辑和修改。

暂时阻止/取消阻止请求

屏蔽PING请求的第一种方法是临时屏蔽,它是通过使用sysctl命令来实现的。这个命令在基于Linux平台的系统中用于修改或读写/proc/sys目录下的内核参数。

屏蔽PING请求的方法

屏蔽PING请求,在终端机中使用以下命令。

$ sudo sysctl -w net.ipv4.icmp_echo_ignore_all=1

这里net.ipv4.icmp_echo_ignore_all是控制系统对传入的ICMP请求进行响应的参数。0表示是,1表示不响应请求。这里,1意味着所有的请求都会被忽略或拒绝。

当发送PING请求时,不会收到响应的数据包。

解除PING请求的阻塞

现在,我们希望解除对PING请求的阻止,在终端窗口中输入以下命令。

$ sudo sysctl -w net.ipv4.icmp_echo_ignore_all=0

用户也可以在echo命令中使用内核参数值,并在/proc/sys目录下改变它。用户需要注意的是,他们需要拥有sudo用户权限。现在,使用切换到root账户。

$ sudo -s

在终端机上输入这个命令。

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

如果要解除阻塞,请使用。

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

这是暂时屏蔽和解除屏蔽PING请求的方法。

永久屏蔽/解锁请求

要修改内核的参数,我们可以使用/etc/sysctl.conf文件。要阻止请求,我们需要编辑这个文件。

阻止PING请求

要阻止该请求,我们需要编辑/etc/sysctl.conf文件。

$ sudo nano /etc/sysctl.conf

编辑器窗口将打开,在此文件中输入一行。

net.ipv4.icmp_echo_ignore_all = 1

现在,保存并关闭该文件。要在不重启的情况下反映变化,请执行以下命令。

$ sysctl -p

解除PING请求的阻塞

为此,请使用以下方法编辑/etc/sysctl.conf文件。

$ sudo nano /etc/sysctl.conf

这次,我们需要将net.ipv4.icmp_echo_ignore_all的值更新为'0':

net.ipv4.icmp_echo_ignore_all = 0

现在,保存并关闭该文件。要在不重启的情况下反映变化,请执行以下命令。

$ sysctl -p

他的方式,用户可以永久地阻止和解封PING请求。

如何使用iptables来禁止/解除禁止PING请求?

Iptables工具是通过命令行来启用或禁用流量。它的工作原理是基于规则,即策略链。Iptables工作在数据包明智的网络,其中的流量是监测每一个数据包的分别。他们的工作在查找规则,他们匹配每个数据包的列表,以映射它与每个规则。如果规则不匹配,那么连接将无法建立。iptables的包过滤器是用C语言编程的,到现在为止有新的版本和版本出现,可以用以下方式下载:https://git.netfilter.org/iptables/。

屏蔽/解除屏蔽iptables的PING功能

步骤1:安装iptables

要安装iptables,在终端窗口中键入以下命令。

$ sudo apt-get install iptables

步骤2:确认安装iptables。

现在,我们需要确认iptables的安装。在你的终端窗口中输入下面提到的命令。

$ iptables --version

只要你按下回车键,你就会在输出中看到一个类似于这个版本。

现在,我们将看到禁用和启用ping命令的方法。

用iptables禁止PING

Iptables是一款基于规则的网络过滤引擎。用户可以添加这些规则来阻止来自服务器的ping。我们将讨论一组例子来添加这组规则来阻止PING。

举例说明。

规则1:

要拒绝或阻止请求,使用以下命令。下面命令中的-A意味着添加规则。当运行下面的ping命令时,你会看到一个错误信息。

$ sudo iptables -A INPUT -p icmp --icmp-type echo-request -j REJECT

当你ping任何一个IP地址时,你会看到是通的。

规则2.在输入端屏蔽PING。

你也可以使用下面的规则来阻止PING在输入的最后。这样就不会显示错误信息。

$ sudo iptables -A INPUT -p icmp --icmp-type echo-request -j DROP

规则3.在输出端放弃或屏蔽PING请求

如果要放弃或阻止输出端的PING请求,也可以使用以下命令。

$ sudo iptables -A OUTPUT -p icmp --icmp-type echo-reply -j DROP

从iptables中解锁PING

现在,我们将讨论从iptables启用PING命令的方法。

列出可用的规则

你可以使用下面的命令来检查所有已经添加到iptables中的规则。

sudo iptales -L

输出将是这样的:

移除一组封锁者规则

用户可以删除对PING起阻断作用的一组规则,可以删除它。如上例所示,这里ICMP被拒绝。因此,我们将通过以下方式删除它。

$ sudo iptables -D INPUT -p icmp --icmp-type echo-request -j REJECT

用户可以轻松删除所有不需要的规则。他们可以简单地使用-D命令来删除任何规则。

删除自定义规则

要删除添加到iptables中的自定义规则,在终端窗口中键入以下命令来删除任何不需要的规则。

$ sudo iptables -F

这样用户就可以从iptables中添加和解禁PING。

在本文中,我们通过在Linux Mint 20系统中使用内核参数和iptables来禁用和启用PING的方法。内核参数允许用户永久或临时保存设置。我们讨论了iptables的安装,然后通过适当的例子介绍了禁用PING的方法。然后我们看到了从iptables中解禁PING的方法。

目录结构
全文