所以我加了
sudo iptables -t raw -A PREROUTING -p tcp --dport 25 -j TRACE
以及
sudo iptables -t raw -A OUTPUT -p tcp --dport 25 -j TRACE
当我为TRACE grep我的系统日志时,我得到的输出看起来像这样
Jan 19 09:14:46 dev109 kernel: [29067248.683235] TRACE: raw:OUTPUT:rule:2 IN= OUT=eth0 ... Jan 19 09:14:46 dev109 kernel: [29067248.683244] TRACE: raw:OUTPUT:policy:5 IN= OUT=eth0 ... Jan 19 09:14:46 dev109 kernel: [29067248.683254] TRACE: mangle:OUTPUT:policy:1 IN= OUT=eth0 ... Jan 19 09:14:46 dev109 kernel: [29067248.683262] TRACE: filter:OUTPUT:policy:1 ... Jan 19 09:14:46 dev109 kernel: [29067248.683269] TRACE: mangle:POSTROUTING:policy:1 ... Jan 19 09:14:46 dev109 kernel: [29067248.683432] TRACE: raw:OUTPUT:rule:4 IN= OUT=eth0 ... Jan 19 09:14:46 dev109 kernel: [29067248.683441] TRACE: raw:OUTPUT:policy:5 IN= OUT=eth0 ...
我试图理解策略编号是指policy:1
== ACCEPT
?,如果是,这policy:5
意味着什么?
policy:1
是type:rulenum
。或者换个方式type="policy"
和rulenum=1
。
阅读此仔细。特别:
跟踪此目标标记是打包的,以便内核在记录所有遍历表,链和规则的数据包时记录匹配的所有规则。(需要使用ipt_LOG或ip6t_LOG模块进行记录。)使用字符串前缀记录数据包:
“ TRACE:tablename:chainname:type:rulenum”,对于普通规则,类型可以是“ rule”,对于用户定义的链的末尾,类型可以是“ return”,对于隐式规则,对于内置链的策略,“ policy”可以是type。它只能在原始表中使用。
现在,让我们从问题中选择一个前缀,TRACE: mangle:OUTPUT:policy:1
然后应用我们所学的内容:
tablename = mangle chainname = OUTPUT type = policy] rulenum = 1