Análise de conexões ativas
Publicado por Djair Dutra C. Jr. 13/12/2006
[ Hits: 9.292 ]
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 de backup de múltiplos diretórios + LOG
Criar imagem ISO a partir de CD
vid2mp3 - extrai áudio em mp3 de arquivos de vídeo com mplayer
Atualizando o Passado: Linux no Lenovo G460 em 2025
aaPanel - Um Painel de Hospedagem Gratuito e Poderoso
O macete do Warsaw no Linux Mint e cia
Git config não aplica configurações
O que você quer para sua vida ao usar o Linux?
Visualizar arquivos em formato markdown (ex.: README.md) pelo terminal
Como bloquear e desbloquear papel de parede no Ubuntu 24.04 (3)
Criar um servidor de arquivos local com o ubuntu server e o samba? (1)
Falhas em startar o mongodb [RESOLVIDO] (3)
samba4 versao 4.22.3 usuario nao consegue trocar a senha (2)