15
 Segurança - Instalando o Snort IDS no Linux postado por nightnux - comentários 0 - enviar ! O SNORT é uma ferramenta NIDS desenvolvida por Martin Roesch, bastante popular por sua flexibilidade nas configurações de regras e constante atualização. O Guardian funciona em conjunto com o Snort, ele atualiza automaticamente as regras de vários firewalls ( ipfw, iptables, etc ) com base nos alertas gerados pelo Snort. O trabalho conjunto do Snort e do Guardian torna possível ações reativas em caso de intrusão e prevenção de ataques futuros. Instalação Pacotes básicos =============== sudo apt-get install apache2 mysql-server php5 php5-mysql libmysqlclient12-dev php5-gd php-pear php-image-canvas php-image-graph libpcap0.8 libpcap0.8-dev libpcre3 libpcre3-dev Crie um diretório para temp mkdir ~/temp Baixe o ADODB cd ~/temp wget http://ufpr.dl.sourceforge.net/sourceforge/adodb/adodb493a.tgz Baixe o Base wget http://ufpr.dl.sourceforge.net/sourceforge/secureideas/base-1.2.7.tar.gz Baixe o Snort wget http://www.snort.org/dl/current/snort-2.6.1.2.tar.gz Baixe o PCRE wget http://ufpr.dl.sourceforge.net/sourceforge/pcre/pcre-7.0.tar.gz Crie um arquivo index.php sudo vi /var/www/index.php <?php phpinfo(); ?> Teste funcionamento do Apache acesso o servidor digitando http://localhost<BR< a>/>na barra de endereços do navegador. Compilar e Instalar o PCRE sudo tar zxf pcre-7.0.tar.gz cd pcre-7.0 sudo ./configure sudo make sudo make install Compilar e Instalar o Snort

instalação do snort

Embed Size (px)

Citation preview

5/12/2018 instala o do snort - slidepdf.com

http://slidepdf.com/reader/full/instalacao-do-snort 1/15

Segurança - Instalando o Snort IDS no Linux postado por nightnux - comentários 0 - enviar ! 

O SNORT é uma ferramenta NIDS desenvolvida por Martin Roesch, bastante popular por suaflexibilidade nas configurações de regras e constante atualização. O Guardian funciona em conjuntocom o Snort, ele atualiza automaticamente as regras de vários firewalls ( ipfw, iptables, etc ) com

base nos alertas gerados pelo Snort. O trabalho conjunto do Snort e do Guardian torna possível ações reativas em caso de intrusão e prevenção de ataques futuros. Instalação

Pacotes básicos ===============

sudo apt-get install apache2 mysql-server php5 php5-mysql libmysqlclient12-dev php5-gd php-pearphp-image-canvas php-image-graph libpcap0.8 libpcap0.8-dev libpcre3 libpcre3-dev

Crie um diretório para temp

mkdir ~/temp

Baixe o ADODB

cd ~/temp

wget http://ufpr.dl.sourceforge.net/sourceforge/adodb/adodb493a.tgz 

Baixe o Base

wget http://ufpr.dl.sourceforge.net/sourceforge/secureideas/base-1.2.7.tar.gz 

Baixe o Snort 

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

Baixe o PCRE

wget http://ufpr.dl.sourceforge.net/sourceforge/pcre/pcre-7.0.tar.gz 

Crie um arquivo index.php

sudo vi /var/www/index.php

<?phpphpinfo();?>

Teste funcionamento do Apache acesso o servidor digitando http://localhost<BR< a>/>na barra deendereços do navegador. Compilar e Instalar o PCRE

sudo tar zxf pcre-7.0.tar.gzcd pcre-7.0sudo ./configuresudo makesudo make install

Compilar e Instalar o Snort

5/12/2018 instala o do snort - slidepdf.com

http://slidepdf.com/reader/full/instalacao-do-snort 2/15

 Crie um link simbólico para o arquivo cc1plus, necessário para compilar o snort

