iptables CONNMARK
时间: 2023-11-05 21:57:28 浏览: 112
iptables的CONNMARK模块是一个用于连接标记(connection marking)的扩展功能。它可以用来在iptables规则中对连接进行标记,以便后续的规则能够根据这些标记进行匹配和处理。
CONNMARK模块提供了以下几个主要的匹配条件和目标动作:
1. `--set-mark`:将连接标记设置为指定的值。
2. `--save-mark`:将连接标记保存到packet mark字段中。
3. `--restore-mark`:从packet mark字段中恢复连接标记。
4. `--save-ip`:将连接标记保存到packet的源或目的IP地址中。
5. `--save-pkttype`:将连接标记保存到packet类型字段中。
使用CONNMARK模块的示例规则如下:
```shell
# 设置连接标记为1
iptables -t mangle -A PREROUTING -i eth0 -m connmark ! --mark 0 -j CONNMARK --set-mark 1
# 根据连接标记进行匹配
iptables -A INPUT -m connmark --mark 1 -j LOG --log-prefix "Marked Connection: "
# 将连接标记保存到packet mark字段中
iptables -t mangle -A POSTROUTING -m connmark --mark 1 -j CONNMARK --save-mark
# 从packet mark字段中恢复连接标记
iptables -t mangle -A PREROUTING -m mark ! --mark 0 -j CONNMARK --restore-mark
# 将连接标记保存到packet的源IP地址中
iptables -t mangle -A POSTROUTING -m connmark --mark 1 -j CONNMARK --save-ip-src
# 将连接标记保存到packet的目的IP地址中
iptables -t mangle -A POSTROUTING -m connmark --mark 1 -j CONNMARK --save-ip-dst
# 将连接标记保存到packet类型字段中
iptables -t mangle -A POSTROUTING -m connmark --mark 1 -j CONNMARK --save-pkttype
```
阅读全文