Detecção de intrusos (IDS), conceitos e implantação do SNORT

Breve conceito sobre detecção de intrusos e anomalias. Aqui estarei mostrando um pouco dos meus conhecimentos sobre IDS, NIDS e HIDS. Também faremos uma instalação do Snort com BASE para colocarmos na prática o conhecimento adquirido. Testado em Debian.

[ Hits: 84.390 ]

Por: Everton Godoi em 09/05/2007 | Blog: http://twitter.com/evertongodoi


Instalação do Snort



Antes de iniciar a instalação do Snort temos que instalar todas as dependências dele para que funcione junto com o BASE, vamos então iniciar a instalação baseado na lista abaixo:
  • APACHE: apache apache-ssl
  • MYSQL: mysql-server libmysqlclient12-dev zlib1g-dev
  • PHP 4: php4 php4-mysql libphp-adodb libnet1 libnet1-dev php4-gd php4-gd php4-pear php4-cli
  • TCPDUMP: tcpdump libpcap0.8 libpcap0.8-dev libpcre3-dev

Vamos então iniciar a instalação:

Instalação do servidor Web:

# apt-get install apache apache-ssl

Instalação do servidor de Banco de Dados:

# apt-get install mysql-server libmysqlclient12-dev zlib1g-dev

Instalação da linguagem Web PHP:

# apt-get install php4 php4-mysql libphp-adodb libnet1 libnet1-dev php4-gd php4-gd php4-pear php4-cli

Instalação do TCPDump:

# apt-get install tcpdump libpcap0.8 libpcap0.8-dev libpcre3-dev

Agora vamos fazer a instalação do Snort, é recomendável sempre verificar no site oficial do Snort qual a última versão do software para fazer a instalação, hoje vamos fazer a instalação da versão 2.6.1.4.

Vamos acessar a pastar /usr/local/src/ que eu utilizo como a pasta padrão para os source que eu faço download:

# cd /usr/local/src/

Baixando o snort-2.6.1.4.tar.gz:

# wget http://www.snort.org/dl/current/snort-2.6.1.4.tar.gz

Descompactando o arquivo baixado:

# tar -xvzf snort-2.6.1.4.tar.gz

Agora vamos compilar e instalar o Snort já com suporte a MySQL:

# cd /usr/local/src/snort-2.6.1.4
# ./configure --with-mysql
# make
# make install
# ./configure --with-mysql


Criar as pastas padrões para o Snort funcionar:

# mkdir /etc/snort /var/log/snort

Agora vamos criar a conta e o grupo de trabalho do Snort:

# addgroup --gid 70 snort
# adduser --no-create-home --shell /bin/false --gid 70 --uid 70 --disabled-password snort


Vamos adicionar algumas regras oficiais no Snort, acesse o site:
e verifique qual a última versão que está disponível no site, aqui iremos instalar a 2.4:

# cd /etc/snort
# wget
http://www.snort.org/pub-bin/downloads.cgi/\
Download/sub_rules/snortrules-snapshot-2.4_s.tar.gz


Descompactando o pacote com as regras e fazendo uma copia dos arquivos .conf e .map do snort:

# tar -xvzf snortrules-snapshot-2.4_s.tar.gz

Após descompactar ele irá criará automaticamente as pastas rules e doc, isso dentro da pasta que você descompactar, que deve ser a /etc/snort.

Agora vamos fazer cópia dos arquivos .conf e .map:

# cp /usr/local/src/snort-2.6.1.4/etc/*.conf* /etc/snort/
# cp /usr/local/src/snort-2.6.1.4/etc/*.map /etc/snort/


Agora vamos configurar o snort:

# vi /etc/snort/snort.conf

## Edite o arquivo como monstra abaixo
#
# Arquivo com regras do snort

var RULE_PATH /etc/snort/rules
# Rede onde o snort irá trabalhar
var HOME_NET 192.168.1.0/24
#
var EXTERNAL_NET !$HOME_NET

