Visite também: BR-Linux ·  VivaOLinux ·  LinuxSecurity ·  Dicas-L ·  NoticiasLinux ·  SoftwareLivre.org ·  [mais]

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