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.gzAcesse 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 installApó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.gzAcesse o diretório criado:
# cd snort-2.1.0Esse é 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 installDepois 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/rulesAcesse o diretório /etc e, depois, copie todos os arquivos para o diretótio de configuraçã do Snort.
# cd etc
# cp * /etc/snortAgora, crie um grupo para o Snort, que também poderá ser denominado snort, e depois, um usuário.
#groupadd snort
#useradd snort -g snortCrie, também, um diretório para o logs que forem gerados.
# mkdir /var/log/snortFaç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/snortPara que o Snort seja confiável, é necessário que hajamregras atualizadas
# tar -zxvf snortrules-stable.tar.gz
# cd rules
# cp * /etc/snort/rulesAgora, 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 snortPara 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:
# 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:
# 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
100+[/b]