在 Linux iptables 中,链式规则是一种组织和管理防火墙规则的方式
链(Chain):链是一系列规则的集合,用于处理特定类型的数据包。iptables 有三个内置链:INPUT(处理输入数据包)、OUTPUT(处理输出数据包)和 FORWARD(处理转发数据包)。用户也可以创建自定义链。
规则(Rule):规则是基于特定条件对数据包执行操作的指令。规则包含匹配条件和目标(接受、丢弃或转发数据包)。
匹配条件(Match condition):匹配条件用于确定数据包是否满足规则的要求。例如,源 IP 地址、目的 IP 地址、协议类型等都可以作为匹配条件。
目标(Target):目标定义了满足匹配条件的数据包应该如何处理。iptables 有四个内置目标:ACCEPT(接受数据包)、DROP(丢弃数据包)、QUEUE(将数据包放入队列)和 RETURN(返回到上一个链)。用户也可以创建自定义目标。
链式规则的理解可以通过以下示例来说明:
假设我们有一个防火墙规则,允许来自特定 IP 地址的 SSH 连接,同时拒绝所有其他 SSH 连接。我们可以使用以下两个规则实现这个目标:
# 允许来自 192.168.1.100 的 SSH 连接
INPUT -s 192.168.1.100 -p tcp --dport 22 -j ACCEPT
# 拒绝所有其他 SSH 连接
INPUT -p tcp --dport 22 -j DROP
在这个例子中,我们使用了两个规则,分别属于 INPUT 链。第一个规则允许来自 IP 地址为 192.168.1.100 的 SSH 连接,第二个规则拒绝所有其他 SSH 连接。通过将这两个规则放在 INPUT 链中,我们可以实现所需的防火墙策略。
辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
推荐阅读: linux中lvextend的用法是什么