[GTER] Analize de trafego ( tcpdump )

Hamilton Vera hamilton at i2.com.br
Thu Jul 20 12:18:59 -03 2006


Acho que voce esta querendo inventar a roda, ja tem programas
que fazem esse tipo de analise e colocam em BD, uma olhada rapida no 
google e voce encontra, caso prefira desenvolver, existem modulos
em Perl e Python que podem ser uteis para voce.

Atencao nos parametros que voce usa no tcpdump, voce esta fazendo
uma analise colocando o interface em modo promiscuo o que pode
gerar problemas para voce.

Nao e aconselhavel ficar rodando o tcpdump para
pegar esse tipo de dado, como disse no post anterior
ferramentas do tipo netflow são mais apropriadas.

Sobre dicas na implementacao, tente postar na masoch-l at eng.registro.br,
pois a gter at eng.registro.br destinada para outros fins.


[]'s


On Thu, 20 Jul 2006, loki - www.darkwise.cjb.net wrote:

> Galera comecei meus testes assim:
>
> root at darknod#tcpdump
>
> 11:35:38.391928 arp who-has 201.30.55.1 tell 201.30.55.10
> 11:35:38.392034 arp reply 201.30.55.1 is-at 00:0a:5e:5c:96:1d
> 11:35:47.367390 IP 201.30.55.10.52995 > 216.239.51.86.80: P
> 648325982:648326878(896) ack 1512939770 win 8580
> 11:35:47.575496 IP 216.239.51.86.80 > 201.30.55.10.52995: . ack 896 win 8190
> 11:35:47.575638 IP 201.30.55.10.52995 > 216.239.51.86.80: P
> 896:1209(313) ack 1 win 8580
> 11:35:47.783491 IP 216.239.51.86.80 > 201.30.55.10.52995: . ack 1209 win 6981
> 11:35:47.829369 IP 216.239.51.86.80 > 201.30.55.10.52995: . ack 1209 win 7168
> 11:35:47.829373 IP 216.239.51.86.80 > 201.30.55.10.52995: . ack 1209 win 8960
> 11:35:47.861616 IP 216.239.51.86.80 > 201.30.55.10.52995: P 1:310(309)
> ack 1209 win 8960
> 11:35:47.861707 IP 201.30.55.10.52995 > 216.239.51.86.80: . ack 310 win 11440
> 11:35:47.866041 IP 201.30.55.10.52993 > 216.239.51.86.80: P
> 638823939:638824839(900) ack 1103881630 win 24310
> 11:35:48.068830 IP 216.239.51.86.80 > 201.30.55.10.52993: . ack 900 win 7290
> 11:35:48.068837 IP 216.239.51.86.80 > 201.30.55.10.52993: . ack 900 win 7424
> 11:35:48.700600 IP 216.239.51.86.80 > 201.30.55.10.52993: .
> 1:1431(1430) ack 900 win 7424
> 11:35:48.700697 IP 201.30.55.10.52993 > 216.239.51.86.80: . ack 1431 win 27170
> 11:35:48.703346 IP 216.239.51.86.80 > 201.30.55.10.52993: .
> 1431:2861(1430) ack 900 win 7424
> 11:35:48.703446 IP 201.30.55.10.52993 > 216.239.51.86.80: . ack 2861 win 30030
> 11:35:48.977061 IP 216.239.51.86.80 > 201.30.55.10.52993: P
> 2861:3863(1002) ack 900 win 7424
> 11:35:48.977161 IP 201.30.55.10.52993 > 216.239.51.86.80: . ack 3863 win 32767
> 11:35:52.575666 arp who-has 201.30.55.10 tell 201.30.55.1
> 11:35:52.575704 arp reply 201.30.55.10 is-at 00:0a:e6:e9:cc:71
> 11:35:57.616381 IP 201.30.55.10.32776 > 201.30.55.20.53:  61026+ A?
> www.google.com.br. (35)
> 11:35:57.616863 IP 201.30.55.20.53 > 201.30.55.10.32776:  61026 4/6/0
> CNAME[|domain]
> 11:35:57.618147 IP 201.30.55.10 > 216.239.37.99: ICMP echo request, id
> 47663, seq 1, length 64
> 11:35:57.825792 IP 216.239.37.99 > 201.30.55.10: ICMP echo reply, id
> 47663, seq 1, length 64
> 11:35:57.826352 IP 201.30.55.10.32776 > 201.30.55.20.53:  43140+ PTR?
> 99.37.239.216.in-addr.arpa. (44)
> 11:35:58.029415 IP 201.30.55.20.53 > 201.30.55.10.32776:  43140
> NXDomain 0/1/0 (104)
> 11:35:58.617277 IP 201.30.55.10 > 216.239.37.99: ICMP echo request, id
> 47663, seq 2, length 64
> 11:35:58.826113 IP 216.239.37.99 > 201.30.55.10: ICMP echo reply, id
> 47663, seq 2, length 64
> 11:35:58.826639 IP 201.30.55.10.32776 > 201.30.55.20.53:  61188+ PTR?
> 99.37.239.216.in-addr.arpa. (44)
> 11:35:58.826869 IP 201.30.55.20.53 > 201.30.55.10.32776:  61188
> NXDomain 0/1/0 (104)
> 11:35:59.617343 IP 201.30.55.10 > 216.239.37.99: ICMP echo request, id
> 47663, seq 3, length 64
> 11:35:59.914683 IP 216.239.37.99 > 201.30.55.10: ICMP echo reply, id
> 47663, seq 3, length 64
>
>
> ===============================================================
> Como disse :
> a hora é facil: em vermelho
> ip hor... desti: em verde
> tamanho ( length) ( no caso 64 bytes) no fim da linha amarela... mas acho
> que so aparece nos pacotes ICMP... os tcp ( proto http ) em azul por exemplo
> naum tem.... nem os arp e por ai vai...
>
> Teste 2:
> tcpudump -n -x -l
>
> saida:
>
> 11:42:49.148205 IP 201.30.55.10 > 216.239.37.104: ICMP echo request,
> id 30772, seq 1, length 64
> 	0x0000:  4500 0054 0000 4000 4001 3c29 c91e 370a
> 	0x0010:  d8ef 2568 0800 bf9b 7834 0001 79a4 bf44
> 	0x0020:  9a42 0200 0809 0a0b 0c0d 0e0f 1011 1213
> 	0x0030:  1415 1617 1819 1a1b 1c1d 1e1f 2021 2223
> 	0x0040:  2425 2627 2829 2a2b 2c2d 2e2f 3031 3233
> 	0x0050:  3435
> 11:42:49.361927 IP 216.239.37.104 > 201.30.55.10: ICMP echo reply, id
> 30772, seq 1, length 64
> 	0x0000:  4500 0054 0000 4000 f101 8b28 d8ef 2568
> 	0x0010:  c91e 370a 0000 c79b 7834 0001 79a4 bf44
> 	0x0020:  9a42 0200 0809 0a0b 0c0d 0e0f 1011 1213
> 	0x0030:  1415 1617 1819 1a1b 1c1d 1e1f 2021 2223
> 	0x0040:  2425 2627 2829 2a2b 2c2d 2e2f 3031 3233
> 	0x0050:  3435
> 11:42:49.362536 IP 201.30.55.10.32776 > 201.30.55.20.53:  60096+ PTR?
> 104.37.239.216.in-addr.arpa. (45)
> 	0x0000:  4500 0049 e087 4000 4011 59c1 c91e 370a
> 	0x0010:  c91e 3714 8008 0035 0035 0713 eac0 0100
> 	0x0020:  0001 0000 0000 0000 0331 3034 0233 3703
> 	0x0030:  3233 3903 3231 3607 696e 2d61 6464 7204
> 	0x0040:  6172 7061 0000 0c00 01
> 11:42:49.648793 IP 201.30.55.20.53 > 201.30.55.10.32776:  60096
> NXDomain 0/1/0 (105)
> 	0x0000:  4500 0085 76f8 4000 8011 8314 c91e 3714
> 	0x0010:  c91e 370a 0035 8008 0071 79ce eac0 8183
> 	0x0020:  0001 0000 0001 0000 0331 3034 0233 3703
> 	0x0030:  3233 3903 3231 3607 696e 2d61 6464 7204
> 	0x0040:  6172 7061 0000 0c00 01c0 1000 0600 0100
> 	0x0050:  0000
>
> 11:42:51.843917 IP 66.249.83.19.80 > 201.30.55.10.38004: . ack 1372 win 8190
> 	0x0000:  4500 0028 7999 0000 f106 ba01 42f9 5313
> 	0x0010:  c91e 370a 0050 9474 b205 9ac2 440a 0c7e
> 	0x0020:  5010 1ffe c78c 0000 0000 0000 0000
>
> 11:42:51.844008 IP 201.30.55.10.38004 > 66.249.83.19.80: P
> 1372:1426(54) ack 1 win 32767
> 	0x0000:  4500 005e 4467 4000 4006 5ffe c91e 370a
> 	0x0010:  42f9 5313 9474 0050 440a 0c7e b205 9ac2
> 	0x0020:  5018 7fff c387 0000 0d0a 636f 756e 743d
> 	0x0030:  3126 7265 7130 5f74 7970 653d 6926 7265
> 	0x0040:  7130 5f74 696d 653d 3639 3539 3426 7265
> 	0x0050:  7130
>
> ==============================================================================
> assim continuo tendo:
> hora em vermelho
> ips em amarelo
> tamanho (total length) em verde; so preciso saber agora como converter isso
> direitinho pra um valor inteiro e decimal pq um pacote icpm com 64bytes
> por exemplo o campo exibe o valor hexa 0054........ tenho que saber
> direitinho agora como converter..............
>
>
> tem muita informação desnecessária........ mas vou criar um pequeno daemon que
> vai capturar o que  eu preciso jogar no banco o programa principal vai
> analizar os dados do meu bd
> vai ser algo assim
>
> [trafego]
> - acesso : integer > [acessos].cod
> - segundo : shortint
> - minuto : shotint
> - hora : shortint
> - dia : shotint
> - mes : shotint
> - ano : shotint
> - download : interger
> - upload   : integer
>
> sei que isso naum vem ao caso mas ja que espus o meu problema vou expor a
> minha implementação aqui para caso interesse alguem....
>
> um daemon que vai analizar os logs do tcpdump vai agrupar os pacotes em
> blocos de 5minutos..... separar por ip orgigem ( upload ) e ip destino
> ( download )
> inserir na base de dados com estrutura acima mensionada e o meu sistema
> ira gerar os graficos na hora.......
> sei que a estrutura da tabela poderia ser melhor esplorada mas e que prefiro
> perder espaçõ do que processamento pois meu server ja faz muita coisa e
> quanto mais calculo tiver que fazer pior... por isso preferi usar campos
> inteiros e separados para cada campo da data e hora para agilizar na
> indexação.....
>
>
> valeu galera
> --
> gter list    https://eng.registro.br/mailman/listinfo/gter
>


More information about the gter mailing list