Análise de conexões ativas
Publicado por Djair Dutra C. Jr. 13/12/2006
[ Hits: 9.176 ]
Este script traz as conexões abertas por um IP e informa as portas e IPs usados ao longo das conexões.
Ao criar não achei utilidade, mas depois vi que pode ajudar em certas tarefas. Usei uma vez para detectar um vírus no PC de um cliente que estava abrindo silenciosamente 128 conexões e fazendo uploads de arquivos, deixando a internet lenta.
Espero que possa ajudar a mais alguém também.
#!/bin/sh ###################################################### ##### Script para verificação de tráfego na rede ##### ##### Desenvolvido por: Djair Dutra C. Jr. ##### ##### djairdutra@hotmail.com ##### ##### 27/11/2006 ##### ###################################################### rm -rf destinos ajuda(){ clear echo -e '{FONTE}33[40;33;7;1m'"========================== A J U D A =========================="`echo -e '{FONTE}33[40;33;0;1m'` echo "Após a execução do script informe o ip e os parâmetros desejados:" echo "Exemplo:" echo "./analisador ip [ -ips | -portas ]" echo echo "Parâmetros:" echo echo "-ips Mostra todos os ips de destino usados nas conexões." echo "-portas Mostra todas as portas de destino usadas nas conexões." echo "-todos Mostra todos os ips e portas usados nas conexões." echo } start(){ # total_bytes_upload tbu=0 # total_pacotes_upload tpu=0 # total_bytes_down tbd=0 # total_pacotes_download tpd=0 qtd=`cat /proc/net/ip_conntrack | grep -w $ip | grep ESTABLISHED | grep -c -v ^#` ativas=`cat /proc/net/ip_conntrack | grep -w $ip | grep -v ^# | grep tcp | grep ESTABLISHED | tr -s ' ' ',' | cut -d , -f 5,6,7,8,9,10,11,12,13,14,15,16` # Limpando a variável ativas=`echo $ativas | sed "s/src=//g" | sed "s/dst=//g" | sed "s/dport=//g" | sed "s/sport=//g"| sed "s/packets=//g" | sed "s/bytes=//g"` clear for i in `echo $ativas`;do # Definindo os valores atuais (UPLOAD) u_ip_origem=`echo $i | cut -d , -f 1` u_ip_destino=`echo $i | cut -d , -f 2` u_porta_origem=`echo $i | cut -d , -f 3` u_porta_destino=`echo $i | cut -d , -f 4` u_pacotes=`echo $i | cut -d , -f 5` u_bytes=`echo $i | cut -d , -f 6` tpu=`expr $tpu + $u_pacotes` tbu=`expr $tbu + $u_bytes` # Definindo os valores atuais (DOWNLOAD) d_ip_origem=`echo $i | cut -d , -f 7` d_ip_destino=`echo $i | cut -d , -f 8` d_porta_origem=`echo $i | cut -d , -f 9` d_porta_destino=`echo $i | cut -d , -f 10` d_pacotes=`echo $i | cut -d , -f 11` d_bytes=`echo $i | cut -d , -f 12` tpd=`expr $tpd + $d_pacotes` tbd=`expr $tbd + $d_bytes` echo "$u_ip_destino,$u_porta_destino,$u_bytes,$d_bytes" >> destinos # Cálculos para KB KB_d_bytes=`expr $d_bytes "/" 1024` KB_u_bytes=`expr $u_bytes "/" 1024` # Cálculos para MB MB_d_bytes=`expr $d_bytes "/" 1048576` MB_u_bytes=`expr $u_bytes "/" 1048576` echo "_________________________________________________________________" echo "ORIGEM: $u_ip_origem:$u_porta_origem ==> DESTINO $u_ip_destino:$u_porta_destino" echo "Upload : `echo -e '{FONTE}33[40;33;1;1m'` ($u_bytes Bytes) ($KB_u_bytes Kbytes) ($MB_u_bytes Mbytes) `echo -e '{FONTE}33[40;33;0;1m'`" echo "Download: `echo -e '{FONTE}33[40;33;1;1m'` ($d_bytes Bytes) ($KB_d_bytes Kbytes) ($MB_d_bytes Mbytes)`echo -e '{FONTE}33[40;33;0;1m'`" done resumo } resumo(){ echo -e '{FONTE}33[40;33;7;1m'"========================== R E S U M O =========================="`echo -e '{FONTE}33[40;33;0;1m'` # Cálculos para KB KB_tbu=`expr $tbu "/" 1024` KB_tbd=`expr $tbd "/" 1024` # Cálculos para MB MB_tbu=`expr $tbu "/" 1048576` MB_tbd=`expr $tbd "/" 1048576` qtdportas=`cat destinos | cut -d , -f 2 | sort | uniq | grep -c -v ^' '` qtddestinos=`cat destinos | cut -d , -f 1 | sort | uniq | grep -c -v ^' '` portas=`cat destinos | cut -d , -f 2 | sort | uniq | tr "\n" ' '` destinos=`cat destinos | cut -d , -f 1 | sort | uniq | tr "\n" ' '` if [ "$qtd" -gt "1" ]; then echo "Existem $qtd conexões ativas do ip $ip." echo "Upload Acumulado : ($tbu Bytes) ($KB_tbu Kbytes) ($MB_tbu Mbytes) - $tpu pacotes" echo "Download Acumulado: ($tbd Bytes) ($KB_tbd Kbytes) ($MB_tbd Mbytes) - $tpd pacotes" elif [ "$qtd" == "1" ]; then echo "Existe $qtd conexão ativa do ip $ip." echo "Upload Acumulado : ($tbu Bytes) ($KB_tpu Kbytes) ($MB_tpu Mbytes) - $tpu pacotes" echo "Download Acumulado: ($tbd Bytes) ($KB_tbd Kbytes) ($MB_tpd Mbytes) - $tpd pacotes" elif [ "$qtd" == "0" ]; then echo "Não há nenhuma conexão ativa para o ip $ip." fi } ips(){ echo echo "$qtddestinos IPs de destino usados: $destinos" } portas(){ echo echo "$qtdportas portas de destino usadas: $portas" } ############################################################################### # Quantidade de parâmetros passados parametros="$#" # Recebendo o ip a ser verificvado ip="$1" if [ "$1" == "" ]; then ajuda else if [ "$2" == "" ]; then start elif [ "$2" == "-ips" ]; then start ips rm -rf destinos elif [ "$2" == "-portas" ]; then start portas rm -rf destinos elif [ "$2" == "-todos" ]; then start portas ips rm -rf destinos fi fi
Script simples de backup de arquivos em máquina remota
Script para Gerar Chave SSH - Atualizado 2021
Seletor de wallpaper para fluxbox modo grafico
Título: Descobrindo o IP externo da VPN no Linux
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Encontre seus arquivos facilmente com o Drill
Mouse Logitech MX Ergo Advanced Wireless Trackball no Linux
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
qual tipo de interface linux para processador do tipo apu (9)
Alternar as janelas clicando na barra de tarefas (2)
Agora temos uma assistente virtual no fórum!!! (244)
Ubuntu 22.04 / Bluethooth - Falha na conexão BlueZ | Não conecta caixa... (6)