Tutoriais/Seguranca/snort-block
De UnderLinux Wiki
Snort com bloqueio automático a ataque
Por Eliézer dos Santos Magalhães
O Snort é uma ferramenta largamente utilizada pela comunidade linux, porém normalmente utilizado apenas para detectar ataques, não utilizando a capacidade que ele tem de bloquear estes ataques.
Neste pequeno tutorial, vamos instalar o Snort com a capacidade de resetar as conexões que possam ser um possivel ataque Antes de instalar o Snort, você vai precisar do libpcap que pode ser baixado aqui : http://www.tcpdump.org/release/libpcap-0.7.2.tar.gz
bash# tar -zxvf libpcap-0.7.2.tar.gz bash# cd libpcap-0.7.2/ bash# ./configure bash# make bash# make install
Vamos começar com a instalação do Snort, que pode ser baixado aqui: http://www.snort.org/dl/snort-2.0.0.tar.gz
bash# tar -zxvf snort-2.0.0.tar.gz bash# cd snort-2.0.0/ bash# ./configure -enable-flexresp bash# make bash# make install bash# mkdir /etc/snort bash# mkdir /etc/snort/rules bash# cd etc bash# cp * /etc/snort bash# groupadd snort bash# useradd snort -g snort bash# mkdir /var/log/snort bash# chown -R snort.snort /etc/snort bash# chown -R snort.snort /var/log/snort
Agora baixe o arquivo atualizado com as regras do Snort em : http://www.snort.org/dl/rules/snortrules-stable.tar.gz
bash# tar -zxvf snortrules-stable.tar.gz bash# cd rules bash# cp * /etc/snort/rules
Edite o arquivo /etc/snort/snort.conf e procure por "var RULE_PATH ../rules" e altere para
"var RULE_PATH /etc/snort/rules"
agora procure por "var HOME_NET any" e altere para o IP da sua rede, por exemplo :
"var HOME_NET 10.0.0.0/255.255.255.0"
agora vamos testar :
bash# snort -l /var/log/snort -c /etc/snort/snort.conf -u snort -g snort
Se ele der uma mensagem de erro e voltar pro shell é porque ficou faltando alguma coisa ainda, reveja os passos anteriores e tente novamente, mas se ele não mostrou nenhuma mensagem de erro é porquê funcionou. Pressione para parar o snort.
Agora vamos para o mais interessante , bloqueio de ataques. Se você não colocou a opção -enable-flexresp quando compilou o snort, essas opções não vão funcionar.
Abra o /etc/snort/snort.conf novamente e adicione as seguintes linhas no início do arquivo:
Var RESETAR resp:rst_all,icmp_all
Agora, para testar você pode abrir o arquivo /etc/snort/rules/web-iis.rules e procurar pela regra que detecta o famoso ataque "unicode", procure por "cmd.exe" :
alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:"WEB-IIS cmd.exe access";
flow:to_server,established; content:"cmd.exe"; nocase; classtype:web-application-attack; sid:1002; rev:5;)
e adicione no final, o commando que reseta a conexão , ficando assim :
alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:"WEB-IIS cmd.exe access"; flow:to_server,established; content:"cmd.exe"; nocase; classtype:web-application-attack; sid:1002; rev:5;$RESETAR;)
Você pode adicionar o $RESETAR no final de cada regra que você achar interessante, principalmente aquelas que normalmente aparecem no seu log. Só preste atenção para não bloquear outros tipos de acessos, que muitas vezes são detectados pelo snort como ataque, mas que na realidade não são.
Você pode utilizar o snort para bloquear acesso a determinados sites que você não quer que a sua rede acesse, criando regras que procurem por palavras chave do tipo : ".mp3" ,"sexo", etc...
Exemplo :
alert tcp $HOME_NET any -> $EXTERNAL_NET $HTTP_PORTS (msg:"Tentativa de baixar MP3";content:".mp3";nocase;$RESETAR;)
agora execute o Snort :
bash# snort -l /var/log/snort -c /etc/snort/snort.conf -u snort -g snort -D
Daí pra frente depende da sua imaginação ...
Eliézer dos Santos Magalhães
cyber@snike.com.br


