我在我的iptables有一个规则拒绝连接logging,即-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
我想要一个类似的规则,logging所有已build立的,即不拒绝连接到所有端口。 我怎么能做到这一点,我试图search谷歌和试验,但我找不到匹配的string
一个便宜又快乐的方法是在三次握手中查找第二个数据包。 很容易发现,不寻常的是它具有SYN和ACK标志设置,这对于给定的连接通常是唯一的。 虽然发件人仍然有可能不用第三个也是最后一个包来回应,但这完全是由发件人的恩惠:在这一点上,你已经表明你愿意进行这个谈话,而且就你而言,关心,这是成立的。
我用这个login了
iptables -A OUTPUT -p tcp --tcp-flags SYN,ACK SYN,ACK -j LOG --log-prefix "Connection established: "
你可以看到它使用例如sshd:
client% telnet 192.168.3.1 22 Trying 192.168.3.1... Connected to 192.168.3.1. Escape character is '^]'. SSH-2.0-OpenSSH_5.3 server% tail -1 /var/log/facility/kern Feb 18 05:06:29 server kernel: Connection established: IN= OUT=eth0.11 SRC=192.168.3.1 DST=192.168.3.11 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=TCP SPT=22 DPT=59292 WINDOW=14480 RES=0x00 ACK SYN URGP=0
通过一个简短的说明:你目前正在logging的是不拒绝连接 ,但拒绝数据包 ; 这不是一回事。 但是我假定你确切地询问你想要什么,并且已经做出了相应的回答。