Filtro de origem TCPDUMP

De Wiki Clusterlab.com.br
Ir para navegação Ir para pesquisar

Este scripts server para ser executado em um servidor para uma ou mais interfaces de rede para filtrar a origem das comunicações com o servidor analisado.

#!/bin/bash
function ARQTEMP() {
        case $1 in
                criar) mktemp
                        ;;
                apagar) 
                        rm -fr $2
                        ;;
        esac
}
function analisar() {
        mkfifo fila
        while true
        do
                echo Loop de analise PID $$
                tcpdump -i $1 -nn -c $2 not arp and dst host $(ip addr show $1 | grep -w inet | awk '{print $2}' | awk -F \/ '{print $1}') 2>/dev/null > fila
        done
}
function filtrar() {
        while true
        do
                ArquivoTemp=$(ARQTEMP criar)
                cat fila | awk '{print $3 " " $5}' | \
			while read origem destino
			do
				echo $(echo $origem | awk -F . '{print $1 "." $2 "." $3 "." $4}') $destino
			done > $ArquivoTemp
                cat dados >> $ArquivoTemp
                cat $ArquivoTemp | sort -u > dados
                ARQTEMP apagar $ArquivoTemp
                date
                wc -l dados
        done
}
function AJUDA() {
        echo \#HELP
        echo \#$0 \<filtrar\|analisar\> \<interface de rede\> \<numero de amostras\>
        echo \#Exemplo:
        echo \#$0 analisar ens160 10000
        exit 1
}
case $# in
        1)
                case $1 in
                        filtrar)
                                filtrar
                                ;;
                        *)
                                AJUDA
                                ;;
                esac
                ;;
        3)
                case $1 in
                        analisar)
                                analisar $2 $3 &
                                ;;
                        *)
                                AJUDA
                                ;;
                esac
                ;;
        *)
                AJUDA
esac