Análise de conexões ativas
Publicado por Djair Dutra C. Jr. 13/12/2006
[ Hits: 9.023 ]
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
Backup automatico em dois computadores via local e NFS
Backup dos arquivos e diretórios de um servidor com XMAIL e Iptables para um servidor central de Bac
Montagem e desmontagem de dispositivos
Quebra-Galho-Faz-tudo-Configurator
Atualizar o macOS no Mac - Opencore Legacy Patcher
Crie alias para as tarefas que possuam longas linhas de comando - bash e zsh
Criando um gateway de internet com o Debian
Configuração básica do Conky para mostrar informações sobre a sua máquina no Desktop
Aprenda a criar músicas com Inteligência Artificial usando Suno AI
Instalando e usando o Dconf Editor, o "regedit" para Linux
Como instalar o navegador TOR no seu Linux
Instalando Zoom Client no Ubuntu 24.04 LTS
Encriptografa... as particoes com LUKS, o que poderia dar errado? (0)
Qual a relevancia dos valores de bogomips com os Mhz e Ghz[DUVIDA] (2)