简介
前面文章介绍iptables的匹配条件,并且已经用到了一些常用动作,比如ACCEPT、DROP、REJECT等。
以下是 iptables 中常用的一些目标(target)及其原理和时机:ACCEPT
原理:允许数据包通过,并停止对后续规则的匹配。
时机:当你想允许特定的数据包通过防火墙时。DROP
原理:丢弃数据包,并不返回任何错误消息给发送者。
时机:当你想阻止特定的数据包通过防火墙,并且不想让发送者知道数据包已被丢弃时。REJECT
原理:拒绝数据包,并返回一个错误消息给发送者(通常是 ICMP 类型的消息)。
时机:当你想阻止特定的数据包通过防火墙,并希望发送者知道数据包已被拒绝时。LOG
原理:记录数据包的信息到系统日志(通常是 /var/log/syslog 或 /var/log/messages),然后根据下一个目标(通常是 DROP 或 REJECT)来处理数据包。
时机:当你想记录通过或未通过防火墙的数据包信息时。RETURN
原理:结束当前链中的处理,并返回到调用它的链继续处理。
时机:当你使用用户定义的链(user-defined chains)时,并且在处理完特定条件后想返回到主链(如 INPUT、OUTPUT、FORWARD)继续处理。QUEUE
原理:将数据包放入用户空间队列,以便应用程序(如防火墙脚本)可以进一步处理。
时机:当你想在用户空间中对数据包进行更复杂的处理时。MARK
原理:设置数据包的 NFMARK 字段。这通常与路由和其他更高级的功能一起使用。
时机:当你需要为数据包设置特定的标记以进行后续处理时。GOTO
原理:跳转到另一个用户定义的链进行进一步处理。与 RETURN 类似,但不返回,而是继续在新的链中处理。
时机:当你想在一个复杂的用户定义的链结构中进行控制流处理时。DNAT(目标地址转换)和 SNAT(源地址转换)
原理:修改数据包的源或目标 IP 地址。通常用于 NAT(网络地址转换)场景。
时机:当你想在防火墙级别进行地址转换时,例如,将外部 IP 地址映射到内部服务器。MASQUERADE(或MASQUERADE-SAVE)
原理:对源地址进行伪装,通常用于从私有网络到公共网络的NAT。
时机:在私有网络中的主机需要访问公共网络时。TOS 或 TCLASS
原理:修改数据包的Type of Service(TOS)字段(IPv4)或Traffic Class(IPv6)。
时机:根据数据包的优先级或服务类型进行路由决策。TTL
原理:修改数据包的TTL(Time to Live)字段。
时机&#