Filtro de origem TCPDUMP
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