Visite também: Br-Linux ·  VivaOLinux ·  LinuxSecurity ·  Dicas-L ·  NoticiasLinux ·  SoftwareLivre.org ·  [mais]
Voltar   Under-Linux.org Fóruns > UnderLinux Wiki
Wiki Classificados Galeria Reviews Jogos Comunidades RSS Feeds FAQ Termos de Uso Sobre
Cadastre-se FotosBlogs Lista de Membros Calendário Pesquisar Mensagens de Hoje Marcar Fóruns Como Lidos

Ferramentas pessoais
Publicidade

From UnderLinux Wiki

Tabela de conteúdo

DEBIAN SARGE -> SNORT + MYSQL + APACHE2 + ACIDLAB

Vamos começar peguem um café e mãos a obra... Configurando a rede conforme meu exemplo.

  • Snort -> Espécie de Sniffer com regras que identificam os mais variadas técnicas de footprint, ataque, bl´, blá, blá...
  • MySql -> Banco de dados onde o Snort irá armazenar os logs de alertas.
  • Apache2 -> Servidor Web para exibir as páginas de relatório do Snort.
  • Acidlab -> Programa que gera páginas de relatório apartir dos logs do Snort armazenados no MySql.

Servidores preferencialmente devem possuir IP estático então mãos a obra. Edite /etc/network/interfaces e ajuste para sua rede. Estou usando 192.168.3.150 no servidor.

Configurando a rede

# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
# The loopback interface
auto lo
iface lo inet loopback
# Primeira placa
auto eth0
iface eth0 inet static
address 192.168.3.150
netmask 255.255.255.0
network 192.168.3.0
broadcast 192.168.3.255
gateway 192.168.3.1

Como estaremos usando o SNORT é lógico que deveremos utilizar duas placas, minha outra rede é 192.168.10.0/24:

# /etc/network/interfaces – configuration file for ifup(8), ifdown(8)
# The loopback interface
auto lo
iface lo inet loopback
#Primeira placa
auto eth0
iface eth0 inet static
address 192.168.3.150
netmask 255.255.255.0
network 192.168.3.0
broadcast 192.168.3.255
gateway 192.168.3.1
auto eth1
iface eth1 inet static
address 192.168.10.150
netmask 255.255.255.0
network 192.168.10.0
broadcast 192.168.10.255

Reinicie sua rede:

# /etc/init.d/networking restart

Edite /etc/resolv.conf e adicione seus DNS´s:

search instrutor.com.br
nameserver 192.168.3.1
nameserver 200.199.252.68

Edite /etc/hosts e adicione seus hosts:

127.0.0.1 localhost.localdomain localhost benone
192.168.3.150 benone.instrutor.com.br benone
192.168.10.150 interna. instrutor.com.br interna
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts


Configurado o Hostname

#echo benone.instrutor.com.br > /etc/hostname
#hostname -F /etc/hostname

Restaurando as placas

#ifdown eth0 eth1 && ifup eth0 eth1

Removendo e instalando algumas coisinhas Antes de qualquer operação de pacotes vamos conferir nosso repositório e atualizar: Obtive bons resultados com o FTP da Debian no Brasil:

#apt-setup

e escolha o FTP --> BRASIL --> ftp.br.debian.org ou ftp.us.debian.org pode comentar os demais mirrors em /etc/apt/sources.list e manter apens os novos da ftp.br.debian.org ou ftp.us.debian.org e da security.debian após atualize:

#apt-get update

A intenção aqui é fornecer um exemplo de remoção de softwares desnecessários e instalação de alguns necessários bem como edição do inet, tapando buracos...

apt-get install wget bzip2 unzip zip ncftp nmap openssl lynx fileutils
apt-get remove lpr nfs-common portmap pidentd pcmcia-cs pppoe pppoeconf ppp pppconfig
update-rc.d -f exim remove
update-inetd --remove daytime
update-inetd --remove telnet
update-inetd --remove time
update-inetd --remove finger
update-inetd --remove talk
update-inetd --remove ntalk
update-inetd --remove ftp
update-inetd --remove discard

Instalando o Apache2 com suporte a PHP4 e mais uns “trequinhos”

