Segurança hoje em dia é uma coisa séria e muito difícil de se fazer, nenhum sistema é totalmente seguro, mas podemos dificultar as coisas não é? Estudando segurança pela grande rede, achei o Snort, que é um sistema reconhecido pelos administradores de sistemas e já ganhou alguns prêmios. Utilizarei arquivos tgz para mantermos a organização do nosso Slackware.
1 - Crie e/ou recrie o arquivo /etc/rc.d/rc.snortd com o conteúdo abaixo:
#!/bin/bash
# $Id: S99snort,v 1.1 2001/12/18 22:14:37 cazz Exp $
# /etc/init.d/snort : start or stop the SNORT Intrusion Database System
#
# Written by Lukasz Szmit <ptashek@scg.gliwice.pl>
# Modificado por João Paulo de Oliveira Faria <joaopaulo@deoliveira.com.br>
#
# Configuration
# set config file & path to snort executable
SNORT_PATH=/usr/sbin
CONFIG=/etc/snort/snort.conf
# set interface or all for all
IFACE=eth0
# set GID/Group Name
SNORT_GID=snort
# set UID/User Name
SNORT_UID=snort
# other options
OPTIONS="-A fast -l /var/log/snort -D "
# End of configuration
test -x $SNORT_PATH/snort || exit 0
case "$1" in
start)
echo "Starting Intrusion Database System: SNORT"
$SNORT_PATH/snort -c $CONFIG -i $IFACE -g $SNORT_GID -u $SNORT_UID $OPTIONS
guardian.pl
if [ "`pidof $SNORT_PATH/snort`" ]; then
echo "SNORT is up and running!"
else
exit 0
fi
echo -n "."
;;
stop)
killall guardian.pl
echo "Stoping Intrusion Database System: SNORT"
if [ "`pidof $SNORT_PATH/snort`" ] ; then
kill -TERM `pidof $SNORT_PATH/snort`
# Wait until the timeout
count=120
numdots=0
while ([ $count != 0 ]) do
let count=$count-1
if [ "`pidof $SNORT_PATH/snort`" ] ; then
echo -n .
let numdots=$numdots+1
sleep 1
else
count=0
fi
done
# If it's not dead yet, kill it.
if [ "`pidof $SNORT_PATH/snort`" ] ; then
echo " TIMEOUT!"
kill -KILL `$SNORT_PATH/snort`
else
case $numdots in
0) echo "." ;;
1) echo ;;
*) echo " done." ;;
esac
fi
else
echo "SNORT is not running!";
fi
;;
restart)
$0 stop
$0 start
;;
*)
echo 'Usage: /etc/rc.d/rc.snortd {start|stop|restart}'
exit 1
;;
esac
exit 0
;;
2 - Dê permissão no arquivo:
# chmod +x /etc/rc.d/rc.snort
3 - Adicione o conteúdo abaixo no /etc/rc.d/rc.M ou no /etc/rc.d/rc.local:
# Start the Snort + Guardian:
if [ -x /etc/rc.d/rc.snortd ]; then
. /etc/rc.d/rc.snortd start
fi
[1] Comentário enviado por y2h4ck em 19/03/2005 - 01:35h
Cara bacana a iniciativa ... POREMMMM ahuah ta na hora de colocar a mão na ferida ...
Seguinte cara... vc falou do Guardian e do Snort e tudo mais blz ... so que vc nao tocou numa coisa ultra-importante para o funcionamento do seu esquema ... que é o pre-processor do snort "portscan" que vai fazer a detecção de Scans ...
afinal vc nao vai querer cometer o pecado de deixar o seu guardian analisando o snort.alert completo ou vai ????? imagine ... um falso positivo e booom ... o host esta dropped sem razão ...
portante se faz necessária a configuração do pre-processo para gerar um log a parte ... e assim o guardian ler aquele log e realizar as determinadas ações predefinidas ??
[2] Comentário enviado por fabio em 19/03/2005 - 07:03h
Fala João, o artigo está ótimo, mas também queria fazer umas observações. Você tá ficando acostumado a escrever artigos muito técnicos e acaba não se tocando nos pequenos detalhes que dificultam a vida dos "normais". Vamos lá:
1. Faltou uma introdução ao Snort. O que ele é e para que serve?
2. Faltou uma introdução ao Guardian. O que ele é e para que serve?
3. Você disse que mudou o Guardian, mas o que você mudou nele? Qual a vantagem da sua versão?
De resto, tudo bem completo. O lance de pré-processo o Anderson (y2h4ck) escreveu num de seus artigos falando sobre Snort também. Acho bacana darem uma lida como complemento, o Snort é bem extenso, quanto mais literatura, melhor:
[3] Comentário enviado por D3v1L em 21/03/2005 - 16:37h
No meu guardian.pl deu erro, precisamente linha 56
comentei o parâmetro "@junk=;" e ele funcionou, dei uma olhada no script e não achei mais nenhuma utilização deste junk, gostaria que o jpfaria verificasse.
[4] Comentário enviado por segment em 20/10/2005 - 18:06h
Ai D3v1L tbm obtive o mesmo pro. q o teu ai, deu exatamente erro de sintaxe desse =; do junk na linha 55, mas foi so retirar que fico legal. Bom o artigo fico muito bom kra, consegui fazer os lances aqui de prima, apesar que não tem mistérios, o artigo de facil de compreender, entao tudo rolo bem, :]
Vlw brow.
[6] Comentário enviado por demattos em 05/09/2006 - 20:53h
Gostaria de Saber se com o guardiam daria para fazer uma analize on line por uma pagina ou seja home page, em tempo real e analizar este logs tambem por este site
[7] Comentário enviado por leandrojpg em 18/01/2010 - 14:29h
Show de bola o tutorial, mas só tem um problema fiz tudo passa a passop e me reportou a msg na hora de iniciar
"OS shows Linux
Warning! Logfile is not writeable! Engaging debug mode, output to STDOUT
Warning! Could not find guardian_unblock.sh. Guardian will not be
able to remove blocked ip addresses. Please consult the README file
My ip address and interface are: 150.164.192.210 eth0
Loaded 0 addresses from /etc/guardian.ignore
Running in debug mode.."
E outro eu tento dar um tail -f para ver o log e nao processa nada trava e nao me reporta nada.
será que alguem pode me ajudar, nos mais valeu pelo psot.!!!