Tornando o Snort um IPS
Como IPS o snort atua de forma transparente na rede trabalhando como uma ponte(bridge). Todo o tráfego de rede passará por ele, que verificará o conteúdo dos pacotes, e no caso encontrar alguma ameaça à rede o pacote poderá ser descartado.
A topologia adequada para implantação do IPS é a que podemos observar na figura abaixo, onde o Snort fica posicionado anteposto ao firewall, verificando e filtrando todo o tráfego direcionado a rede a ser protegida.
Para que o snort opere em modo IPS, o mesmo deve ser inicializado com os seguintes parâmetros:
/usr/local/bin/snort -q --daq afpacket -u snort -g snort -c /etc/snort/snort.conf -i eth0:eth1 -Q &
/usr/local/bin/barnyard2 -q -c /etc/snort/barnyard2.conf -d /var/log/snort -f snort.log -w /etc/snort/bylog.waldo \
-G /etc/snort/gen-msg.map -S /etc/snort/sid-msg.map -C /etc/snort/classification.config 2> /dev/nul &
Sendo que as interfaces eth0 e eth1 formarão a ponte. Para ter acesso ao computador via ssh (terminal) e http (acesso ao BASE) a máquina deverá possuir uma terceira interface para gerenciamento, pois não é atribuído IP à bridge, não permitindo acessar a mesma remotamente.
Não é aconselhado que a interface de gerenciamento seja ligada a rede interna, mas a uma rede secundária sem acesso a rede interna (ex:VLAN). Dessa forma, evita-se que em uma eventual invasão da máquina hospedeira do IPS, o invasor tenha acesso a rede interna através da interface de gerenciamento.
Script de inicialização para o Snort com Banyard
# vi /etc/init.d/snort-barn
Cole o conteúdo abaixo no arquivo.
#! /bin/sh
#
### BEGIN INIT INFO
# Provides: snortbarn
# Required-Start: $remote_fs $syslog mysql
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# X-Interactive: true
# Short-Description: Start Snort and Barnyard
### END INIT INFO
. /lib/init/vars.sh
. /lib/lsb/init-functions
mysqld_get_param() {
/usr/sbin/mysqld --print-defaults \
| tr " " "\n" \
| grep -- "--$1" \
| tail -n 1 \
| cut -d= -f2
}
do_start()
{
log_daemon_msg "Starting Snort and Barnyard" ""
# Make sure mysql has finished starting
ps_alive=0
if [ $ps_alive -lt 1 ];
then
pidfile=`mysqld_get_param pid-file`
if [ -f "$pidfile" ] && ps `cat $pidfile` >/dev/null 2>&1; then ps_alive=1; fi
sleep 1
fi
ifconfig eth0 0.0.0.0 promisc up
ifconfig eth1 0.0.0.0 promisc up
/usr/local/bin/snort -q --daq afpacket -u snort -g snort -c /etc/snort/snort.conf -i eth0:eth1 -Q &
/usr/local/bin/barnyard2 -q -c /etc/snort/barnyard2.conf -d /var/log/snort -f snort.log -w /etc/snort/bylog.waldo \
-G /etc/snort/gen-msg.map -S /etc/snort/sid-msg.map -C /etc/snort/classification.config 2> /dev/nul &
log_end_msg 0
return 0
}
do_stop()
{
log_daemon_msg "Stopping Snort and Barnyard" ""
kill $(pidof snort) 2>> /dev/null 1>> /dev/null
kill $(pidof barnyard2) 2>> /dev/null 1>> /dev/null
log_end_msg 0
return 0
}
case "$1" in
start)
do_start
;;
stop)
do_stop
;;
restart)
do_stop
do_start
;;
*)
echo "Usage: snort-barn {start|stop|restart}" >&2
exit 3
;;
esac
exit 0
Marque o arquivo como executável e adicione na inicialização através dos seguintes comandos:
# chmod +x /etc/init.d/snortbarn
# insserv -f -v snortbarn
Snort e barnyard serão inicializados automaticamente.
Considerações finais
As configurações apresentadas são básicas, para um melhor aproveitamento das ferramentas apresentadas, principalmente do Snort, recomendo a leitura do manual, que apesar de extenso é muito importante para o entendimento das configurações das ferramentas.
Bibliografia
Manual de usuários:
https://www.snort.org/assets/166/snort_manual.pdf;
Snort 2.9.0.5 on Debian 6.0:
https://www.snort.org/assets/167/deb_snort_howto.pdf;
Snort 2.9.0.5 on Ubuntu 10.04 LTS:
https://www.snort.org/assets/158/011-snortinstallguide2905.pdf ;
Instalando e configurando Oinkmaster:
https://lswiki.byu.edu/index.php/File:Installing_and_configuring_OinkMaster.pdf ;
Melhorando a segurança do Firewall com Bridges usando Snort_Inline no Debian Etch:
http://www.vivaolinux.com.br/artigo/Melhorando-a-seguranca-do-Firewall-com-Bridges-usando-Snort_Inline-no-Debian-Etch;
Ferramentas de Respostas a Incidentes de Segurança:
http://www.pop-pi.rnp.br/artigos/ferramentas_respostas_incidentes%20-%20eric.pdf.