如何使用 iptables 阻止 IP

作为一名网站管理员,您最终要与一个(或多个)滥用用户打交道。这或多或少是在线开展业务的不可避免的障碍。也许他们正在向您的评论部分发送垃圾邮件,向您的服务器发送请求,或者骚扰您的其他读者。无论哪种方式,您都希望在它们给您带来比他们已经有的更头痛之前让它们消失。

别担心。只要你了解 iptables 的工作原理——它实际上很容易做到。

我们将引导您完成如何阻止 IP 地址的过程,以及您将要使用的一些命令。

让我们开始吧。您的第一步是通过控制台或安全连接登录到您的 Web 服务器。确保您具有 root 访问权限——您将需要它。

如何阻止 IP 地址或 IP 范围
我们将从一些基本命令开始。

首先,这里是如何使用 iptables block ip 命令阻止特定 IP 地址访问您的服务器。将 [IP] 替换为您实际要阻止的 IP:

iptables -A INPUT -s [IP] -j DROP
同时,如果您希望阻止特定范围的 IP 地址;键入以下内容,将 [START] 和 [END] 替换为范围的端点(通过 Chron):

iptables -A INPUT -m iprange –src-range [START]-[END] -j DROP
您还可以阻止整个子网访问您的网站

iptables -i eth1 -A INPUT -s [子网地址] -j DROP
阻止特定接口上的连接
现在,假设您只想阻止通过特定接口的连接。在这种情况下,命令如下:

iptables -A INPUT -i [接口名称] -s [IP] -j DROP
您可以在接口名称的末尾添加一个 + 以阻止名称以您输入的字符开头的任何接口。

如何阻塞端口
如果要阻止特定端口上的连接,则将使用以下 iptables block port 命令:

iptables -A INPUT -s 65.55.44.100 -p tcp –destination-port 25 -j DROP
查看 IP 块
如果您想随时查看被阻止的 IP 地址列表,您可以使用

iptables -L -v 或 /sbin/iptables -L INPUT -v
删除 IP 块
查看该列表时,您可以使用 iptables open port 命令或 iptables allow port 命令删除特定条目。按顺序使用以下命令:

iptables -L INPUT -n –行号
iptables -D 输入 [LINE]
iptables -L 输入 -v -n
当然,如果您知道要删除哪个特定条目,则使用 iptables drop ip 命令可以使用以下语法:

iptables -D 输入 -s 1.2.3.4 -j DROP
假设您想要记录丢弃的地址信息,您还可以使用以下命令打开内核日志记录: iptables -i eth1 -A INPUT -s [IP/SUBNET] -j LOG –log-prefix “IP DROP SPOOF A:”

搜索被阻止的 IP
接下来,您可以使用以下命令搜索被阻止的 IP 地址:

iptables -L 输入 -v -n | grep [IP]
保存更改
最后,为了保存您在 CENTOS、RHEL 或 Fedora 上对 iptables 阻止列表所做的更改,您需要使用命令 service iptables save。

可用于阻止流量的其他命令
上面的命令构成了 iptables 中 IP 阻塞的基本框架,但它们并不十分全面。如果您真的想将自己与 IP 地址隔离开来,您需要了解一些额外的命令。它们如下:

-OUTPUT:阻止与服务器的 TCP 连接,并阻止传出流量。语法是 iptables -A OUTPUT -s [IP] -j DROP
-FORWARD:阻止所有转发流量。语法是 iptables -A FORWARD -s [IP] -j DROP
tcp:和输出一样,阻塞 TCP 连接。语法是 iptables -A INPUT -p tcp -s [IP] -j DROP
icmp:阻止端口探测。语法是 -A INPUT -p icmp -s [IP] -j DROP
构建你的 iptables 阻止列表
现在您已经掌握了 iptables 的基础知识,您可以按照以下命令创建自己的黑名单:

1. 首先,使用 flush 命令清除所有旧的默认规则和现有规则:

iptables -F
2. 接下来,使用以下命令集更改您的默认链策略:

iptables -P 输入删除
iptables -P FORWARD DROP
iptables -P 输出丢弃
3. 使用上一节中的命令设置您认为合适的 IP 阻止。

一些额外的资源
我们将用一些很棒的技巧、技巧和建议来结束今天的文章,这些技巧和建议是关于您可以使用 iptables 做的一些事情。首先,如果您正在寻找可以自动禁止滥用 IP 的脚本,Fail2Ban 是一个很好的选择。

接下来,我们的知识库包含许多其他教程,可帮助您使用 Linux 服务器。我们关于保护 linux 服务器的文章是一个很好的开始。