Bom gente eu fiz um mini IDS baseado no lsof, ele ao ser iniciado, o script lembra da configuração de portas atual. A cada 10 segundos ele chama o lsof para obter a lista de portas abertas comparando com o último status, caso ocorra alguma alteração o script avisa o administrador pelo e-mail.
Código:
#!/bin/bash
MAILTO="root"
HOSTNAME='hostname'
getports() {
lsof -i -n -p | awk "/LISTEN/{print $1"/"$3/"$8} | sort -u
}
VELHO="$(getports)"
echo -e "Comece com o seguinte arranjo de portas:\n$VELHO"
while sleep 10 ; do
NOVO="$(getports)"
if test "$VELHO" != "$NOVO" ; then
echo "Arranjo de portas alterado. Notificando o administrador por e-mail"
mail -s "Atencao: Status de escuta de $HOSTNAME foi alterado" $MAILTO << EQF
Status Antes da Alteracao:
$VELHO
Status apos a alteracao:
$NOVO
EPF
fi
VELHO="$NOVO"
done