Iptables日志输出清理

时间:2013-11-28 09:00:23

标签: android linux grep iptables cut

我正在尝试最小化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。

2 个答案:

答案 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,其中包含您希望拥有的数据。