Adicionando o Snort no MySQL para ele armazenar os logs de captura no banco de dados:

# mysql -u root -p
mysql> create database snort;
mysql> exit;
# cd /usr/local/src/snort-2.6.1.4/schemas/
# mysql -u root -p < create_mysql snort


Configuração para o Snort utilizar o MYSQL:

# vi /etc/snort/snort.conf

# Arquivo de configuração do Snort, para ele funcionar normalmente
# deve-se descomentar a linha output

# database: log to a variety of databases
# ---------------------------------------
#
output database: log, mysql, user=root password=senhaMysql dbname=snort host=localhost
#----------------------------------------

Finalizamos aqui a instalação do Snort com suporte a MySQL, agora vamos para a instalação do BASE.

Página anterior     Próxima página

Páginas do artigo
   1. Detecção de intrusos e anomalias
   2. Software de IDS Snort
   3. Instalação do Snort
   4. Instalação do BASE
Outros artigos deste autor

Ligando e abrindo somente uma aplicação no Linux

Instalação do Apache, MySQL e PHP

Montando RAID manual no Linux

Proxy transparente com Squid 2.6 e FWBuilder

SQUID e as autenticações em NTLM e RADIUS

Leitura recomendada

FeniX Linux - Conhecendo o que é Nosso

Distribuições Linux

Cinco distribuições para iniciantes

Criação e edição de partições

OpenSUSE - Uma ótima opção de distribuição

  
Comentários
[1] Comentário enviado por y2h4ck em 09/05/2007 - 10:36h

Achei uma falha de segurança no seu artigo :)

Database Name: snort
Database Host: localhost
Database Port: deixe em branco!
Database User Name: root
Database Password: senhaMysql

Criem um usuário 'snort' por exemplo para ter acesso somente à database que o snort vai utilizar, assim evita-se problemas de segurança com o MySQL é a interface do Snort :)


Abraços.

[2] Comentário enviado por evertongodoi em 09/05/2007 - 10:46h

Opa certeza, realmente o correto é ser feito com o user snort ou qual o usaurio estiver afim de fazer, eu coloquei o user root mesmo pois considerei que o snort iria trabalhar em um server sozinho na rede mas o correto realmente é utilizar um usuario diferente, mas para fazer isso é bem simples para o pessoal aqui da comunidade que nao sabe abaixo segue uma forma de ser feito:

1. Criar as base de dados no MySQL
# mysql -u root -p
mysql> create database snort;

2. Vamos criar um usuário/senha para o snort no banco:
mysql> grant CREATE, INSERT, SELECT, DELETE, UPDATE on snort.* to snort;
mysql> SET PASSWORD FOR snort@localhost=PASSWORD('senhaSnortMysql');
mysql> exit

[3] Comentário enviado por osky_cg.w em 09/05/2007 - 19:55h

Obrigado evertongodoi pelo ótimo artigo e também obrigado a y2h4ck por acrescentar.. é isso []s

[4] Comentário enviado por dailson em 15/05/2007 - 16:30h

Parabéns Pelo Artigo e Parabéns ao y2h4ck

[5] Comentário enviado por aroldobossoni em 08/07/2009 - 16:37h

Minha duvida é sobre o desempenho.

Tenho um K6 II 500 com 512 de RAM que atualmente só roda o um firewall iptables e gostaria de adicionar o snort nela também. Porem estou com receio da maquina ñ aguentar o iptables, snort, mysql e o BASE na mesma maquina

Até pensei de rodar o MySQL em um outro servidor esse outro servidor é um WIN 2003.

O que vc me aconselha nessa situação?

[6] Comentário enviado por alexsandroe em 06/06/2012 - 00:43h

Minha dúvida é a seguinte, realizei todos os passos com sucesso, porém,quando tento forçar uma conexão com ssh por exemplo,o serviço não realiza nenhum tipo de alerta, caso possa me ajudar a encontrar aonde estou falhando, agradeço.

Parabéns pelo Tópico, excelente.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts