我想logging所有不是源于局域网的INPUT数据包用于审计目的,我有一个tcpdump脚本基本上附加到一个文件的结果:
tcpdump "(dst net 192.168.0.0/24 and ! src net 192.168.0.0/24)"
不过,我在/ var / log / syslog中看到了一些外部尝试
[567325.985994] iptables INPUT denied: IN=eth1 OUT= MAC=..... SRC=69.163.149.200 DST=192.168.0.2 LEN=60 TOS=0x00 PREC=0x00 TTL=57 ID=50281 DF PROTO=TCP SPT=51380 DPT=1194 WINDOW=5840 RES=0x00 SYN URGP=0 [567895.076532] iptables INPUT denied: IN=eth1 OUT= MAC=.... SRC=72.21.91.19 DST=192.168.0.2 LEN=40 TOS=0x00 PREC=0x00 TTL=59 ID=0 DF PROTO=TCP SPT=80 DPT=52589 WINDOW=0 RES=0x00 RST URGP=0
这不会在tcpdump outout中显示出来。 我想添加一个规则
-A INPUT -j LOG
但是我想(如果有意义的话)避免从局域网中input日志input数据包
放这个就足够了吗?
-A INPUT ! -s 192.168.0.0/24 -j LOG
顺便说一句,作为一个侧面的问题,iptables支持logging不同的东西到不同的文件?
iptables总是logging到系统日志的内核工具,你可以把你的系统日志工具分成不同的文件 – 详情请参阅syslog.conf文档 。
你的规则
– input! -s 192.168.0.0/24 -j LOG
会logging没有源IP为192.168.0.0/24的数据包,但iptables日志logging仅覆盖一些数据包头数据,而不是数据包的有效负载。
那么,如何捕获有效载荷呢?
tcpdump是捕获有效负载的工具。 您应该明确指定您希望stream量进入的接口(-i eth1)或使用任何接口(-i any)。 您可能还想要增加snaplen(-s参数)并将采集以二进制格式(-W参数)写入文件。
但由于tcpdump不是一个安全工具,而是一个具有困难安全历史的诊断工具,并且可能在你的configuration文件中以root权限运行(虽然有办法以非root用户身份运行 ),但你应该考虑写一个不同的解决scheme考虑到安全性 – IDS系统可能是合适的。