如何在 Ubuntu 中使用 iptables 阻止/允许 ping
什么是 iptables?
Iptables 是一个命令行防火墙程序,它根据所使用的策略链允许或阻止流量。 Iptables 采用基于数据包的方法来监控流量。当程序尝试连接到您的系统时,iptables 从预定义列表中查找规则。如果未找到规则,它将回退到默认操作并阻止对新连接的访问。
数据包过滤器 iptables 最初由 Rust Seller 编写,是 Netfilter Core 团队的产品。它是用C语言编写的,于1998年首次发布。该公司不定期发布稳定版本,可以从以下存储库下载:
https://git.netfilter.org/iptables/
公司网站:www.netfilter.org
要了解有关 iptables 及其使用方法的更多信息,请参阅官方文档:
https://netfilter.org/documentation/
什么是平?
Ping 或 Packet Internet Groper 是一种网络管理实用程序,可让您通过 IP 网络检查源和目标计算机/设备之间的连接状态。它还可以帮助您估计发送和接收网络响应所需的时间。
在本文中,我们将解释可用于以下目的的 iptables 命令:
- 添加一条规则,告诉 iptables 防火墙通过控制 ICMP 请求来阻止对服务器的传入和传出 ping。
- 通过控制 ICMP 请求,删除告诉 iptables 防火墙允许进出服务器 ping 的规则。
我们已在 Ubuntu 22.04 LTS 系统上运行本文中提到的命令和过程。
如何阻止/允许来自 iptables 的 ping?
您可以通过 Linux 命令行在终端中运行以下命令来安装 iptables:
sudo apt-get install iptables
您可以通过系统应用程序启动器搜索或使用 Ctrl+Alt+T 快捷方式打开终端应用程序。
为了验证安装并检查版本号,可以使用以下命令:
iptables --version
块平
如上所述,iptables 防火墙基于一些规则集。您可以添加以下规则以阻止进出服务器的 ping。当您运行 ping 命令时,该命令将打印一条错误消息:
sudo iptables -A INPUT -p icmp --icmp-type echo-request -j REJECT
例子 :
或者,您可以添加以下规则来阻止 ping 而不打印错误消息:
sudo iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
sudo iptables -A OUTPUT -p icmp --icmp-type echo-reply -j DROP
iptables 命令的 -A 命令选项代表“添加”,因此任何要添加的规则都以“sudo iptables -A ....”开头。
允许 Ping
以下命令可让您列出添加到 iptables 的所有规则:
sudo iptables -L
如果任何规则阻止 ping(在我们的例子中 ICMP 被拒绝),您可以简单地删除该规则,如下所示:
sudo iptables -D INPUT -p icmp --icmp-type echo-request -j REJECT
-D 命令开关用于删除规则。
您可以使用以下命令删除添加到 iptables 防火墙的所有自定义规则:
sudo iptables -F
您已经了解了如何在 iptables 实用程序中添加和删除规则来控制防火墙的工作方式。