我正在尝试最小化iptables日志,但我不知道如何实现。我读了一些关于grep、cut和awk的教程。但我还是不能做任何有用的事情。我想要实现像SRC=192.168.1.6 DST=192.168.1.2 PROTO=TCP SYN这样的结果。
原始日志中的两个数据包如下所示:
<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顺便说一句,我尝试了更多的选项,但这是唯一一个返回一些结果的选项。
提前谢谢。
附注:这些都是iptables_arm,我正在用我的平板电脑做实验。我正在尝试从我的android程序中读取这些结果,以便捕获从我的笔记本电脑启动的portscan。
发布于 2013-11-28 17:14:02
我只需要使用awk并计算我想要的空格分隔的列:
grep "IPT IN“/proc/kmsg | awk '{print $1 $2 $xy1 $xy2 $xy3}‘
xy1,2,3部分必须替换为您想要的特定列号;-)
发布于 2013-11-28 18:58:52
我确实实时创建了一个简单的日志文件,下面是如何做的:
tail --follow=name /var/log/yourLogfile | awk '{print $8,$9,$15,$17 | "tee /var/log/newlog"}' &这将创建一个新的日志文件/var/log/newlog,其中包含您希望包含的数据。
https://stackoverflow.com/questions/20261627
复制相似问题