apt-get install apache2 apache2-doc
apt-get install libapache2-mod-php4 libapache2-mod-perl2 php4 php4-cli php4-common php4-curl php4-dev php4-domxml php4-gd php4-imap php4-ldap php4-mcal php4-mhash php4-mysql php4-odbc php4-pear php4-xslt curl libwww-perl imagemagick

Para o apache aceitar quase vários tipos de páginas Index na raíz dos sites Edite /etc/apache2/apache2.conf e modifique:

DirectoryIndex index.html index.cgi index.pl index.php index.xhtml

para

DirectoryIndex index.html index.htm index.shtml index.cgi index.php index.php3 index.pl index.xhtml

Desabilitando a leitura do PHP por default em qualquer site do APACHE2 Edite /etc/mime.types e comente as linhas abaixo:

#application/x-httpd-php phtml pht php
#application/x-httpd-php-source phps
#application/x-httpd-php3 php3
#application/x-httpd-php3-preprocessed php3p
#application/x-httpd-php4 php4

Edite /etc/apache2/mods-enabled/php4.conf e comente as linhas abaixo:

# AddType application/x-httpd-php .php .phtml .php3
# AddType application/x-httpd-php-source .phps

Agora os módulos somente serão carregados quando inseridos na declaração do site. Edite /etc/apache2/ports.conf e adicione Listen 443 “Já fica pronto para https” & ^ )

Listen 80
Listen 443

Agora vamos habilitar alguns módulos no Apache modules (SSL, rewrite and suexec), se existir os simbolical links “atalhos” não é necessário fazer.

cd /etc/apache2/mods-enabled
ln -s /etc/apache2/mods-available/ssl.conf ssl.conf
ln -s /etc/apache2/mods-available/ssl.load ssl.load
ln -s /etc/apache2/mods-available/rewrite.load rewrite.load
ln -s /etc/apache2/mods-available/suexec.load suexec.load

Restarte o Apache:

/etc/init.d/apache2 restart

Instalando o MySql

apt-get install mysql-server mysql-client libmysqlclient12-dev

Configurando a senha do root do mysql

mysqladmin -u root password senhaparaorootdomysql

Quando você rodar #netstat -tap deverá aparecer uma linha parecida com esta:

tcp 0 0 localhost.localdo:mysql *:* LISTEN 2449/mysqld

Isto significa que o MySQL está acessível na porta 3306. Se você não visualizar esta linha, edite /etc/mysql/my.cnf comente skip-networking:

# skip-networking

Se você tiver que editar /etc/mysql/my.cnf restarte o MySQL:

/etc/init.d/mysql restart

Criando a base de dados do SNORT no MySql

Executados os passos acima, agora vamos passar para a preparação do mesmo para trabalhar com o snort.

# mysql –u root -p

já no shell do mysql.

> create database snort;
> grant insert, select on snort.* to snort@localhost identified by 'senha_do_snort';
> grant insert, select, delete, update, create on snort.* to acid@localhost identified by 'senha_do_acid';
> quit

Agora vamos instalar o SNORT e criar as estruturas da database do snort:

#apt-get install snort-mysql snort-rules-default
#cd /usr/share/doc/snort-mysql
#gzip –d create_mysql.gz
#mysql –u root –p snort < create_mysql

Ambos os processos irão criar a base de dados dentro do MySQL. Preparado o MySQL, agora vamos passar para o snort. Porque compilamos primeiro o mysql? Bom, porque o snort vai precisar de alguns cabeçalhos do mysql que estarão presentes no sistema somente após o mesmo estar instalado e o SNORT utiliza a estrutura de banco de dados do MYSQL. A libcap tem que estar instalada.

Agora vamos configurar o SNORT

Pausa para o cafézinho... ; ^ )

Vamos editar o arquivo /etc/snort/snort.conf Primeiro configure a rede interna no parâmetro já existente:

var HOME_NET [127.0.0.0/16,192.168.100.0/24]

Observe que indiquei a rede do localhost, reduz bastante os falsos positivos após a vírgula está minha rede interna e minha rede externa que sai para Internet é 192.168.200.0/24, mas por padrão declaramos que se não é da rede interna é considerada externa, como abaixo:

var EXTERNAL_NET !$HOME_NET

