Corrigindo bug do imsniff 0.04 com um simples script (gambiarra)
Dica publicada em Shell Script / Avançado
Corrigindo bug do imsniff 0.04 com um simples script (gambiarra)
O Imsniff 0.04 não é uma versão muito estável e por algum motivo o processo morre após alguns minutos. Para corrigir esse erro encontrei uma maneira fácil: o script é simples, ele apenas mata o processo e o reinicia:
Onde:
Depois é só jogar o script na cron:
# crontab -e
Onde */2 significa que a cada 2 minutos o script (/etc/imsniff/script) será executado.
#!/bin/bash
killall -HUP imsniff
/etc/imsniff/imsniff -cd /etc/imsniff/msn_log -v eth1 &
killall -HUP imsniff
/etc/imsniff/imsniff -cd /etc/imsniff/msn_log -v eth1 &
Onde:
- killall -HUP imsniff - mata o processo se ele estiver em execução;
- /etc/imsniff/imsniff - é o caminho do arquivo que o executa;
- -cd /etc/imsniff/msn_log -v eth1 & - indica o caminho onde ele irá gerar os logs das conversas do MSN capturadas pela interface eth1 e o & serve para não mostrar os detalhes da execução.
Depois é só jogar o script na cron:
# crontab -e
*/2 * * * * /etc/imsniff/script
Onde */2 significa que a cada 2 minutos o script (/etc/imsniff/script) será executado.
Ao invés de ficar matando e reiniciando o processo do imsniff a cada 2 minutos.... melhor fazer um script que verifique se ele esta rodando, caso ele não esteja rodando, ai sim será iniciado:
Primeiro adicione esta linha no crontab:
*/2 * * * * root /etc/init.d/verifica-imsniff.sh
Depois crie o arquivo:
vim /etc/init.d/verifica-imsniff.sh
com este conteúdo:
---------------------
#!/bin/bash
#Verifica se o processo esta rodando e joga o valor 0 ou 1 numa variavel
VERIFICA=`ps aux | grep "imsniff -cd" | grep -v "grep" | wc -l`
# Caso esteja parado, ele iniciará o imsniff novamente, se estiver rodando não fará nada
if [ $VERIFICA -eq 0 ]; then
echo "Parado :("
echo "Startando...."
/usr/bin/imsniff -cd /var/log/imsniff/conversation -dd /var/log/imsniff/debug -vvv eth0 &
echo "Startado!"
fi
--------------------
abraços