iptables的MARK功能不拦截流量,而是为数据包打内核可识别整数标记(如0x200),再由策略路由(ip rule + ip route)将带标流量导向专用路由表,实现恶意流量引流至审计、蜜罐等节点;需在mangle表PREROUTING链打标,配专用路由表与策略规则,并用CONNMARK保障TCP双向一致性。

iptables 的 MARK 功能本身不拦截或丢弃流量,而是为数据包打上内核可识别的整数标记(如 0x100),再由策略路由(ip rule + ip route)将带标流量导向特定路由表——这正是实现“恶意流量引流”的核心机制:不是直接封禁,而是将其重定向到审计、限速、沙箱或蜜罐等专用处理节点。
一、精准识别并标记恶意流量
在 mangle 表的 PREROUTING 或 INPUT 链中打标,确保规则位置靠前、未被提前跳过:
- 按源 IP 段标记可疑扫描流量:
iptables -t mangle -A PREROUTING -s 203.0.113.0/24 -j MARK --set-mark 0x200 - 按端口组合识别暴力破解特征(如 SSH 异常连接):
iptables -t mangle -A PREROUTING -p tcp --dport 22 -m connlimit --connlimit-above 5 --connlimit-mask 32 -j MARK --set-mark 0x201 - 结合 ipset 匹配已知恶意域名解析后的目的 IP:
ipset create badips hash:ip<br>iptables -t mangle -A PREROUTING -m set --match-set badips dst -j MARK --set-mark 0x202
二、创建专用路由表与出口路径
避免干扰主路由,为引流单独配置隔离路径:
开箱即用的技能链路由引擎。13 条预定义链覆盖搜索、开发、审查、MLOps、法律、创意等场景,三层路由架构(触发词→SAD反馈→DAG编排),recall@10=96.97%。配置驱动(chains.yaml),零代码扩展。pip install skill-weave-chains 一键安装。
- 定义新路由表名(写入
/etc/iproute2/rt_tables):echo "200 malflow" >> /etc/iproute2/rt_tables - 为该表设置下一跳(例如指向本地蜜罐服务或旁路分析设备):
ip route add default via 192.168.100.2 dev eth0 table malflow
(若引流至本机进程,可用lo接口 +127.0.0.1监听) - 添加策略规则,使标记生效:
ip rule add fwmark 0x200 table malflowip rule add fwmark 0x201 table malflowip rule add fwmark 0x202 table malflow
三、保障双向一致性(关键细节)
仅对入向包打标会导致回程响应走默认路由,破坏引流完整性。TCP 等有状态协议需用 CONNMARK 同步标记:
- 首次匹配时打标并保存到连接跟踪:
iptables -t mangle -A PREROUTING -m mark --mark 0x200 -j CONNMARK --save-mark - 后续包(含回程)恢复标记,确保策略路由持续生效:
iptables -t mangle -A PREROUTING -m connmark --ctmark 0x200 -j CONNMARK --restore-markiptables -t mangle -A OUTPUT -m connmark --ctmark 0x200 -j CONNMARK --restore-mark
四、配套加固与验证要点
引流不是终点,需闭环验证与防御协同:
- 确认内核启用策略路由支持:
sysctl net.ipv4.conf.all.policy_routing=1(部分发行版需显式开启) - 检查标记是否生效:
tcpdump -i eth0 -n 'ip[0] & 0xf0 == 0x40' -w marked.pcap(0x40是 skb->mark 字段在 IP 头 TOS 位的镜像,仅作调试参考;更可靠方式是用iptables -t mangle -L -v查看匹配计数) - 引流目标需具备接收能力:若导向本机,确保监听服务绑定
0.0.0.0或对应接口,并允许相关 INPUT 规则;若导向外部设备,确认其防火墙放行对应流量 - 避免与已有 MARK 冲突:用户空间程序(如某些代理或 QoS 工具)也可能使用 skb->mark,建议统一规划标记范围(如恶意类用
0x200–0x2ff,QoS 类用0x100–0x1ff)


















