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.731 ]

Por: Leonardo em 23/08/2008


Configuração



Para qualquer regra que você crie ou deseje testar é aconselhável que ela seja adicionada no arquivo "local.rules" dentro da pasta "rules".

Agora devemos editar o arquivo "snort.conf" dentro de /etc/snort. Devemos fazer da seguinte maneira:

# gedit /etc/snort/snort.conf
Ou:
# vi /etc/snort/snort.conf

Devemos mudar os valores de algumas variáveis. Procure pelas seguintes linhas:

var RULE_PATH ../rules
var PREPROC_RULE_PATH ../preproc_rules

E mude para:

var RULE_PATH /etc/snort/rules
var PREPROC_RULE_PATH /etc/snort/preproc_rules

A variável RULE_PATH indica o local onde estão todas as regras que o snort irá utilizar. A variável PREPROC_RULE_PATH indica o local onde está o pré-processador utilizado pelo Snort.

Dentro do arquivo snort.conf devemos inserir uma das duas opções abaixo:

output alert_fast: alert_quick

Ou:

output alert_full: alert_detailed

No modo "alert_fast: alert_quick" o Snort funciona mais rápido, pois gera logs com o mínimo de detalhes possível. No modo "alert_full: alert_detailed" o Snort trabalha um pouco mais lento que no modo anterior, porque ele irá gerar alertas com o máximo de detalhamento possível, além disso, os logs utilizarão mais espaço em disco.

Também temos que inserir a linha que indica a pasta de logs do snort. Adicionaremos essa opção no snort.conf da seguinte maneira:

config logdir: /var/log/snort

Existem mais duas variáveis importantes na configuração do arquivo snort.conf: HOME_NET e EXTERNAL_NET. Devemos localizar essas variáveis, que estarão dispostas no arquivo snort.conf da seguinte maneira:

var HOME_NET any
var EXTERNAL_NET any

Agora alteramos para:

var HOME_NET [192.168.1.0/24]

Nesse caso, 192.168.1.0. é a rede que o Snort irá considerar como sendo interna. Todo tráfego que não for originado dessa rede será considerado como sendo da rede externa. A variável EXTERNAL_NET deve permanecer como any, desse modo tudo que não for HOME_NET será interpretado como EXTERNAL_NET. Podemos colocar quantas redes forem necessárias em HOME_NET, exemplo:

var HOME_NET [192.168.1.0/24,192.168.2.0/24,192.168.3.0/24]

Se eu tenho três sub-redes ou mais a maneira mais fácil de definir essas sub-redes é essa. É mais seguro definir cada sub-rede do que colocar uma máscara CDIR 16 que seria 255.255.0.0 abrindo uma brecha na segurança e na monitoração do Snort.

Também posso negar alguns endereços:

var HOME_NET [!192.168.1.23/32, !192.168.1.80, 192.168.1.0/24]

No exemplo acima nós vamos definir como rede interna toda a rede 192.168.1.0 exceto os hosts 192.168.1.23 e 192.168.1.80.

Configuração de demais variáveis:

# List of DNS servers on your network
var DNS_SERVERS $HOME_NET
# List of SMTP servers on your network
var SMTP_SERVERS $HOME_NET
# List of web servers on your network
var HTTP_SERVERS $HOME_NET
# List of sql servers on your network
var SQL_SERVERS $HOME_NET
# List of telnet servers on your network
var TELNET_SERVERS $HOME_NET
# List of snmp servers on your network
var SNMP_SERVERS $HOME_NET

Não vamos deixar os valores dessas variáveis definidos como $HOME_NET. Devemos colocar o IP de cada um deles, porque da maneira que está cada máquina da rede pode ser provedora de qualquer um dos serviços acima e isso não é o desejado.

Vai ficar da seguinte maneira:

# List of DNS servers on your network
var DNS_SERVERS [192.168.1.200/32]
# List of SMTP servers on your network
var SMTP_SERVERS [192.168.1.201/32]
# List of web servers on your network
var HTTP_SERVERS [192.168.1.202/32]
# List of sql servers on your network
var SQL_SERVERS [192.168.1.203/32]
# List of telnet servers on your network
var TELNET_SERVERS [192.168.1.204/32]
# List of snmp servers on your network
var SNMP_SERVERS [192.168.1.205/32]

Utilizamos a máscara CDIR 32 porque ela permite apenas um IP e é isso que queremos.

Para utilizar todas as regras devemos tirar os comentários das linhas que começam com #:

include $RULE_PATH

O que está depois de $RULE_PATH é o nome da regra. Devemos verificar na pasta /etc/snort/rules se ela existe. No caso de não existir, devemos deixar a regra com o comentário # no início da linha.

Agora podemos salvar e fechar o arquivo.

Página anterior     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

PaX: Solução eficiente para segurança em Linux

Monitorando máquinas Windows com o Nagios

Snort avançado: Projetando um perímetro seguro

Buffer Overflow: Entendendo e explorando

Segurança para iniciantes

  
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