Um dado importante é declarar corretamente o banco de dados de saída como abaixo, normalmente já existente precisa completar os parâmetros:

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

Note que utilizei conforme criei no mysql, já que esta é a saída para o snort inserir os dados no mysql.

As regras de análise válidas estão no final do arquivo, como esta abaixo: include $RULE_PATH/local.rules

A variável $RULE_PATH é /etc/snort/rules/ e local.rules é um arquivo de regra para identificar ataques. Você pode inserir novas regras apenas descomentando as já existentes que se encontram no diretório em questão, as comentadas normalmente necessitam de configuração para não gerar falsos positivos e você também pode baixar novas regras colocar em /etc/snort/rules e inserir uma linha include como no exemplo acima para a regra ficar valendo.

OK! Com isto seu SNORT já está configurado. O SNORT é tido como o melhor IDS (Sistema de Detecção de Intrusão) para servidores Linux, ele não cria regras de bloqueio, você terá que criar suas regras no IPTABLES, ou utilizar o SNORT em conjunto com o GUARDIAN, este automatiza regras no IPTABLES de acordo com ocorrências no SNORT, porém pode bloquear serviços importantes da sua rede por causa dos falsos positivos, ataques que não são ataques, primeiro configure e utilize o SNORT durante um longo tempo até remover todos falsos positivos e acertar bem seu IDS, para depois pensar em utilizar o GUARDIAN.

Instalando e configurando o ACIDLAB

#apt-get install acidlab acidlab-doc acidlab-mysql libphp-adodb libphp-phplot wwwconfig-common

Instalando o acilab-mysql e o acidlab-doc o apt instala os demais como dependências.

Agora vamos configurar o ACIDLAB


Primeiro vamos criar um arquivo para declarar o site para o ACIDLAB no APACHE2

# cd /etc/apache2/sites-avaliable
# touch acidlab

Agora vamos aproveitar a declaração pronta do acidalab para publicar o site no Apache2

# vi acidlab

No vi em modo comando (sem dar insert) digite :r /etc/acidlab/apache.conf

Veja que ele carrega os módulos de php3 e php4 sendo que temos que carregar individualmente pois retiramos anteriormente da configuração geral.

Digite fora do insert :x ou :wq que o vi grava e sai

Publicamos o novo site

# a2ensite acidlab

Restartamos o apache

# /etc/init.d/./apache2 restart

Agora vamos configurar o ACIDLAB

# vi /etc/acidlab/acid_conf.php

No vi digite :32 vc vai direto para a linha 32 onde começamos a alterar o seguinte trecho:

$alert_dbname = "snort_log";
$alert_host = "localhost";
$alert_port = "";
$alert_user = "root";
$alert_password = "mypassword";
/* Archive DB connection parameters */
$archive_dbname = "snort_archive";
$archive_host = "localhost";
$archive_port = "";
$archive_user = "root";
$archive_password = "mypassword";

Para:

$alert_dbname = "snort ";
$alert_host = "localhost";
$alert_port = "";
$alert_user = "acid";
$alert_password = "senha_do_acid";
/* Archive DB connection parameters */
$archive_dbname = "snort ";
$archive_host = "localhost";
$archive_port = "";
$archive_user = "snort";
$archive_password = "senha_do_snort";

Pronto acesse http://localhost/acidlab utilizando algum browser (navegador) Vai parecer um erro, mas é normal na primeira vez a página que aparece, clique no link setup page que se encontra no texto da página.

Depois no botão Create_ACID_AG

E finalmente em home agora basta aguardar que começa a logar com o tempo e aparecer aí pode demorar algum tempo se sua rede tem pouco tráfego, o que vc pode fazer é descomentar as rules que comentei anteirormente que causam fake positive para ver atividade no acidlab atualizando a página após reiniciar o snort:

# /etc/init.d/./snort restart

Depois comente as regras novamente e restart o snort novamente, pois não queremos falsos positivos.

Bom era isso, estava devendo isso para vários alunos e se alguém aproveitar melhor ainda. Open source na veia! E espero que tenham gostado escrevi no correrio.

Qualquer coisa postem aí...

B3n0n3 "E1 To5c0" Bitencourt

Horários baseados na GMT -3. Agora são 1:02.


Powered by vBulletin®
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd
SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.