SNORT (Sitema de Detecção de Intrusos) baseado em IPTABLES

Started by KEst, 14 de May , 2006, 01:52:33 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

KEst

Sistema de Detecção de Intrusos

Snort (IDS)


Sistema de detecção de intrusos são poderosas ferramentas na implementação da segurança em redes de computadores, e o Snort é o mais conhecido e utilizado IDS no mundo Linux.
Seu funcionamento é bastante simples, ele realiza a análise de pacotes que passam pelo sistema a procura de sinais que possam indicar comportamento anormal, quando ele detecta algum tipo de anormalidade nos pacotes, compara com um banco de dados de assinaturas digitais e, se indicar ataque, é gerado um alerta nos arquivos de logs. Isto é um problema, pois somente os logs não impedem que o ataque continue e o Snort não é compilado com a capacidade de bloquear os hosts de onde surgem os ataques.
Portanto, é necessário instalar o Snort com a capacidade de "resetar" as conexões que indiquem possíveis ameaças.
È bom lembrar que, para o funcionamento correto do Snort, é preciso instalar o Libpcap, que é utilizado para habilitar a captura de pacotes.
Após fazer o download, é necessário descompactá-lo antes de efetuar a instalação.
Para descompactar, execute o seguinte comando:
#  tar -zxvf libpcap-0.8.1.tar.gz
Acesse o diretório que foi criado após o Libpcap ser descompactado:
# cd libpcap-0.8.1[/u]
Para continuar com a instalação, execute o arquivo de configuração.
# ./configure
# make
# make install
Após instalar o Libpcap, comece a instalação do (download) Snort, caso não o tenha em CD.
Após o download, descompacte o arquivo e use:
# tar -zxvf snort-2.1.0.tar.gz
Acesse o diretório criado:
# cd snort-2.1.0
Esse é o ponto crucial da instalação do Snort, porque a maioria das pessoas realiza a instalação, utiliza a configuração padrão, pois desconhecem ou ignoram os parâmetros adicionais. A configuração padrão apenas gera logs com avisos das tentativas de ataques, porém, com o parâmetro -enable-flexrep, podemos habilitar respostas a incidentes.
Inicie a instalação
# ./configure -enable-flexresp
# make
# make install
Depois de instalado, crie os diretórios Snort em /etc/, e rule, em /etc/snort/, para as configurações e regras, respectivamente, execute:
# mkdir /etc/snort
# mkdir /etc/snort/rules
Acesse o diretório /etc e, depois, copie todos os arquivos para o diretótio de configuraçã do Snort.
# cd etc
# cp * /etc/snort
Agora, crie um grupo para o Snort, que também poderá ser denominado snort, e depois, um usuário.
#groupadd snort
#useradd snort -g snort
Crie, também, um diretório para o logs que forem gerados.
# mkdir /var/log/snort
Faça com que o usuário e o grupo snort/snort sejam os proprietários dos diretórios /etc/snort e /var/log/snort, dessa forma, eles terão acesso de leitura e gravação.
# chown -R snort.snort /etc/snort
# chown -R snort.snort /var/log/snort
Para que o Snort seja confiável, é necessário que hajamregras atualizadas
# tar -zxvf snortrules-stable.tar.gz
# cd rules
# cp * /etc/snort/rules
Agora, editaremos o arquivo /etc/snort/snort/conf, localiza a linha que contém var RULE_PATH ../rules e faça a alteração de forma que fique var RULE_PATH /etc/snort/rules, isto apontará as regras para a localização real do arquivo de regras. Feito isto, encontre var HOME_NET any e altere para o número IP de rede local. Após essas modificações, você terá:
var HOME_NET 10.0.0.0/255.255.255.0
Você pode testar e verificar se o Snort está funcionando corretamente:
#snort -1 /var/log/snort -c /etc/snort/snort.conf -u snort -g snort
Para entender o que aconteceu na linha anterior, uma breve explicação:
-/ é usado para indicar onde serão gravados os logs gerados no caso /var/log/snort.
-c indica onde está o arquivo configuração, /etc/snort/snort.conf.
-u qual usuário.
-g o grupo.

Edite o /etc/snort/snort.conf e acrescente var REINICIAR resp:rst_all, icmp_all; essa variável deve ser incluída no início do arquivo.

Abra qualquer arquivo de regras, pode ser o dos.rules e adicione no final de cada regra a variável $REINICIAR, pois ela será responsável pela finalização da conexão do atacante.

Este é o arquivo DoS Rules sem as alterações:  somente exemplo:

Quote# DoS Rules
# ________
alert udp $EXTERNAL_NET any - > $HOME_NET 161 (msg: "DOS Cisco null snmp" ; dsize: 0; reference: arachnids, 536; )
alert tcp $EXTERNAL_NET any - > $HOME_NET 1347 (msg: "DOS Symantec Ghost config server" ; dsize: >1600; flags: A+; reference: arachnids, 494; )

Agora, com a variável $REINICIAR, deverá ficar assim:

Quote# DoS Rules
# ________ $REINICIAR
alert udp $EXTERNAL_NET any - > $HOME_NET 161 (msg: "DOS Cisco null snmp" ; dsize: 0; reference: arachnids, 536;  $REINICIAR;)
alert tcp $EXTERNAL_NET any - > $HOME_NET 1347 (msg: "DOS Symantec Ghost config server" ; dsize: >1600; flags: A+; reference: arachnids, 494; $REINICIAR;)






É possível utilizar o Snort para conter o acesso a determinados sites, auxiliando o Squid no controle, basta criar suas próprias regras para isto.

Para criar regras, é possivel usar o modelo a seguir e fazer as modificaçõs necessárias.

Alert tcp $HOME_NET any -> $EXTERNAL_NET $HTTP_PORTS (msg: "Tentativa de acesso a site de conteúdo ADULTO" ; content:"sexo"; nocase; $REINICIAR;)

Essa regras possui três pontos importantes: a mensagem após msn: "Tentativa de acesso a site de conteúdo ADULTO", o conteúdo que deve ser filtrado é atribuído em content: "sexo" e a variável $REINICIAR. Para criar mais regras desse tipo, basta alterar a mensagem na variável msg e conteúdo em content.

Reinicie o Snort e, agora, seu Sistema de Detecção de Intrusos está pronto.
#snort -d -h 200.145.3.0/24 -c snort.conf -1 /var/log/snort

É muito importante verificar os logs gerados para conferir como anda a saúde de sua rede.


Fonte: Redes Locais com Linux
Autor: Douglas Viliazzi

Campanha Converta-se a Gnu is Not Unix/Linux

Shady



Mundus Vult Decipi

Cloudy

"You have to be trusted by the people tou lied to, so when they turn their back on you, you have the chance to the put the knife in." (Roger Waters)

...by Cloudy