Snort em modo defensivo com Flex Response 2

Neste artigo mostro como instalar, configurar e criar regras para o Snort em modo defensivo com Flex Response 2, a partir do código-fonte.

[ Hits: 28.676 ]

Por: Leonardo em 23/08/2008


Instalação



O Snort é um IDS (Intrusion Detection System ou Sistema de Detecção de Intrusão). Na sua instalação básica ele só funciona em modo sniffer (captura de pacotes da rede) e em modo de registro (logs de alertas de ataques). É possível instalar o Snort através de pacotes pré-compilados utilizando o yum do CentOS ou apt-get do Debian.

Na instalação do Snort através de pacotes pré-compilados os modos flexresp e flexresp2 não estão disponíveis. Esses modos permitem que a máquina com Snort envie pacotes para a máquina suspeita e para a máquina alvo, fechando as conexões se elas forem estabelecidas.

Também é possível enviar pacotes ICMP com mensagem de destino ou rede inalcançáveis para máquina de origem dos pacotes. Enviando mensagens deste tipo o IDS protege a máquina/rede alvo. A máquina suspeita terá a impressão de que não existe a máquina/rede com o endereço utilizado por ela.

Os registros dos Snort são no formato tcpdump. Para visualizar e poder utilizar filtros na visualização é recomendado utilizar o tcpdump ou o wireshark.

Compilação e instalação do Snort

Podemos obter o Snort através do link abaixo.
Pacotes necessários para a instalação do Snort:
  • libpcap
  • libpcre
  • tcpdump
  • openssl
  • libdnet
  • mysql (para gravação de logs no banco de dados MySQL)
  • postgresql (para gravação de logs no banco de dados PostgreSQL)
  • gcc
  • g77
  • libpcre3-dev
  • libnet0-dev

Depois de efetuar o download do Snort devemos descompactá-lo. Para descompactar os dados do pacote snort.tar.gz devemos executar o seguinte comando:

# tar -zxvf snort.tar.gz

Após ter descompactado os dados, devemos entrar na pasta que foi gerada com o comando tar:

# cd snort

Dentro da pasta devemos executar o seguinte comando, como root:

# ./configure --prefix=/etc/snort --with-libdnet --with-openssl --with-mysql --enable-flexresp2

Só é necessário passar os parâmetros "--with-postgresql" ou "--with-mysql"" se for utilizar algum dos bancos de dados para registrar os logs de eventos e alertas do Snort. Se não for necessário utilizar o Snort em modo defensivo, não é preciso passar o parâmetro "--enable-flexresp" ou "--enable-flexresp2". O parâmetro "--prefix=" indica o local onde o Snort será instalado e é necessário que a pasta indicada exista.

Após tomar todas as medidas devemos executar os seguintes comandos para finalizar a compilação do Snort:

# make
# make install


Agora devemos criar uma pasta chamada "rules" dentro de /etc/snort da seguinte maneira:

# mkdir /etc/snort/rules

Caso o diretório /etc/snort não exista, crie-o antes da compilação. Dentro da pasta rules devemos colocar todas as regras do Snort. Essas regras devem possuir a extensão ".rules".

Devemos também copiar a pasta "preproc_rules" do diretório criado pelo tar para /etc/rules.

O próximo passo é criar um grupo e usuário para o snort. Vamos fazer da seguinte maneira:

# groupadd snort

Utilizamos esse comando para criar um grupo chamado Snort.

# useradd snort -g snort

Utilizamos esse comando para criar um usuário pertencente ao grupo "snort". O próximo passo é criar o diretório de logs. Vamos fazer da seguinte maneira:

# mkdir /var/log/snort
# chown snort:snort /var/log/snort
# chown -R snort:snort /etc/snort


Com o comando acima estamos mudando o grupo e dono da pasta para "snort".

Para iniciar o serviço do Snort devemos executar o seguinte comando:

# snort -c /etc/snort/snort.conf -u snort -g snort

Onde:
  • -c: arquivo de configuração do Snort;
  • -u: usuário que o Snort utilizará na execução;
  • -g: grupo que o Snort utilizará na execução;

É importante passar os parâmetros de usuário e grupo por causa das permissões de escrita na pasta /var/log/snort.

    Próxima página

Páginas do artigo
   1. Instalação
   2. Configuração
   3. Criação de regras no Snort
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Melhorias generalizadas de segurança (parte 2)

Netcat - O canivete suíco do TCP/IP

Uma introdução ao Linux-PAM

Ajustes finos no Bind (servidor DNS)

Entendendo as permissões no Linux

  
Comentários
[1] Comentário enviado por grandmaster em 25/08/2008 - 20:42h

Bem legal. Ficou simples de entender :D

Renato de Castro Henriques
CobiT Foundation 4.1 Certified ID: 90391725
http://www.renato.henriques.nom.br

[2] Comentário enviado por dailson em 02/09/2008 - 16:29h

Onde você instalaria esta máquina? Atrás do roteador, firewall, in-line, com duas placas, uma placa só, escutando uma porta replicada no switch???
Como vc aconselha?

Dailson Fernandes
http://www.dailson.com.br

[3] Comentário enviado por leobsb em 02/09/2008 - 18:12h

Dailson,

a maneira mais eficiente de utilizar o Snort sem prejudicar o tráfego na rede é espelhar a porta do roteador que recebe o link da internet e colocar o Snort nessa porta espelhada,
por que se você colocar o Snort antes ou depois do Firewall, ele poderá deixar o tráfego da rede mais lento,
isso pode ocorre devido ao snort precisar verificar todos os pacotes que passam por ele,

Qualquer dúvida fico a disposição.

[4] Comentário enviado por lucaspereira em 29/07/2010 - 18:49h

muito bom este artigo.
A única coisa, é que tive que fazer um downgrade da libnet, para poder compilar o programa.
Mas depois disso, rodou que é uma maravilha :D

[5] Comentário enviado por luizvieira em 16/11/2010 - 20:08h

Excelente artigo!
[ ]'s


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts