我正在尝试最小化iptables日志,但我不知道如何。我读了一些关于grep,cut和awk的教程。但我仍然无能为力。我希望得到像SRC=192.168.1.6 DST=192.168.1.2 PROTO=TCP SYN
这样的结果。
这是来自原始日志的2个数据包的样子:
<4>[1133131.431453] [IPT IN START] IN=wlan0 OUT= MAC=08:60:6e:a5:bc:0b:00:16:cf:b9:08:2c:08:00:45:00:00:2c:51:56:00:00:3
8:06:ae:1d:c0:a8:01:06:c0:a8:01:02:f8:a4:08:01:f2:0e:30:9c:00:00:00:00:60:02:04:00:ed:7c:00:00:02:04:05:b4:00:00:00:00:0
0:00:00:00 SRC=192.168.1.6 DST=192.168.1.2 LEN=44 TOS=0x00 PREC=0x00 TTL=56 ID=20822 PROTO=TCP SPT=63652 DPT=2049 WINDOW
=1024 RES=0x00 SYN URGP=0
<4>[1133131.440239] [IPT IN START] IN=wlan0 OUT= MAC=08:60:6e:a5:bc:0b:00:16:cf:b9:08:2c:08:00:45:00:00:2c:48:6d:00:00:3
4:06:bb:06:c0:a8:01:06:c0:a8:01:02:f8:a4:04:42:f2:0e:30:9c:00:00:00:00:60:02:04:00:f1:3b:00:00:02:04:05:b4:00:00:00:00:0
0:00:00:00 SRC=192.168.1.6 DST=192.168.1.2 LEN=44 TOS=0x00 PREC=0x00 TTL=52 ID=18541 PROTO=TCP SPT=63652 DPT=1090 WINDOW
=1024 RES=0x00 SYN URGP=0
这就是我尝试过的:fgrep '[IPT IN ' /proc/kmsg |cut -d" " -f1-4,9,13,14,21,22,23,26
结果就是这样:
<4>[1132271.745701] [IPT IN START] DST=192.168.1.2 TTL=45 ID=30608
<4>[1132271.747764] [IPT IN START] DST=192.168.1.2 TTL=54 ID=63992
<4>[1132271.751983] [IPT IN START] DST=192.168.1.2 TTL=52 ID=4162
顺便说一句,我尝试了更多的选项,但是这一个是唯一一个返回一些结果的选项。
提前致谢。
p.s那些是iptables_arm,我正在试验我的平板电脑。我试图从我的android程序中读取这些结果,以便捕获从我的笔记本电脑启动的portscan。
答案 0 :(得分:0)
我会使用awk并计算我想要的空白分隔列:
grep“IPT IN”/ proc / kmsg | awk'{print $ 1 $ 2 $ xy1 $ xy2 $ xy3}'
xy1,2,3部分必须替换为您想要的特定列数; - )
答案 1 :(得分:0)
我确实实时创建了一个简单的日志文件,以下是如何操作:
tail --follow=name /var/log/yourLogfile | awk '{print $8,$9,$15,$17 | "tee /var/log/newlog"}' &
这将创建一个新的日志文件/var/log/newlog
,其中包含您希望拥有的数据。