Filtro de origem TCPDUMP

De Wiki Clusterlab.com.br
Revisão de 12h07min de 30 de janeiro de 2018 por Damato (discussão | contribs)
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
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