sudo ln -s /usr/lib/gcc/i486-linux-gnu/4.1.2/cc1 /usr/bin/cc1plus

Compile o Snort 

sudo tar zxf snort-2.6.1.2.tar.gzcd snort-2.6.1.2sudo ./configure --with-mysql=/usrsudo makesudo make install

Crie diretório /etc/snort/

sudo mkdir /etc/snort

Copie o arquivo snort.conf para o diretório /etc/snort

sudo cp ~/temp/snort-2.6.1.2/etc/snort.conf /etc/snort/

Baixe as regras 

OBS: Existem 3 tipos de download de regras do snort

1. Subscrição - Pago2. Registrado - Gratuito3. Comunidade - Gratuito

Aconselho você baixar o registrado, porque são regras atualizadas. Para issoclique no link download do pacote nortrules-snapshot-CURRENT.tar.gz e façaseu registro.

Salve o arquivo no diretório /etc/snort e descompacte-o.

Configurando o Snort ====================

Edite o arquivo /etc/snort/snort.conf alterando as entradas abaixo

sudo vi /etc/snort/snort.conf 

var HOME_NET any #Para capturar todos as redesvar EXTERNAL_NET !$HOME_NET #Tudo o que não for HOME_NET é externovar RULE_PATH /etc/snort/rules #Caminho para as regras

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

}}

Configurando o Mysql ===================

Configure a base de dados do Snort no MySQL:

5/12/2018 instala o do snort - slidepdf.com

http://slidepdf.com/reader/full/instalacao-do-snort 3/15

