iptables -t mangle -A OUTPUT -m state --state NEW -j HMARK --hmark-tuple src,sport,dst,dport --hmark-mod 7 --hmark-rnd 0xcafeface --hmark-offset 0x65 iptables -t mangle -A OUTPUT -m state --state NEW -j CONNMARK --save-mark --nfmask 0xffffffff --ctmask 0xffffffff iptables -t mangle -A OUTPUT -m state --state RELATED,ESTABLISHED -j CONNMARK --restore-mark --nfmask 0xffffffff --ctmask 0xffffffff 这3串代码实现了什么功能?
时间: 2023-09-26 07:07:39 浏览: 169
centos6-iptables-1.4.7-16.el6.x86-64
这三条iptables规则实现了以下功能:
1. 第一条规则:
- 匹配状态为NEW的数据包(即新建连接的数据包)。
- 对匹配的数据包应用HMARK(哈希标记)动作。
- 使用源IP地址、源端口、目标IP地址和目标端口作为哈希元组。
- 应用哈希算法mod 7。
- 设置随机种子为0xcafeface。
- 设置哈希偏移量为0x65。
这条规则的作用是对新建连接的数据包进行哈希标记,使用特定的哈希算法和参数来生成标记。
2. 第二条规则:
- 匹配状态为NEW的数据包。
- 对匹配的数据包应用CONNMARK(连接标记)动作。
- 保存当前连接标记到数据包的元数据中。
- 设置netfilter掩码为0xffffffff。
- 设置连接跟踪掩码为0xffffffff。
这条规则的作用是保存当前连接的标记到数据包的元数据中,以便后续的处理可以使用该标记。
3. 第三条规则:
- 匹配状态为RELATED或ESTABLISHED的数据包(即相关或已建立连接的数据包)。
- 对匹配的数据包应用CONNMARK动作。
- 从数据包的元数据中恢复连接标记。
- 设置netfilter掩码为0xffffffff。
- 设置连接跟踪掩码为0xffffffff。
这条规则的作用是从相关或已建立连接的数据包的元数据中恢复连接标记,以便后续的处理可以使用该标记。
总体上,这三条规则用于在mangle表的OUTPUT链中对输出数据包进行处理和标记,以便后续的处理或路由决策能够根据这些标记来进行。
阅读全文