Instalação e configuração do IDS snort

logo_snort

Snort é um software livre de detecção de intrusão para rede (NIDS) desenvolvido inicialmente por Martin Roesch, capaz de desenvolver análise de tráfego em tempo real e registro de pacote em redes IP. Executa análise de protocolo, busca/associa padrões de conteúdo e pode ser usado para detectar uma variedade de ataques, tais como buffer overflows, stealth port scans, ataques CGI, SMB probes, OS fingerprinting, entre outras. Esta ferramenta é suportada em arquiteturas RISC e CISC e em plataformas das mais diversas, como várias distros Linux (Red Hat, Debian, Slackware, Mandrake, etc.), OpenBSD, FreeBSD, NetBSD, Solaris, SunOS, HP-UX, AIX, IRIX, Tru64 e MacOS X.

No Brasil existe o projeto Snort-BR, um esforço para a criação de uma comunidade de usuários da ferramenta open-source para IDS no país.

[fonte: http://pt.wikipedia.org/wiki/Snort]

Instalação:

# apt-get install mysql-server mysql-client

Preencha o campo com a senha do administrador do mysql e depois redigite a senha.

# mysql -u root -p

mysql> create database snort;
mysql> grant all privileges on snort.* to [email protected] identified by ‘senha_adm_mysql’;
mysql> flush privileges;
mysql> quit

Configurando a base de dados

# zcat /usr/share/doc/snort-mysql/create_mysql.gz | mysql -u root -h localhost -p snort

# apt-get install snort-mysql snort-rules-default

Editar algumas configurações do snort

# vi /etc/snort/snort.debian.conf
DEBIAN_SNORT_HOME_NET=”127.0.0.0/8,10.1.1.0/24″

Debian_SNORT_INTERFACE=”eth0″

—–

Vamos configurar o snort para usar o mysql

# vi /etc/snort/database.conf

database: log, mysql, user=snort password=senha_snort_mysql dbname=snort host=localhost

——-

Temos de remover o arquivo db-pending-config sem o qual não seria possível iniciar o snort.

# rm /etc/snort/db-pending-config

Reiniciar o snort

# /etc/init.d/snort restart

Se a intenção era apenas a instalação do snort o mesmo já está instalado e funcionando, mas não irei ficar apenas com isso.

Vamos a instalar o BASE (Basic Analysis and Security Engine) para a análise de alertas gerado pelo snort.

Instalar alguns pacotes necessários

# apt-get install php5 php5-mysql php5-gd php-pear libapache2-mod-php5 zip unzip

Vamos reiniciar o apache2 para ter suporte ao php

# /etc/init.d/apache2 restart

Download do BASE

# wget http://sourceforge.net/projects/secureideas/files/BASE/base-1.4.5/base-1.4.5.tar.gz

vamos descompactar o arquivo baixado

# tar xzvf base-1.4.5.tar.gz -C /var/www

# cd /var/www

# mv base-1.4.5/ base

Trocar o dono/grupo

# chown www-data:www-data base -R

Vamos baixar também o adodb para acesso a base de dados

# wget http://sourceforge.net/projects/adodb/files/adodb-php5-only/adodb-513-for-php/adodb513.zip

Descompactar

# unzip -d /var/www adodb513.zip

# chown www-data:www-data adodb5 -R

Vamos configurar o BASE

# cd /var/www/base

# cp -a base_conf.php.dist base_conf.php

# vi base_conf.php

$BASE_urlpath = ‘/base’;
$DBlib_path = ‘/var/www/adodb5’;
$alert_dbname = ‘snort’;
$alert_host = ‘localhost’;
$alert_port = ”;
$alert_user = ‘snort’;

—————————-

Instalar dependências pear Image_Canvas e Image_Graph

# pear install -a pear/Image_Graph-0.8.0

Ao invés de trazer o que foi pedido ele trouxe o Numbers_Words, mas precisamos dela então vamos resolver outra dependencia

# pear install -a pear/Image_Canvas-0.3.0

E agora sim o Image_Graph

# pear install -a pear/Image_Graph-0.8.0

Vamos abrir o navegador e verificar se está tudo OK

http://10.1.1.11/base

snort01

Como nada é tão simples está pedindo para configurar DB utilizado pelo BASE, clique em Setup page.

snort02

Clique em Create BASE AG

snort03

Pronto, agora podemos clicar em Main page e teremos a tela principal do BASE, como na figura a seguir.

snort04

Agora fica mais fácil analisar os alertas gerados pelo SNORT, o BASE não é o único com esse propósito existe outro que é o snorby com uma bela GUI e muito versátil.

Espero que tenham gostado do post e mais uma vez assinem o nosso portal e continuem votando no topblog.

 

  • jonas

    Legal so uma duvida
    Como instalo os agentes. nos servidores as serem monitorados
    obrigado

    • Jonas,

      De qual agente estamos falando? O snort possui alguns agentes (plugins) que podem ser utilizados no próprio servidor e cada um com sua própria forma de configuração. Ele é um IDS e não há agente para ser instalado em clientes.

      Abraços

  • Claudio

    Onde é recomendavél instalar o snort ? No servidor firewall/proxy ? ou Um servidor dedicado pegando informação do firewall/proxy?

    • Claudio,

      O snort apenas detecta, por padrão ele não irá tomar nenhuma ação quando detectar qualquer tentativa de intrusão, apesar de ser possível a adição de algum plugin que vá fazer isso.

      Recomendo a utilização de um IPS (como o HLBR) e depois uma máquina firewall/proxy com o snort só para garantia.

      Abraços

  • paulo

    Galera do cooperati, vamos fazer como slogan do Bernades, – “Não falo de instalação, configuração básica, etc. Aqui no CooperaTI só publicamos o “algo a mais” , – instalação e configuração tem em todo lugar, o interessante é saber onde o ids é colocado no perímetro, simulações de ataque(exploits) contra o mesmo, plguins mas interessados, teste de falso positvo e falso negativo(esse é o pior)…etc.

    • Paulo,

      Obrigado pelo comentário, nesse momento estou atendendo alguns pedidos de instalação e configuração, mesmo sabendo que estão em todo lugar.

      Abraços

  • Pingback: ()

  • Sival Silva Montana

    Qual foi a versão do Debian que você usou pra instalar?

  • Artur de Souza Aragão

    Wagner,

    Gostaria de ver esta matéria revisada em plataformas atuais.
    Realizou a tarefa em modo texto ou por interface gráfica? Pergunto, pois há imagens em sua matéria que não são mais visualizadas aqui.

    Grato!

  • Neidson

    Aqui apresentou um erro pedindo para criar a tabela “snort.iphdr”. Criei desta forma:

    mysql> create table snort.iphdr(ip_src int);

    mysql>create table snort.sensor(sid varchar(20), hostname varchar(30), interface varchar(20), filter varchar(20));

    e pronto!! Perfeito. Muito a obrigado!!!

  • Mario Ribeiro

    Galera, acho que o que o pessoal estava se referindo lá em cima era sobre os sensores (que chamaram de agentes). Bem, quanto ao perímetro, vai variar de uma série de coisas do ambiente. Primeiro ele pode ser colocado InLine ou em Paralelo. O inline, como o próprio nome já diz, ele fica no meio do tráfego passante como se fosse um firewall. As vantagens é que vc consegue analisar tudo porém você pode criar um limitante na sua rede dependendo do throughput do server e até mesmo do desempenho do equipamento. Esse tipo de serviço gera um consumo muito elevado dos recursos computacionais da máquina. Com relação ao Paralelo, ele ficaria ligado a algum switch com um das portas configurada no padrão MIRROR, fazendo dessa forma, o espelhamento do tráfego de dados para o IDS. Dessa forma se o IDS der qualquer problema, seu tráfego comum não será afetado. Geralmente esses sistemas são colocados tanto na borda externa (para detectar ataques de fora pra dentro) quanto na borda interna (para detectar ataques ou tráfegos anômalos de dentro pra fora). Acho que é mais ou menos isso. Ah, vale a pena usar o Snorby. Dá trabalho pra colocar mas o bichinho é muito bom. Rs…

    Agradecimentos aos meus mestres Jedis Vagner Fonseca e Ricardo Pinheiro!

  • Lara

    olá,sou estudante e estou tetando instalar o Snort pra fazer um trabalho e não estou conseguindo. por favor me ajude!!

  • Alexandre Magno

    Aqui o acesso ao site da Snort-BR retorna apenas “pageok”. Com vocês também acontece?