Fala Alexandre!
Primeira coisa é que tu está confundindo linha com coluna pois nesse log
não tem colunas definidas, apenas linhas.
para fazer as filtragens que vc quer procedi da seguinte maneira:
l...@lbw-laptop:~$ cat iptables-log
Apr 27 15:27:15 server kernel: INT-RECUSOU-tcp IN=eth1 OUT=eth0
SRC=172.16.19.10 DST=189.72.115.23 LEN=48 TOS=0x00 PREC=0x00 TTL=127
ID=42626 DF PROTO=TCP SPT=3855 DPT=445 WINDOW=65535 RES=0x00 SYN URGP=0
Apr 27 15:27:37 server kernel: INT-RECUSOU-tcp IN=eth1 OUT=eth0
SRC=172.16.19.10 DST=189.72.115.24 LEN=48 TOS=0x00 PREC=0x00 TTL=127
ID=42641 DF PROTO=TCP SPT=3857 DPT=445 WINDOW=65535 RES=0x00 SYN URGP=0
Apr 27 15:27:46 server kernel: SERV-RECUSOU-udp IN=eth0 OUT=
MAC=00:01:02:77:39:e5:00:18:d1:e1:6c:69:08:00 SRC=61.44.213.54
DST=10.1.1.254 LEN=131 TOS=0x00 PREC=0x00 TTL=106 ID=5960 PROTO=UDP
SPT=34422 DPT=61673 LEN=111
l...@lbw-laptop:~$
l...@lbw-laptop:~$ cat iptables-log |egrep -e '^SRC=' -e '^DST=' -e
'^SPT=' -e '^DTP=' -e '^[JFMASOND][a-z]{2} [0-9]{2} ' -e '-RECUSOU-' -e
'^ID' -e ' PROTO='
Apr 27 15:27:15 server kernel: INT-RECUSOU-tcp IN=eth1 OUT=eth0
SRC=172.16.19.10 DST=189.72.115.23 LEN=48 TOS=0x00 PREC=0x00 TTL=127
ID=42626 DF PROTO=TCP SPT=3855 DPT=445 WINDOW=65535 RES=0x00 SYN URGP=0
Apr 27 15:27:37 server kernel: INT-RECUSOU-tcp IN=eth1 OUT=eth0
SRC=172.16.19.10 DST=189.72.115.24 LEN=48 TOS=0x00 PREC=0x00 TTL=127
ID=42641 DF PROTO=TCP SPT=3857 DPT=445 WINDOW=65535 RES=0x00 SYN URGP=0
Apr 27 15:27:46 server kernel: SERV-RECUSOU-udp IN=eth0 OUT=
DST=10.1.1.254 LEN=131 TOS=0x00 PREC=0x00 TTL=106 ID=5960 PROTO=UDP
SPT=34422 DPT=61673 LEN=111
em seguida basta você utilizar o sed ou o awk para formatar a saida da
forma que vc quer póis não entendi exatamente o que vc quer fazer
No comando que eu fiz uso '' para proteger a expressão que quero casar,
o ^ significa inicio de linha, o que está entre [] representa as
possiveis variação para uma casa, o que está entre {} representa o
numero de repetições da casa anterior.
As letras [JFMASOND] representam as letras em maiúculo de todas as
iniciais dos meses.
Espero que tenha ajudado.
Alexandre Gorges escreveu:
>
> Boa tarde,
>
> Estou tentando montar um log do iptables e encontrei um problema.
> Algumas linhas do iptables possuem a coluna MAC= e algumas não.
> Montei um tail com awk para listar, mas estou com um problema para
> filtrar a
> coluna MAC=. Eu não quero imprimir essa coluna no relatório.
>
> O log original sai assim:
>
> Apr 27 15:27:15 server kernel: INT-RECUSOU-tcp IN=eth1 OUT=eth0
> SRC=172.16.19.10 DST=189.72.115.23 LEN=48 TOS=0x00 PREC=0x00 TTL=127
> ID=42626 DF PROTO=TCP SPT=3855 DPT=445 WINDOW=65535 RES=0x00 SYN URGP=0
> Apr 27 15:27:37 server kernel: INT-RECUSOU-tcp IN=eth1 OUT=eth0
> SRC=172.16.19.10 DST=189.72.115.24 LEN=48 TOS=0x00 PREC=0x00 TTL=127
> ID=42641 DF PROTO=TCP SPT=3857 DPT=445 WINDOW=65535 RES=0x00 SYN URGP=0
> Apr 27 15:27:46 server kernel: SERV-RECUSOU-udp IN=eth0 OUT=
> MAC=00:01:02:77:39:e5:00:18:d1:e1:6c:69:08:00 SRC=61.44.213.54
> DST=10.1.1.254 LEN=131 TOS=0x00 PREC=0x00 TTL=106 ID=5960 PROTO=UDP
> SPT=34422 DPT=61673 LEN=111
>
> O tail que fiz ficou:
>
> tail -5 t|grep kernel|grep RECUSOU|awk '{$9="";print "<b>Hora:" $3 "
> Ação: </b>" $6 " " $10 " " $11;}'
>
> Dessa forma o resultado foi
>
> <b>Hora:15:27:15 Ação: </b>INT-RECUSOU-tcp DST=189.72.115.23
> LEN=48
> <b>Hora:15:27:37 Ação: </b>INT-RECUSOU-tcp DST=189.72.115.24
> LEN=48
> <b>Hora:15:27:46 Ação: </b>SERV-RECUSOU-udp SRC=61.44.213.54
> DST=10.1.1.254
>
> Reparem nas primeiras linhas. Listou apenas DST e não as colunas SRC e
> DST.
> Eu estou querendo eliminar a coluna do MAC inteira, tratando como se nunca
> tivesse existido a coluna MAC=.
>
> Do log original, o que eu preciso seria as colunas da hora, RECUSOU, SRC,
> DST, PROTO, SPT, DPT
>
> []'s
> Alexandre Gorges
> http://www.google.com.br/profiles/algorges
> <http://www.google.com.br/profiles/algorges>
> MSN/Gtalk/iCHAT/Skype/Buzz: [email protected]
> <mailto:algorges%40gmail.com>
> ICQ: 2031408
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
------------------------------------
---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
aviso.
---------------------------------------------------------------------
Sair da lista: [email protected]
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil
Links do Yahoo! Grupos
<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/shell-script/
<*> Para sair deste grupo, envie um e-mail para:
[email protected]
<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html