{{{ 

sudo mysql

mysql> SET PASSWORD FOR root@localhost=PASSWORD('password');Query OK, 0 rows affected (0.25 sec)

mysql> create database snort;Query OK, 1 row affected (0.01 sec)

mysql> grant INSERT,SELECT on root.* to snort@localhost;Query OK, 0 rows affected (0.02 sec)

mysql> SET PASSWORD FOR snort@localhost=PASSWORD('password_do_snort.conf');Query OK, 0 rows affected (0.25 sec)

mysql> grant CREATE, INSERT, SELECT, DELETE, UPDATE on snort.* to snort@localhost;Query OK, 0 rows affected (0.02 sec)

mysql> grant CREATE, INSERT, SELECT, DELETE, UPDATE on snort.* to snort;

Query OK, 0 rows affected (0.02 sec)mysql> exitBye

Crie as tabelas

sudo mysql -u root -p < ~/temp/snort-2.6.1.2/schemas/create_mysql snort

Verifique se a base de dados do Snort foi criada corretamente

sudo mysql -p

mysql> SHOW DATABASES;--------------------| Database |--------------------| information_schema || mysql || snort |--------------------3 rows in set (0.01 sec)

mysql> use snortReading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

mysql> SHOW TABLES;------------------| Tables_in_snort |------------------| acid_ag || acid_ag_alert |

5/12/2018 instala o do snort - slidepdf.com

http://slidepdf.com/reader/full/instalacao-do-snort 4/15

| acid_event || acid_ip_cache || base_roles || base_users || data || detail || encoding |

| event || icmphdr || iphdr || opt || reference || reference_system || schema || sensor || sig_class || sig_reference || signature || tcphdr || udphdr |

+------------------+22 rows in set (0.01 sec)

Instale o ADODB 

{{{ 

sudo cp ~/temp/adodb493a.tgz /var/www/cd /var/www/sudo tar zxf adodb493a.tgzsudo rm adodb493a.tgz

Instale e configure o BASE 

sudo mkdir -p /var/www/htmlsudo cp ~/temp/base-1.2.7.tar.gz /var/www/htmlcd /var/www/htmlsudo tar zxf base-1.2.7.tar.gzsudo rm base-1.2.7.tar.gzsudo mv base-1.2.7 basecd /var/www/html/basesudo cp base_conf.php.dist base_conf.php

Edite o ficheiro /var/www/html/base/base_conf.php e altere os parâmetros

$BASE_urlpath = '/html/base';$DBlib_path = '/var/www/adodb/';

$DBtype = 'mysql';$alert_dbname = 'snort';$alert_host = 'localhost';$alert_port = '';$alert_user = 'snort';$alert_password = 'senha_usuario_snort'; /* Archive DB connection parameters */$archive_exists = 0; # Set this to 1 if you have an archive DB

Crie no diretório /etc/snort/rules os seguintes arquivos. Faça isso usando o comando touch

5/12/2018 instala o do snort - slidepdf.com

http://slidepdf.com/reader/full/instalacao-do-snort 5/15

 local.rulesexploit.rulesbad-traffic.rulesscan.rulesfinger.rulesftp.rules

telnet.rulesrpc.rulesrservices.rulesdos.rulesddos.rulesdns.rulestftp.rulesweb-cgi.rulesweb-coldfusion.rulesweb-iis.rulesweb-frontpage.rulesweb-misc.rulesweb-client.rules

web-php.rulessql.rulesx11.rulesicmp.rulesnetbios.rulesmisc.rulesattack-responses.rulesoracle.rulesmysql.rulessnmp.rulessmtp.rulesimap.rulespop2.rulespop3.rulesnntp.rulesother-ids.rulesexperimental.rules

Inicie o snort 

sudo snort -c /etc/snort/snort.conf & 

Consulte o BASE, executando no navegador

http:///html/base 

Na página inicial de setup do BASE clicar no link SETUP PAGE e de seguida no botão CREATE AG.

Agora você poderá verificar o log do snort via web. 

Instalando o Guardian 

Baixe o fonte do Guardian

cd ~/temp

wget http://www.chaotic.org/guardian/guardian-1.7.tar.gz 

5/12/2018 instala o do snort - slidepdf.com

http://slidepdf.com/reader/full/instalacao-do-snort 6/15

Copie para o diretório /usr/src e descompacte

sudo cp guardian-1.7.tar.gz /usr/srctar xzf guardian-1.7.tar.gzcd guardian-1.7cd scripts

Liste o conteúdo do diretório scripts e verifique se ele contem os arquivos abaixo

freebsd_block.sh guardian_unblock.sh ipfwadm_block.sh iptables_unblock.shfreebsd_unblock.sh ipchain_block.sh ipfwadm_unblock.sh nullroute_block.shguardian_block.sh ipchain_unblock.sh iptables_block.sh nullroute_unblock.sh

O programa Guardian utiliza sempre os scripts denominados guardian_block.she guardian_unblock.sh . Assim, deverão ser copiados para os arquivos comesses nomes correspondentes ao firewall que pretendemos utilizar. No nossocaso usaremos o iptables

sudo cp iptables_block.sh /usr/bin/guardian_block.sh

sudo cp iptables_unblock.sh /usr/bin/guardian_unblock.shsudo chmod 755 /usr/bin/guardian_block.sh /usr/bin/guardian_unblock.sh

Copie o script e o arquivo de configuração do Guardian para os locais correspondentes

cd ..sudo cp guardian.pl /usr/binsudo chmod 755 /usr/bin/guardian.plsudo cp guardian.conf /etc/

Configure os seguintes parâmetros no arquivo /etc/guardian.conf 

Interface eth0 # Interface eth0, a que vai ter os terminais bloqueados

AlertFile /var/adm/secure # Mude para /var/log/snort/alert

TimeLimit 86400 #Mude para um valor em segundos que pretendemos que o endereço IP fiquebloqueado pela firewall. O valor 99999999 remove esta opção.

Crie o arquivo de log do Guardian 

touch /var/log/guardian.log

Crie o arquivo guardian.ignore com os endereços IP que se pretende ignorar

touch /etc/guardian.ignore

Inicie o Guardian 

guardian.pl -c /etc/guardian.conf 

autor: Alexandro Silva 

LINKS=====

- ADODB - http://prdownloads.sourceforge.net/adodb/ 

5/12/2018 instala o do snort - slidepdf.com

http://slidepdf.com/reader/full/instalacao-do-snort 7/15

- BASE - http://prdownloads.sourceforge.net/secureideas/ - Snort - http://www.snort.org - Snort Rules - http://www.snort.org/pub-bin/downloads.cgi - PCRE - http://prdownloads.sourceforge.net/pcre/ - Guardian - http://www.chaotic.org/guardian/ 

5/12/2018 instala o do snort - slidepdf.com

http://slidepdf.com/reader/full/instalacao-do-snort 8/15

Instalando o SAMBS (Snort + Apache2 + MySQL +BarnYard2 + Snorby) no Debian

Segunda-feira, 22/08/2011 às 10h30, por Luiz Cezar Quaquio 

Veja neste artigo a instalação do sistema de detecção de intrusão na rede Snort, logando no banco de dados MySQLatravés do BarnYard2 e visualizando os logs e gráficos gerenciais pelo Snorby, rodando no servidor Web Apache2, tudo

isso dentro do Debian.

Instalando o MySQL

Instalando o MySQL:

# apt-get install mysql-server-5.1 mysql-client libmysqlclient-dev libpcap-dev 

Durante a instalação, será pedida a senha para o usuário root do MySQL, mas, se houver algum problema, configure asenha do root do MySQL com o comando:

# mysqladmin -u root password senharootdomysql 

Vamos criar o banco de dados e o usuário para acessá-lo:

# mysql -u root -p 

Já no shell do MySQL:

CREATE DATABASE snort; GRANT all privileges ON snort.* TO snort@localhost IDENTIFIED BY 'senha_snort_mysql'; flush privileges; QUIT 

Instalando o SNORT

Instalando o SNORT:

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

Criando as tabelas para o snort:

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

 Agora vamos configurar o SNORT editando o arquivo /etc/snort/snort.debian.conf.

Primeiro, configure a rede interna no parâmetro já existente:

DEBIAN_SNORT_HOME_NET= 1́27.0.0.0/16,192.168.0.0/24´

Interface usada:

5/12/2018 instala o do snort - slidepdf.com

http://slidepdf.com/reader/full/instalacao-do-snort 9/15

DEBIAN_SNORT_INTERFACE=´eth0´

Vamos dizer para o SNORT usar o banco de dados do MySQL, editando o arquivo /etc/snort/database.conf e coloque:

output database: log, mysql, user=snort password=snort_pwd dbname=snorthost=localhost

Remova o arquivo de ³pendência´ do banco de dados para o snort:

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

Reinicie o SNORT e pronto, já está funcionando e registrando no MySQL:

# /etc/init.d/snort restart 

Instalando o BarnYard2

Baixe o banryard2 e instale:

# tar xvf barnyard2-1.8.tar.gz # cd barnyard2-1.8 # ./configure --with-mysql # make #make install # cd etc # cp barnyard2.conf /etc/snort 

Vamos configurar o arquivo /etc/snort/database.conf. Comente com ³#´ a linha que diz respeito ao MySQL:

#output database: log, mysql, user=snort password=senha_snort_mysql dbname=snorthost=localhost 

 Adicione a linha:

output unified2: filename snort.out, limit 128 

 Agora vamos editar o arquivo /etc/snort/barnyard2.conf:

config daemon config hostname: localhost config interface: eth0 config logdir:/var/log/barnyard2/ config waldo_file: /var/barnyard2/waldo

 Acrescente no final a linha:

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

Vamos criar as pastas para o uso do barnyard2:

# mkdir /var/log/barnyard2 # mkdir /var/barnyard2 

Vamos reiniciar o SNORT:

# /etc/init.d/snort restart 

Iniciando o BarnYard2:

# cd /etc/snort # barnyard2 -d /var/log/snort -f snort.out *** Os comandos acima parainicialização d o BarnYard2 deverão ser executados sempre na inicialização d o sistema,sugiro colocá-los no /etc/rc.local ***

5/12/2018 instala o do snort - slidepdf.com

http://slidepdf.com/reader/full/instalacao-do-snort 10/15

Instalando o Apache2

Instale o apache e alguns requisitos:

# aptitude install apache2 apache2-prefork-dev libapr1-dev libaprutil1-devlibopenssl-ruby libcurl4-openssl-dev gem 

Instalando o SNORBY

Vamos instalar os requisitos para o Snorby:

# aptitude install gcc g++ build-essential libssl-dev libreadline5-dev zlib1g-devlinux-headers-generic libsqlite3-dev libxslt-dev libxml2-dev imagemagick git-corelibmagickwand-dev default-jre 

Instale o wkhtmltopdf:

# wget http://wkhtmltopdf.googlecode.com/files/wkhtmltopdf-0.10.0_rc2-static-i386.tar.bz2 # tar xvjf wkhtmltopdf-0.10.0_rc2-static-i386.tar.bz2 # cp wkhtmltopdf-

i386 /usr/sbin/wkhtmltopdf 

Instalando o ruby:

# wget http://ftp.ruby-lang.org//pub/ruby/1.9/ruby-1.9.2-p290.tar.gz # tar -xvzfruby-1.9.2-p290.tar.gz # cd ruby-1.9.2-p290 # ./configure # make && make install 

Vemos a versão instalada:

# ruby -v ruby 1.9.2p290 (2010-08-18 revision 29036) [i686-linux]

Instalamos os gems:

# gem install thor i18n bundler # gem install tzinfo builder memcache-client rackrack-test erubis mail text-format sqlite3-ruby # gem install rack-mount --version=0.4.0 # gem install rails --version=3.0.0 

Instalando Snorby:

# git clone http://github.com/Snorby/snorby.git /var/www/snorby Editamos o arquivo deconfiguração d o banco de dados: # vi /var/www/snorby/config/database.yml snorby:&snorby adapter: mysql username: snort password: senha_snort_mysql host: localhostEditamos o arquivo de configuração d o Snorby: # vi/var/www/snorby/config/snorby_config.yml development: domain: localhost:3000 wkhtmltopdf: /usr/sbin/wkhtmltopdf test: domain: localhost:3000 wkhtmltopdf:/usr/sbin/wkhtmltopdf production: domain: localhost:3000 wkhtmltopdf:

/usr/sbin/wkhtmltopdf

Já no shell do MySQL:

GRANT all privileges ON snorby.* TO snort@localhost; flush privileges; QUIT 

Instalando o Snorby:

# cd /var/www/snorby # bundle install # rake snorby:setup RAILS_ENV=production 

5/12/2018 instala o do snort - slidepdf.com

http://slidepdf.com/reader/full/instalacao-do-snort 11/15

Vamos criar o acesso do usuário snort no banco de dados do Snorby:

# mysql -u root -p 

Edite o arquivo /etc/snort/barnyard2.conf e acrescente a linha:

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

Editando o Apache2

Instalando o módulo passenger:

# gem install --no-ri --no-rdoc --version 3.0.3 passenger # cd/usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.3/bin # ./passenger-install-apache2-module -a 

Vamos criar o arquivo do módulo para o Apache2:

# vi /etc/apache2/mods-available/passenger.load 

 Adicione no arquivo:

LoadModule passenger_module /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.3/ext/apache2/mod_passenger.so

Vamos habilitar o módulo:

# vi /etc/apache2/mods-available/passenger.conf 

5/12/2018 instala o do snort - slidepdf.com

http://slidepdf.com/reader/full/instalacao-do-snort 12/15

 Adicione no arquivo:

<IfM odule mod_passenger.c> PassengerRoot/usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.3 PassengerRuby /usr/local/bin/ruby</IfM odule>

Instalando o módulo:

# a2enmod passenger # a2enmod rewrite # a2enmod ssl 

Reinicie o apache2:

# /etc/init.d/apache2 restart 

Edite o arquivo /etc/apache2/sites-available/default:

< Virtualhost *:80> # ServerName infosegura DocumentRoot /var/www/snorby/public/<Directory /var/www/snorby/public> RailsBaseURI / Options +ExecCGI FollowSymLinks -MultiViews AllowOverride all Order allow,deny Allow from all </Directory>

Reinicie o apache2:

# /etc/init.d/apache2 restart 

Vamos reiniciar o SNORT:

# /etc/init.d/snort restart 

Iniciando o Snorby:

# cd /var/www/snorby # ruby script/delayed_job start -e production *** Os comandosacima para inicialização d o Snorby deverão ser executados sempre na inicialização d o 

sistema, sugiro colocá-los no /etc/rc.local ***

 Acesse pelo navegador o Snorby: http://<ip_snorby>

Coloque o usuário e senha:

y  Usuário: [email protected]  Senha: snorby

5/12/2018 instala o do snort - slidepdf.com

http://slidepdf.com/reader/full/instalacao-do-snort 13/15

 

Tela principal, na qual o ³Dashboard´ é atualizado a cada 30 min e os eventos são atualizados imediatamente:

Verifique se o Snorby Worker está funcionando clicando em ³Administration > Administrator Menu > Worker & JobQueue".

5/12/2018 instala o do snort - slidepdf.com

http://slidepdf.com/reader/full/instalacao-do-snort 14/15

 

Dica

Crie o script abaixo para executar o Barnyard2 na inicialização do sistema:

#!/bin/sh case $1 in start) printf "starting $0..." cd /etc/snort barnyard2 -d/var/log/snort -f snort.out echo -e 'OK' ;; stop) printf "stopping $0..." killall

barnyard2 echo -e 'OK' ;; restart) $0 stop $0 start ;; *) echo "usage: $0(start|stop|restart)" ;; esac Para executar acrescente no /etc/rc.local:/caminho/nome_script_barnyard2 start

Para executar o Snorby na inicialização do sistema, crie o script:

#!/bin/bash cd /var/www/snorby /usr/local/bin/ruby script/delayed_job start -eproduction

Para executar acrescente no /etc/rc.local:

/caminho/nome_script_snorby

Atualizar o Snorby

O projeto Snorby está em constante desenvolvimento, por isso, se quiser atualizar o seu, é necessário o RAKE:

# gem install rake 

Entre no diretório de instalação do Snorby:

# cd /var/www/snorby

Vamos utilizar o GIT para a atualização. Diga a ele que seus arquivos estão nesse diretório...

# git add . # git commit -m 'Coloque seu comentário aqui'

Verifica as atualizações disponíveis:

# git rm Gemfile.lock && git pull origin master

 Atualize as dependências:

# gem update --system # bundle install --path vendor/cache

5/12/2018 instala o do snort - slidepdf.com

http://slidepdf.com/reader/full/instalacao-do-snort 15/15

Edite o arquivo com as credenciais de acesso ao banco de dados MySQL e coloque o usuário e senha de acesso aobanco do Snorby:

# vi config/database.yml 

 Atualize o Snorby:

# rake snorby:update 

 Acesse pelo navegador o Snorby: http://<ip_snorby>

Referências:

y  http://muchikon.blogspot.com/2011/03/snorby-225-en-debian-wheezy.html  y  https://lswiki.byu.edu/index.php/Snort,_Barnyard2,_and_Snorby y  http://www.vivaolinux.com.br/artigo/Debian-Sarge-+-Snort-+-MySQL-+-Acidlab-+-Apache/