[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çã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=.
#########################################################################
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ção: </b>" $6 " " $10 " " $11;}'
<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
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='
Re: [shell-script] Filtrar MAC do log do iptables, Julio C. Neves, 2010/04/27
Re: [shell-script] Filtrar MAC do log do iptables, jimmy, 2010/04/27