iptables 精讲:如何阻止特定 IP 或 IP 范围访问你的 Linux 服务器

在网络安全管理中,有时候我们需要禁止某个或某些特定IP地址访问我们的服务器。可能是由于这些IP地址被识别为恶意来源,或者出于其它安全和管理的原因。无论原因是什么,iptables 提供了一种简单有效的方法来实现这一目标。本文将指导你如何使用 iptables 阻止一个或多个特定的 IP 或整个 IP 范围访问你的 Linux 服务器。

1. 了解 iptables

在开始之前,重要的是要了解 iptables 是什么。简单来说,iptables 是 Linux 核心提供的一个功能强大的防火墙工具,它允许系统管理员基于规则可控地管理入站和出站的网络流量。

2. 阻止特定 IP

要阻止单个 IP 地址,你可以使用下面的命令。这里以禁止 IP 地址为 “192.168.1.100” 为例:

sudo iptables -A INPUT -s 192.168.1.100 -j DROP

在这个命令中,-A INPUT 告诉 iptables 将这条规则添加到输入链。-s 指的是源地址,后面跟着你想要阻止的 IP 地址。-j DROP 则说明对于匹配到这个规则的包,iptables 将会丢弃它,从而阻止数据包达到你的服务器。

3. 阻止一个 IP 范围

如果你需要阻止一个更大范围的IP地址,你可以使用子网掩码来实现。假设你想要阻止整个 “192.168.1.0/24” 网络(即,192.168.1.0 到 192.168.1.255 的所有IP地址),你可以使用以下命令:

sudo iptables -A INPUT -s 192.168.1.0/24 -j DROP

这个命令的构造与阻止单个 IP 类似,不同的是在 -s 选项后面指定的是一个 IP 范围,而不是单个 IP 地址。

4. 检查你的规则

配置完 iptables 规则后,使用下面的命令查看现有的 iptables 规则列表,确保你的规则被正确添加:

sudo iptables -L

5. 保存你的规则

请注意,iptable 规则默认情况下不会在系统重启后保留。要使规则持久化,你需要将它们保存到一个配置文件中。这可以通过不同的方法实现,具体取决于你的Linux发行版。在 Debian 和 Ubuntu 上,你可以安装 iptables-persistent 包来自动保存和恢复规则。