总结:
iptables 的关键概念和功能:
规则(Rules):
- iptables 使用规则来定义特定的操作,例如允许或拒绝特定类型的网络流量。每条规则都由条件和操作组成。条件可以是源 IP 地址、目标 IP 地址、端口号等,操作可以是允许、拒绝或修改数据包。
表(Tables):
- iptables 包含多个表,每个表用于处理特定类型的数据包。常用的表包括:- filter 表: 用于过滤数据包,实现基本的包过滤功能,如允许或拒绝特定端口的数据包。- nat 表: 用于网络地址转换(NAT),实现在不同网络之间进行数据包转发和地址转换。- mangle 表: 用于修改数据包的特定字段,如修改 TOS、TTL 等。- raw 表: 用于禁用连接跟踪机制,通常用于某些特殊场景下的数据包处理。
- 链(Chains): 每个表包含多个链,链是一系列规则的集合,用于处理数据包。常用的链包括:- INPUT 链: 处理进入系统的数据包。- OUTPUT 链: 处理离开系统的数据包。- FORWARD 链: 处理通过系统转发的数据包。- PREROUTING 链: 在路由之前处理数据包,适用于 NAT。- POSTROUTING 链: 在路由之后处理数据包,适用于 NAT。
- 匹配(Matching): 每个规则都包含一个或多个匹配条件,用于确定是否对数据包执行操作。匹配条件可以包括源 IP 地址、目标 IP 地址、协议、端口等。
- 动作(Actions): 规则匹配后,根据定义的操作来处理数据包。常见的动作包括 ACCEPT(允许通过)、DROP(丢弃数据包)和REJECT(拒绝数据包并发送拒绝消息)。
查看规则和状态:
查看当前的 iptables 规则和状态:
iptables -L
iptables -L -n # 显示数字格式的 IP 地址而不是域名
iptables -L -v # 显示详细信息
添加规则:
添加一条允许 SSH(端口 22)流量的规则:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
添加一条拒绝 ICMP 回应的规则:
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
删除规则:
删除某一条规则,可以使用
-D
参数加上规则编号(在列表中显示的编号):
iptables -D INPUT 2 # 删除 INPUT 链中的第二条规则
保存和加载规则:
保存当前的 iptables 规则到文件中:
iptables-save > /etc/iptables/rules.v4
加载之前保存的规则文件:
iptables-restore < /etc/iptables/rules.v4
清空规则:
清空所有规则,但保留默认策略:
iptables -F
清空所有规则和默认策略:
iptables -F
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
设置默认策略:
设置默认策略为拒绝所有输入流量:
iptables -P INPUT DROP
版权归原作者 凌晨五点的星 所有, 如有侵权,请联系我们删除。