Segunda-feira, 29/06/2009 - 09:00 - Por Júlio Henrique ConceiçãoDerrubando conexões estabelecidas
Seções relacionadas:Os Administradores de Redes costumam, muitas vezes, receber reclamações de lentidão no acesso à Internet. Utilizando as ferramentas apropriadas, podemos descobrir se existe alguém que esteja consumindo banda em atividades não relacionadas ao trabalho. Mas como interromper a conexão e liberar a banda para o restante dos usuários da rede?
Introdução
Depois de visualizar a dica sobre o sqstat e implementá-lo, fiquei pensando, será que é possível interromper uma conexão que está consumindo banda, como um download ou uma exibição de vídeo, por exemplo?
Depois de pesquisar, cheguei ao tcpkill, que faz parte do pacote dsniff.
Instalação
Para instalar o pacote dsniff e utilizar o comando tcpkill em uma máquina Red Hat, Fedora ou CentOS, podemos recorrer ao yum.
# yum install dsniff
Uma vez instalado, o comando tcpkill estará disponível em /usr/sbin/tcpkill.
Utilização
A sintaxe do comando tcpkill é bem parecida com a do comando tcpdump, bastante conhecida pelos administradores Linux.
# tcpkill -i
{ expressão } Supondo que seu firewall é uma máquina Linux com o pacote dsniff instalado, e que você visualizou, através do sqstat ou do iptraf, que o endereço IP 192.168.0.123 está realizando um download via http de uma imagem de cdrom (iso) com 700Mb, através do IP 200.200.200.1, e que a interface LAN do firewall é eth0.
O exemplo abaixo interromperia todas as conexões desta máquina:
# tcpkill -i eth0 host 192.168.0.123
Já o comando a seguir interromperia nesta máquina as conexões com destino à porta 80:
# tcpkill -i eth0 host 192.168.0.123 and port 80
O próximo comando interromperia as conexões entre os IPs 192.168.0.123 e 200.200.200.1:
# tcpkill -i eth0 host 192.168.0.123 and host 200.200.200.1
E o comando abaixo interromperia todas as conexões à porta 80:
# tcpkill -i eth0 port 80
Considerações
Muita atenção com o comando abaixo:
# tcpkill -i eth0
Pois ele irá interromper todas as conexões vindas da interface eth0, inclusive a sua, caso esteja fazendo acesso remoto ao servidor.
Para que isso não aconteça, a sintaxe deve ser:
# tcpkill -i eth0 not host 192.168.0.200
Onde 192.168.0.200 é o IP da sua máquina
- É importante atentar ao fato que o comando tcpkill permanecerá em execução até que seja interrompido com um CTRL + C. Isso significa que, enquanto o comando estiver em execução, qualquer nova tentativa de conexão será rejeitada.
Avançando
Em princípio, pensei que o comando tcpkill funcionasse, somente, se fosse executado através da máquina firewall da rede (aquela pela qual a conexão obrigatoriamente "passa").
Porém, fiz testes em uma máquina diferente do firewall, conectada a uma porta do switch que espelhava (port mirroring) a porta do firewall; neste cenário, o comando tcpkill também conseguiu interromper as conexões.
Isso é realmente interessante, uma vez que, mesmo em ambientes nos quais não há um firewall Linux, é possível aproveitar o poder desta plataforma para monitorar a atividade da rede (usando o ntop, por exemplo) e atuar, caso necessário, utilizando o comando tcpkill.
Conclusão
Neste artigo, vimos uma introdução ao comando tcpkill, mais uma importante ferramenta no dia-a-dia de um Administrador de Redes. Para mais informações, consulte a página de manual.
# man tcpkill
Até a próxima!
iMasters - Derrubando conexões estabelecidas - Linux
terça-feira, julho 21, 2009
iMasters - Derrubando conexões estabelecidas - Linux
Assinar:
Postar comentários (Atom)
Nenhum comentário:
Postar um comentário