各位前辈:
最近在读Oskar Andreasson先生的《Iptables Tutorial 1.2.0》,觉得获益颇多。在读 "14.6. rc.test-iptables.txt" 这部分时我想实际测试一下,就将这个脚本download下来并在一台linux(redhat9.0,Kernel 2.4.20-8 on an i686)机器(其名字为 Lab01)执行之,然后我在另一台linux机器(其名字为Firewall,与Lab01在同一个局域网内)上执行命令 "ping -c 1 Lab01"。接下来我在 Lab01上仔细查看文件 /var/log/messages,根据"6. Traversing of tables and chains"部分所讲,我期待在/var/log/messages中看到由上述ping命令产生的icmp包按照下面的次序穿过iptables:
mangle(PREROUTING)->nat(PREROUTING)->mangle(INPUT)->filter(INPUT) (icmp-type 为"echo request"的数据包),
mangle(OUTPUT)->nat(OUTPUT)->filter(OUTPUT)->mangle(POSTROUTING)->nat(POSTROUTING) (icmp-type为 "echo reply"的数据包)。
但是事实上我在/var/log/messages中看到上述ping命令产生的icmp包是按照下面的次序穿过iptables的:
mangle(PREROUTING)->nat(PREROUTING)->mangle(INPUT)->filter(INPUT) (icmp-type 为"echo request"的数据包),
mangle(OUTPUT)->filter(OUTPUT)->mangle(POSTROUTING) (根本没有经过nat(OUTPUT)&nat(POSTROUTING)两个链。) (icmp-type为 "echo reply"的数据包).
这应该如何解释?
后来我又做了另外一个测试;在这个测试中Lab01作为一个路由器工作,测试网络拓扑图如下:
PC----Lab01----Firewall。
在Firewll上执行命令"ping -c 1 PC"后我仔细查看 Lab01的/var/log/messages文件,同样,根据"6. Traversing of tables and chains"部分所讲,我期待在/var/log/messages中看到由上述ping命令产生的icmp包按照下面的次序穿过iptables:
mangle(PREROUTING)->nat(PREROUTING)->mangle(FORWARD)->filter(FORWARD)->mangle(POSTROUTING)->nat(POSTROUTING) (icmp-type 为"echo request"的数据包),
mangle(PREROUTING)->nat(PREROUTING)->mangle(FORWARD)->filter(FORWARD)->mangle(POSTROUTING)->nat(POSTROUTING) (icmp-type为 "echo reply"的数据包).
但是事实上我在/var/log/messages中看到上述ping命令产生的icmp包是按照下面的次序穿过iptables的:
mangle(PREROUTING)->nat(PREROUTING)->mangle(FORWARD)->filter(FORWARD)->mangle(POSTROUTING)->nat(POSTROUTING) (icmp-type 为"echo request"的数据包),
mangle(PREROUTING)->mangle(FORWARD)->filter(FORWARD)->mangle(POSTROUTING) (根本没有经过nat(PREROUTING)&nat(POSTROUTING)两个链。) (icmp-type为 "echo reply"的数据包).
这应该如何解释?
我确信自己已经正确执行了脚本rc.test-iptables.txt,我确信自己在查看Lab01上的文件
/var/log/messages时没有看错。
期待各位前辈不吝赐教,谢谢。
--------------------next---------------------
阅读(1095) | 评论(0) | 转发(0) |