[GTER] Analize de trafego ( tcpdump )

loki - www.darkwise.cjb.net lokibelmont at gmail.com
Thu Jul 20 11:55:43 -03 2006


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



More information about the gter mailing list