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: 81.097 ]

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

Montando RAID manual no Linux

Proxy transparente com Squid 2.6 e FWBuilder

Instalação do Apache, MySQL e PHP

Ligando e abrindo somente uma aplicação no Linux

SQUID e as autenticações em NTLM e RADIUS

Leitura recomendada

Empacotamento e compactadores de arquivos

Iniciação no Linux sem medo usando VMWare

Introdução ao Void Linux

Instalando o Insigne Momentum 5.0

Sistemas Operacionais, Kernel e Shell

  
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 [email protected]=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
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts