Snort com MySQL + Acid sobre FreeBSD

Iucki
Data: 08/10/2002.


Introdução

Neste articulo nos vamos a centrar basicamente no que é a segurança de nossa mákina, para isso optei por Snort que é uma ferramenta bastante corrente mas que funciona muito bem. Snort é um detector de intrusos, o que faz basicamente é ver todo o que entra e sai de nossa mákina e aquilo que não lhe gosta o filtra e guarda a informação acerca dessa anomalia numa listagem de alertas. Para ver que coisas são essas que podem e essas que não podem entrar em nossa equipe snort possui numerosas réguas.

Outra ferramenta que vamos utilizar é Acid que é um meio web muito manejable que serve para listar todas as alertas que Snort vá armazenando.

Vamos fazer uso de MYSQL para que Snort possa armazenar essas alertas numa base de dados e Acid possa lê-las para que mais demore nós possamos visualizá-las em nosso navegador sem nenhum problema.

Passo Número 1: Instalação de Snort e Mysql:

# mkdir /var/log/snort
# cd /usr/ports/

Na instalação de Snort Não vamos fazer clean porque precisamos um arquivo que se cria durante a instalação na carpeta work/ para criar mais demore a base de dados na que irão as alertas.

# cd /usr/ports/security/snort && make WITH_MYSQL=YES install
# cd /usr/ports/databases/mysql323-server/ && make install clean

Passo Número 2: Configuração MYSQL para Snort

O primeiro que temos que fazer uma vez instalado o Servo de Mysql é atribuir uma contraseña à conta root:

# /usr/local/bin/mysqladmin -ou root  password 'oi'
# echo "CREATE DATABASE snort;" | mysql -ou root -phola
# mysql -ou root -phola
mysql> grant INSERT,SELECT on snort.* to root@localhost;
Query OK, 0 rows affected (0.01sec)
mysql> quit

Bye

# mysql -ou root -phola < /usr/ports/snort/security/work/snort-1.9.0/contrib/create_mysql snort
# mysql -ou root -phola 

mysql> SHOW DATABASES;
-----------
Database
-----------
mysql
snort
test
-----------
3 rows in set (0.00 sec)

Elegemos a Base de Dados de Snort

mysql>  use snort
mysql> SHOW TABLES;

..Agora deveriam sair-nos umas quantas tabelas..., se não sai nada é que algo fizemos mal.

mysql> quit
Bye

Passo Número 3: Configuração de Snort

É necessário criar um novo arquivo de configuração, para isso fazemos uso do arquivo de exemplo que temos em usr //local/etc/snort.conf.sample, configurar snort é algo bastante singelo, é importante dizer-lhe que queremos que trabalhe com mysql e especificar-lhe a base de dados, nome de usuário,etc.., a continuação copiei uma possível configuração:

# cp /usr/local/etc/snort.conf-sample /usr/local/etc/snort.conf
# ee /usr/local/etc/snort.conf
var HOME_NET 62.97.68.172   
var SMTP $HOME_NET
var HTTP_SERVERS $HOME_NET
var SQL_SERVERS $HOME_NET
var DNS_SERVERS $HOME_NET
var RULE_PATH /usr/local/share/snort

Linea 310 (aproximadamente):

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

Nas últimas lineas Elegemos as Réguas que queremos incluir :D

No arquivo snort.conf vemos que a variável HOME_NET admite várias opções, podemos fazer que snort filtre desde redes inteiras 62.97.68.169/29 até distintas redes,etc.., que filtre todo o que passe por um dispositivo de rede especificado, ou que filtre várias redes. Ao princípio do arquivo de configuração de exemplo temos uns exemplos. Para os que queiram pôr uma rede e não saibam como funciona o dos bits:

     Bitmask                Netmask                 IPs Totais /  IPs usables

     32                255.255.255.255                1                1
     31                255.255.255.254                2                1
     30                255.255.255.252                4                2
     29                255.255.255.248                8                6
     28                255.255.255.240                16               14
     27                255.255.255.224                32               30
     26                255.255.255.192                64               62
     25                255.255.255.128                128              126
     24                255.255.255.0                  256              254

     ...

     22                255.255.192.0                16320              16318
     20                255.255.128.0                32768              32766
     16                255.255.0.0                  65536              65534
     12                255.128.0.0                  8.388608+e6        8.388606+e6
     8                 255.0.0.0                    256^3              (256^3)-2
     0                 0.0.0.0     (Todas as IPS)  256^4              (256^4)-2.

No exemplo eu pus: 62.97.68.169/29 isto significa que essa Rede possui as seguintes ips:

62.97.68.169---Não a Podemos Usar--
62.97.68.170
62.97.68.171
62.97.68.172        Ma'scara de  Rede destas Ips: 255.255.255.248
62.97.68.173
62.97.68.174
62.97.68.175
62.97.68.176--Também não a Podemos Usar--

A Máscara da Subred nos define o número de Ips que tem a rede, para obter este número a operação a realizar seria a seguinte: 256 - 248 = 8 ips (das que há uma que abre e outra que fecha a família),esta família teria 6 ips usables..

Passo Número 4: Instalação e configuração de ACID

Para que ACID funcione bem é necessário instalar um par de programas (adodb, gd e phplot)

# cd /usr/ports/databases/adodb && make install clean
# cd /usr/ports/graphics/gd && make install clean
# cd /usr/ports/graphics/phplot && make install clean

Uma vez instalados estes programas procederemos à instalação e configuração de Acid .

# cd /usr/ports/security/acid && make install clean
# ee /usr/local/www/acid/acid_conf.php

Linea13:

$DBlib_path = "/usr/local/www/data.default/php/adodb";

Linea33:

$alert_dbname   = "snort";
$alert_host     = "localhost";
$alert_port     = "";
$alert_user     = "root";
$alert_password = "oi";

Guardamos e saímos.

Passo Número 5: APACHE

Instalamos Apache com mod_php4 (os que já o tengais instalado podeis saltar-vos este passo):

# cd /usr/ports/www/apache13 && make install clean
# cd /usr/ports/www/mod_php4 && make install clean

Modificámos httpd.conf adicionando vhost e contraseñas a nosso apache:

# mkdir /usr/local/etc/apache/conf/
# htpasswd -c /usr/local/etc/apache/conf/passwordAcid admin (para adicionar o usuário admin)
usámos htpasswd -c quando o fichero passwordAcid mesmo não existe, ou seja, para adicionar o primeiro usuário

# htpasswd  /usr/local/etc/apache/conf/passwordAcid Iucki (para adicionar outros usuários)

Se vamos usar o Apache unicamente para o Snort faremos (linea 376 aprox de httpd .conf):

# ee /usr/local/etc/apache/httpd.conf
DocumentRoot "/usr/local/www/acid"

Para todos:

<Directory "/usr/local/www/acid">
        AuthType Basic
        AuthName "Aqui ponde um nome que vos  goste"
        AuthUserFile usr/local/etc/apache/conf/passwordAcid
        require valid-user
        Options Indexes FollowSymLinks MultiViews
        AllowOverride none
        Order allow,deny
        Allow from all
</Directory>

NameVirtualHost *

<VirtualHost *>
        ServerAdmin        [email protected]
        ServerName        acid.lucki.homeunix.org
        DocumentRoot        /usr/local/www/acid
</VirtualHost>

O do ServerName é por se quereis ter várias Webs num mesmo Apache. Em http ://www.dyndns.org/ podeis obetener um subdominio grátis, o que nos vem bastante bem.


Hosted by www.Geocities.ws

1