Monitoramento de Redes
Por: Rothmund • 7/9/2015 • Trabalho acadêmico • 856 Palavras (4 Páginas) • 383 Visualizações
Trabalho 2 Redes de Computadores – Leitura de pacotes usando TCPDUMP com arquitetura cliente/servidor
Abstract. This paper explains the operation of a protocol analyzer using a client / server architecture, where the client monitors the packets received by the server.
Resumo. Este artigo explica o funcionamento de um analisador de protocolos utilizando uma arquitetura cliente/servidor, na qual o cliente monitora os pacotes recebidos pelo servidor.
Introdução
No estudo de redes de computadores não se pode deixar de citar as camadas de rede e transporte do modelo OSI, únicas camadas que ficam intactas no modelo TCP/IP usado na internet nos dias de hoje.
[pic 1]Figura 1. Modelo OSI vs TCP/IP
Para o estudo dos protocolos que funcionam na internet nas redes de última milha existem softwares chamados de “analisadores de protocolos”, que podem interceptar pacotes deixando a interface de rede em modo promíscuo fazendo com que o usuário que não deveria receber estes pacotes tenha acesso a eles, não sendo somente este o único jeito de interceptar os demais pacotes, mas sim o mais comum.
Objetivo e desenvolvimento
Este trabalho tem como objetivo explicar o desenvolvimento de uma aplicação na qual um cliente possa ter acesso aos pacotes que um servidor esteja recebendo usando o analisador de protocolos TCPDUMP. O TCPDUMP deve ser inicializado pelo cliente e rodar no servidor enviando os pacotes ao cliente via socket.
Este trabalho foi feito utilizando a linguagem de programação java e IDE Netbeans. O cliente foi projetado usando como modelo a tecnologia swing e o servidor em apenas modo texto. Na aplicação há dois canais de comunicação, um que é acessado pela porta 10.000 no lado do cliente e outro na porta 10.001 no lado do servidor.
Na interface com o usuário pode-se digitar o IP e a porta na qual se deseja conectar e um campo de texto para enviar comandos ao servidor. Logo abaixo há uma área de texto para exibir os dados recebidos do servidor como mostra na Figura 2.
[pic 2]Figura 2. Interface do cliente com usuário
A implementação do cliente foi feita usando duas threads, uma para cada socket instanciado. No servidor há um total de três threads na qual duas são para funções de comunicação via socket e outra para a execução do processo do TCPDUMP.
O protocolo de comunicação utilizando para esta aplicação foi o TCP, pois sua implementação é demasiada simples e também pelo seu padrão de confiabilidade.
Simulação e testes
A simulação começa com o servidor sendo inicializado com permissão de super-usuário pelo fato de que o TCPDUMP acessa a interface de rede da máquina e, num sistema operacional linux, é necessário este tipo de permissão para acessá-la. É possível também adicionar o usuário específico a lista de permissões de acesso a interface de rede, mas esta opção não foi testada afundo. Após o servidor ser inicializado o cliente é aberto e pode-se digitar o IP e porta do servidor para iniciar a conexão. No campo de texto “comando” é possível digitar um comando para que o servidor execute, como a proposta é trabalhar com o TCPDUMP o servidor trata apenas comandos relativos ao TCPDUMP.
Após a conexão com o servidor o cliente pode visualizar os pacotes recebidos pelo servidor enviando o comando “tcpdump -i wlan0” que corresponde, respectivamente, a iniciar o processo “tcpdump”, o parâmetro “-i” corresponde a interface que será monitorada e “wlan0” a respectiva interface monitorada.
Na Figura 3 é possível visualizar os pacotes capturados do servidor e exibidos na área de texto na tela do cliente.
[pic 3]Figura 3. Exemplo de pacotes capturados do servidor
Quando o comando “tcpdump -i wlan0” é recebido pelo servidor o mesmo cria um processo que fica executando em uma thread separada do resto da aplicação do servidor e esta thread trata de capturar os dados do TCPDUMP e enviar para o cliente.
...