shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Bulk] [shell-script] Filtrar MAC do log do iptables


From: Lawrence Waclawiak
Subject: Re: [Bulk] [shell-script] Filtrar MAC do log do iptables
Date: Tue, 27 Apr 2010 18:00:42 -0300
User-agent: Thunderbird 2.0.0.23 (X11/20090817)

Então Alexandre, pode ser que estejamos sofrendo com problemas de formatação da lista de e-mails, pois eu tenho absoluta certeza que esse comando funciona, também utilizo Redhat el5.4, só se vc estiver utilizando alguma versão muita antiga que não tenha suporte para alguns dos comandos que eu utilizei.
Como vc viu eu colei o meu teste, ele realmente foi executado.

Mas o meu comando não filtra o MAC, ele seleciona apenas as ocorrências que vc pediu e dessa forma conseguente mente filtra qualquer outra coisa, inclusive o MAC=.

Se vc tiver certeza que a únicas linhas que vc deseja filtrar são essas que começam com MAC= ai fica bem mais simples.

cat t|egrep -v '^MAC='
Se não funcionar significa que a linha não começa com "MAC=" dai vc pode tentar descobrir qual é o verdadeira caracter que tem no inicio da linha ou mandar ele rejeitar qualquer linha que contenha "MAC=" da seguinte forma:
cat t|egrep -v 'MAC='

Se não funfar chama o padre pois o kapeta tá no teu pc heheh

Agora quanto ao seu comando ele está com erros de lógica,veja:
########################################################################
tail -5 t|grep kernel|grep RECUSOU|awk '{$9="";print "<b>Hora:" $3 "A&ccedil;&atilde;o: </b>" $6 " " $10 " " $11;}'

Dessa forma o resultado foi

<b>Hora:15:27:15 A&ccedil;&atilde;o: </b>INT-RECUSOU-tcp DST=189.72.115.23 LEN=48 <b>Hora:15:27:37 A&ccedil;&atilde;o: </b>INT-RECUSOU-tcp DST=189.72.115.24 LEN=48 <b>Hora:15:27:46 A&ccedil;&atilde;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=.

#########################################################################
Esse primeiro grep que vc fez já matou qualquer linha que não contenha a palavra "kernel" o segundo pega o que sobrou e mata qualquer uma que não tenha "RECUSOU" dai passa a saida para o awk formatar, ou seja, você tá matando as linhas antes que elas possam chegar ao seu awk, por isso que as SRC e DST não saem, pode fazer o teste:

tail -5 t|grep kernel|grep RECUSOU

Você vai ver que já não tem todas as linhas que vc quer.

Outra questão e que mesmo que vc passe essas linhas para o awk não vai ficar como você quer pois cada tipo de linha tem uma estrutura diferente pelo que percebi e dessa forma as referencias de $1 $10 etc não vaão ser sempre as mesmas.

Escrevendo isso passei a ter certeza absoluta que nosso problema é a formatação da lista de e-mail.

utilize o site http://pastebin.com para colar toda a parte que é referente a comandos assim poderemos ajudar com maior facilidade.
Abraços


Alexandre Gorges escreveu:

Fala Lawrence.

Eu chamo esse tail por html. Então fica listando no navegador o log.
Como acontece de aparecer MAC em alguns logs, eu não consigo pegar por awk,
os campos depois do MAC, corretamente.
Então estou tentando retirar o MAC=..... Que pode aparecer em determinadas
linhas para que assim, via awk eu consiga montar as informações.

Testei o seu comando aqui no meu Redhat e aparentemente não filtrou o mac.

cat t| 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=
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

A ultima linha ainda constou o MAC=....

Com um awk que eu montei, até consigo filtrar o MAC=..., mas o que vier após
fica errado.

Veja

tail -5 t|grep kernel|grep RECUSOU|awk '{$9="";print "<b>Hora:" $3 "
A&ccedil;&atilde;o: </b>" $6 " " $10 " " $11;}'
<b>Hora:15:27:15 A&ccedil;&atilde;o: </b>INT-RECUSOU-tcp DST=189.72.115.23
LEN=48
<b>Hora:15:27:37 A&ccedil;&atilde;o: </b>INT-RECUSOU-tcp DST=189.72.115.24
LEN=48
<b>Hora:15:27:46 A&ccedil;&atilde;o: </b>SERV-RECUSOU-udp SRC=61.44.213.54
DST=10.1.1.254

As duas primeiras linhas, listaram DST=.... E LEN=.... Essas duas linhas não
tem MAC=.... Aparecendo. Na ultima linha o SRC=... E DST=.... Apareceram
corretamente.

[]'s
Alexandre Gorges
http://www.google.com.br/profiles/algorges <http://www.google.com.br/profiles/algorges> MSN/Gtalk/iCHAT/Skype/Buzz: address@hidden <mailto:algorges%40gmail.com>
ICQ: 2031408

> From: Lawrence Waclawiak <address@hidden <mailto:lawrencebbw%40yahoo.com.br>> > Reply-To: Lista Shell Script <address@hidden <mailto:shell-script%40yahoogrupos.com.br>>
> Date: Tue, 27 Apr 2010 16:57:59 -0300
> To: Lista Shell Script <address@hidden <mailto:shell-script%40yahoogrupos.com.br>>
> Subject: Re: [Bulk] [shell-script] Filtrar MAC do log do iptables
>
> '^ID' -e ' PROTO='






reply via email to

[Prev in Thread] Current Thread [Next in Thread]