Mostrando postagens com marcador IDS. Mostrar todas as postagens
Mostrando postagens com marcador IDS. Mostrar todas as postagens

quarta-feira, 3 de julho de 2013

O nmap tem algumas flags especiais para enganar IDS's e firewall, você as conhece?

Dominando essas flags você pode rodar um scan de portas, obter as informações do alvo e nem ser detectado, ou na pior das hipóteses deixar um rastro que leve a uma máquina totalmente diferente das suas. Essas técnicas são comumente chamandas de técnicas anti-forense.

-f (fragmenta os pacotes); --mtu (usando a MTU especificada)


A opção -f faz com que o scan solicitado (incluindo scans usando ping) utilize pequenos pacotes IP fragmentados. A idéia é dividir o cabeçalho TCP em diversos pacotes para tornar mais difícil para os filtros de pacotes, os sistemas de detecção de intrusão, e outros aborrecimentos, detectar o que você está fazendo. Tenha cuidado com isto! Alguns programas tem problemas para lidar com estes pequenos pacotes. O sniffer da velha-guarda chamado Sniffit sofria uma falha de segmentação assim que recebia o primeiro fragmento. Especifique esta opção uma vez e o Nmap dividirá os pacotes em 8 bytes ou menos após o cabeçalho IP. Portanto, um cabeçalho TCP de 20 bytes seria dividido em 3 pacotes. Dois com oito bytes do cabeçalho TCP e um com os quatro restantes. É claro que cada fragmento também tem um cabeçalho IP. Especifique -f novamente para usar 16 bytes por fragmento (reduzindo o número de fragmentos). Ou então, você pode especificar o seu próprio tamanho de quebra com a opção --mtu. Não especifique também o-f se você usar o --mtu. A quebra deve ser um múltiplo de 8. Embora os pacotes fragmentados não passem por filtros de pacotes e firewalls que enfilerem todos os fragmentos IP, tal como a opção CONFIG_IP_ALWAYS_DEFRAG do kernel do Linux faz, algumas redes não aguentam o impacto no desempenho que isso causa, deixando a opção desabilitada. Outros não conseguem habilitar isso porque os fragmentos podem seguir por rotas diferentes na rede. Alguns sistemas de origem desfragmentam pacotes de saída no kernel. O Linux e o módulo de reastreamento de conexão do iptables é um exemplo desse tipo. Faça um scan enquanto executa um sniffer como o Ethereal para ter a certeza de que pacotes enviados estão fragmentados. Se o SO do seu host estiver causando problemas, tente a opção --send-eth para passar por cima da camada IP e enviar frames ethernet em estado bruto.

-D (Disfarça um scan usando chamarizes)


Faz com que um scan com chamarizes seja executado, o que parece ao host remoto que, o(s) host(s) que você especificou como chamarizes também estejam escaneando a rede-alvo. Com isso, o IDS poderá reportar 5 a 10 scans de portas de endereços IP únicos, mas não saberá qual IP estava realmente escaneando e qual era um chamariz inocente. Embora isso possa ser desvendado através de rastreamento de caminho de roteador, descarte de respostas (response-dropping) e outros mecanismos ativos, normalmente é uma técnica eficaz para esconder o seu endereço IP.

Separe cada host-chamariz com vírgulas, e você pode opcionalmente usar ME como um dos chamarizes para representar a posição do seu endereço IP real. Se você colocar ME na 6a. posição ou acima, alguns detectores de scan de portas comuns (como o excelente scanlogd da Solar Designer) pouco provavelmente irão mostrar o seu endereço IP. Se você não utilizar o ME, o nmap irá colocá-lo em uma posição aleatória.

Observe que os hosts que você utilizar como chamarizes devem estar ativos ou você poderá, acidentamente, inundar com SYN os seus alvos. Também será bastante fácil determinar qual é o host que está escaneando se houver apenas um host realmente ativo na rede. Você pode preferir usar endereços IP ao invés de nomes (de forma que as redes chamarizes não vejam você em seus logs dos servidores de nomes).

Chamarizes são utilizados tanto no scan com ping inicial (usando ICMP, SYN, ACK ou qualquer outro), como também durante a fase real de escaneamento de portas. Chamarizes também são usados durante a detecção de SO remoto (-O). Chamarizes não funcionam com a detecção de versão ou com o scan TCP connect.

Vale a pena observar que usar chamarizes demais pode deixar seu scan lento e potencialmente até torná-lo menos preciso. Outra coisa, alguns provedores de internet (ISP) irão filtrar os seus pacotes disfarçados, mas muitos não restringem pacotes IP disfarçados.

-S (Disfarça o endereço de origem)


Em algumas circunstâncias, o Nmap pode não conseguir determinar o seu endereço de origem (o Nmap irá dizer se for esse o caso). Nesta situação, use o -S com o endereço IP da interface que você deseja utilizar para enviar os pacotes.

Outro uso possível para esta flag é para disfarçar o scan e fazer com que os alvos achem que alguma outra pessoa está escaneando-as. Imagine uma empresa que está constantemente sofrendo scan de portas de um concorrente! A opção -e normalmente seria requerida para este tipo de uso e -P0 seria recomendável.

-e (Usa a interface especificada)


Diz ao Nmap qual interface deve ser utilizada para enviar e receber pacotes. O Nmap deveria ser capaz de detectar isto automaticamente, mas ele informará se não conseguir.

--source-port ; -g (Disfarça o número de porta de origem)


Um erro de configuração surpreendentemente comum é confiar no tráfego com base apenas no número da porta de origem. É fácil entender como isso acontece. Um administrador configura um firewall novinho em folha, só para ser inundado com queixas de usuários ingratos cujas aplicações param de funcionar. Em particular, o DNS pode parar de funcionar porque as respostas DNS UDP de servidores externos não conseguem mais entrar na rede. O FTP é outro exemplo comum. Em tranferências FTP ativas, o servidor remoto tenta estabelecer uma conexão de volta com o cliente para poder transferir o arquivo solicitado.

Soluções seguras para esses problemas existem, freqüentemente na forma de proxies no nível da aplicação ou módulos de firewall para análise de protocolo. Infelizmente também há soluções mais fáceis e inseguras. Observando que as respostas DNS chegam pela porta 53 e o FTP ativo pela porta 20, muitos administradores caem na armadilha de apenas permitir tráfego vindo dessas portas. Eles normalmente assumem que nenhum atacante irá notar e explorar essas brechas no firewall. Em outros casos, os administradores consideram isso uma medida provisória de curto prazo até que eles possam implementar uma solução mais segura. Então, eles normalmente se esquecem de fazer as atualizações de segurança.

Administradores de rede sobrecarregados não são os únicos a caírem nessa armadilha. Diversos produtos foram empacotados com essas regras inseguras. Mesmo a Microsoft é culpada. Os filtros IPsec que vieram com o Windows 2000 e com o Windows XP contém uma regra implícita que permite todo o tráfego TCP ou UDP da porta 88 (Kerberos). Em outro caso bastante conhecido, versões do firewall pessoal Zone Alarm, até a versão 2.1.25, permitiam qualquer pacote UDP entrante com a porta de origem 53 (DNS) ou 67 (DHCP).

O Nmap oferece as opções -g e --source-port (elas são equivalentes) para explorar essas fraquezas. Apenas forneça um número de porta e o Nmap irá enviar pacotes dessa porta onde for possível. O Nmap utiliza números de porta diferentes para que certos testes de detecção de SO funcionem direito, e as requisições DNS ignoram a flag --source-port porque o Nmap confia nas bibliotecas de sistema para lidar com isso. A maioria dos scans TCP, incluindo o scan SYN, suportam a opção completamente, assim como o scan UDP.

--randomize-hosts (Torna aleatória a ordem dos hosts-alvo)


Informa ao Nmap que ele deve embaralhar cada grupo de, no máximo, 8096 hosts antes de escaneá-los. Isso torna os scans menos óbvios a vários sistemas de monitoramento de rede, especialmente quando você combina isso com as opções de temporização lentas. Se você deseja fazer isso em grupos maiores, aumente o PING_GROUP_SZ no nmap.h e recompile. Uma solução alternativa é gerar uma lista de endereços IP-alvos com um scan de lista (-sL -n -oN ), embaralhar a lista com um script Perl e então fornecer a lista completa para o Nmap com -iL.

--spoof-mac (Disfarça o endereço MAC)


Solicita ao Nmap que utilize o endereço MAC informado para todos os frames ethernet em estado bruto (raw) que ele enviar. Esta opção implica em --send-eth para assegurar que o Nmap realmente envie pacotes no nível ethernet. O MAC fornecido pode assumir diversos formatos. Se for apenas a string “0”, o Nmap irá escolher um MAC completamente aleatório para a sessão. Se a string informada for um número par de dígitos hexa (com os pares opcionalmente separados por dois pontos), o Nmap irá usa-la como o MAC. Se menos do que 12 dígitos hexa forem informados, o Nmap preenche o restante dos 6 bytes com valores aleatórios. Se o argumento não for um 0 ou uma string hexa, o Nmap irá procurar no nmap-mac-prefixespara encontrar o nome de um fabricante contendo a string informada (não é sensível a maiúsculas ou minúsculas). Se encontrar, o Nmap usa o OUI (prefixo de 3 bytes) do fabricante e preenche os 3 bytes restantes aleatoriamente. Exemplos de argumentos --spoof-mac válidos são Apple, 0,01:02:03:04:05:06, deadbeefcafe, 0020F2 e Cisco.

Para mais informações visite o site com o manual do nmap.

quarta-feira, 22 de maio de 2013


Introdução

Pessoal, aqui aprenderemos, passo a passo, como instalar e configurar o 
Snort
 com suporte a
MySQL
 e integrado com o 
Guardian
. Mas antes de colocar a mão na massa, vamos ver o que é esse tal de Snort e para que serve. 
O Snort é um sistema de detecção de intrusão de rede, ou simplesmente NIDS, é uma ferramenta open source, que nos permite monitorar o tráfego da rede e descobrir quando a rede está sofrendo de acessos não autorizados que podem ser de um potencial atacante. 
O Snort funciona da seguinte maneira: Inicialmente os pacotes são capturados pelo Snort utilizando o DAQ, depois são remontados pelos pré-processadores para analisar seu conteúdo e comparar com as assinaturas existentes, para dar confiabilidade ao IDS e evitar falso-negativo. Depois, o Payload é comparado com as regras que possuímos, então, caso exista uma regra que bata com o Payload, é gerado o output, que pode ser um alerta, logs ou alguma medida de ação. 
O Snort pode vir a ter duas coisas que podem atrapalhar sua confiabilidade, que são:
  • Falso-negativo → É quando um pacote passa sem ser notificado pelo IDS , o IDS pensa que o pacote é fluxo normal. Em minha opinião, pior que os falsos-positivos.
  • Falso-positivo → É quando o pacote é notificado como intrusivo, mas na verdade, é somente um falso alerta, alarme falso. O grande problema de muito falso positivo é a ferramenta perder a credibilidade, é a velha história do alarme do carro que dispara muito, e quando realmente for um furto, você não vai acreditar que estão levando seu carro.

Fonte: 
Sp0oKeR Labs: Introdução ao Snort - Serie Snortando (Parte 1)
Bem, vamos ao que interessa. Mão na massa! 

MySQL

Primeiramente, iremos instalar e configurar nosso banco de dados 
MySQL
# aptitude install mysql-server 
Depois de instalar, iremos criar o usuário "snort": 
# mysql -u root -p 
Entre com a senha de root que você forneceu durante a instalação. 
mysql> grant all privileges on snort.* to snort@localhost identified by "123456";
mysql> quit; 
Agora entre no MySQL usando o usuário que acabamos de criar: 
# mysql -u snort -p 
Informe a senha que utilizou para criar o usuário. Verifique as bases: 
mysql> show databases; 
Crie a base Snort no banco: 
mysql> create database snort; 
Saia: 
mysql> quit 

Snort

Agora é hora de instalar o Snort: 
# aptitude install snort-mysql 
Durante a instalação, informe a faixa de rede e a máscara que sua rede usa. Depois você será questionado se deseja que seja criado uma base de dados para gravar os logs, selecione "Sim" e depois dê OK. 
Agora acesse o diretório da documentação do Snort que contém as tabelas: 
# cd /usr/share/doc/snort-mysql 
Use o arquivo "create_mysql" para criar as tabelas na base Snort do banco: 
# zcat create_mysql.gz | mysql -u snort -h localhost -p snort 
Informe a senha do usuário "snort". Depois acesse a base Snort do banco e verifique se as tabelas foram criadas com sucesso: 
# mysql -u snort -p 
(Entre com a senha do usuário snort) 
mysql> show databases;
mysql> use snort;
mysql> show tables;
mysql> status;
mysql> quit; 
Vá ate o diretório onde estão os arquivos de configuração do Snort: 
# cd /etc/snort 
Renomeie o arquivo "snort.conf": 
# mv snort.conf snort.conf.orig 
Crie uma cópia do arquivo que acabamos de renomear sem os comentários, para o arquivo ficar menor e mais legível: 
# cat snort.conf.orig | grep -v ^# | grep . > snort.conf 
Agora vamos editar o arquivo "snort.conf": 
# pico snort.conf 
Na primeira linha (var HOME_NET any) remova o "any" e digite a faixa de rede/máscara: 
var HOME_NET 192.168.0.0/24
Agora, quase no final do arquivo, abaixo da linha (output log_tcpdump: tcpdump.log), digite o seguinte: 
output database: log, mysql, user=snort password=123456 dbname=snort host=localhost
output alert_full: /var/log/snort/alert
Entendendo: Na primeira linha informamos o nome de usuário da banco, a senha, o nome da base e o host do banco. No exemplo estou usando 
localhost
, mas é muito importante você colocar o banco de dados em outro servidor. Já na segunda linha, informamos o Snort para gerar os logs no arquivo alert. 
Agora vá até o arquivo "snort.debian.conf" e dê uma olhada na linha (DEBIAN_SNORT_INTERFACE="eth0"), mude-a caso deseje que o Snort escute em outra interface. 
Remova o arquivo de pendência de configuração do banco de dados: 
# rm db-pending-config 
Entre no arquivo /etc/snort/database.conf e comente a seguinte linha: 
### output database: log, mysql,
Depois disso, pode iniciar o Snort: 
# /etc/init.d/snort start 
Faça um teste, fique monitorando o arquivo de log do Snort: 
# tail -f /var/log/snort/alert 
E em outra máquina, use o Nmap para escanear o host do Snort: 
# nmap -sX 192.168.0.1 
Obs.: Esse é o IP do Snort no meu laboratório. 
Fique acompanhando o arquivo "alert" e veja o que acontece. 
Pronto. Até aqui já temos o Snort pronto para gerar os alertas e gravar no banco de dados, mas ele ainda não é capaz de bloquear nada, pois não está com o IPS Guardian. Vamos fazer isso agora. 
 

Guardian

Primeiro baixaremos o Guardian: 
Agora iremos descompactar: 
# tar -xvzf guardian-1.7.tar.gz
# cd guardian-1.7
 
Editar o arquivo "guardian.conf": 
# pico guardian.conf 
Informar o IP do servidor na linha HostIpAddr: 
HostIpAddr        192.168.0.1
Informe a interface na linha Interface: 
Interface        eth0
Na linha "AlertFile", informe o caminho do arquivo "alert": 
AlertFile        /var/log/snort/alert
Salve o arquivo e copie para o 
/etc/
# cp guardian.conf /etc/ 
Crie o arquivo /etc/guardian.ignore e nele informe os IPs que serão ignorados pelo Guardian. No caso, pode colocar o IP do servidor: 
# pico /etc/guardian.ignore 
192.168.0.1
Copiaremos os scripts de bloqueio e desbloqueio: 
# cd scripts
# cp iptables_block.sh /sbin/guardian_block.sh
# cp iptables_unblock.sh /sbin/guardian_unblock.sh
 
Caso seu sistema esteja em português, edite o arquivo "guardian.pl": 
# cd /opt/guardian-1.7
# pico guardian.pl
 
Procure pela linha que contém "inet addr" (linha 320) e mude para: 
inet end
Salve o arquivo e copie para o 
/sbin/
# cp guardian.pl /sbin 
Crie o arquivo de log do Guardian: 
# touch /var/log/guardian.log 
Criaremos o script para o Guardian ser executado automaticamente durante o boot: 
# pico /etc/init.d/guardian 
#!/bin/bash 
test -f /sbin/guardian.pl || exit 0
case "$1" in
    start)
          guardian.pl -c /etc/guardian.conf
          ;;
    stop)
          kill -9 $(pgrep guardian.pl)
          ;;
    *)
          echo "Opção invalida. Use start ou stop."
          exit 2
          ;;
esac
exit 0
Dê permissão de execução para o script: 
# chmod 755 /etc/init.d/guardian 
Agora pode iniciar o Guardian com o comando: 
# /etc/init.d/guardian start 
E parar com o: 
# /etc/init.d/guardian stop 
Habilite o Guardian para ser executado durante o boot com o assistente rcconf
# aptitude install rcconf
# rcconf
 
Marque a opção do Guardian e dê OK. 

Conclusão

Agora é só fazer os testes e ver se está tudo OK. O Guardian está bloqueando ataques, você pode usar o mesmo teste antes de executar o 
Nmap
 como mostrado acima e ver se o Guardian vai bloquear o IP do atacante. 
Pessoal, é isso aí. Espero que tenham gostado do post. Adiante postarei um artigo de instalação e configuração do Snort com o Barnyard2 mais o Guardian e suporte ao MySQL. 
Creditos: rik_99(VOL)

Introdução

Snort é um sistema de detecção de intrusos (IDS), o qual usa seus sensores e um conjunto de regras para monitorar todo o tráfego da rede e gerar alertas de possíveis ameaças à segurança de seus sistemas. Com a ajuda do plugin SnortSam, será possível automatizar bloqueios de endereços IP em seu firewall. 
Neste tutorial será mostrado como instalar e configurar o Snort. Como este pacote só gera alertas de ameaças, será necessária a ajuda do plugin SnortSam para recebê-los e executar uma regra de firewall para bloquear o endereço IP do computador mal-intencionado. 
Para visualizar os alertas do Snort utilizaremos uma interface amigável de um sistema Web chamado BASE (Basic Analysis and Security Engine), conectada a uma base de dados emMySQL
Abaixo, o sistema operacional e versões dos pacotes utilizados:
  • S.O. → Debian Squeeze 6.0.5
  • Snort → 2.9.2.2
  • SnortSam → 2.70
  • Firewall → IPtables
  • BASE → 1.4.5
  • MySQL → 5.1

Para proceder a instalação dos pacotes foi utilizado um servidor com duas placas de rede atuando como firewall/roteador, recebendo Internet por uma placa e distribuindo para a rede interna através da outra placa. 
Endereços IPs do firewall:
  • eth0 = 10.0.0.5 - obtido por DHCP = Internet (WAN)
  • eth1 = 192.168.1.1 - IP fixo - Rede interna (LAN)

De forma resumida, para utilizar o Snort com o SnortSam, será necessário:
  1. Baixar o código fonte do Snort;
  2. Aplicar patch SnortSam sobre o fonte do Snort;
  3. Compilar e instalar Snort;
  4. Baixar código fonte do SnortSam;
  5. Compilar e instalar SnortSam. 

Instalação do Snort

Inicie pelos procedimentos de compilação e instalação do 
Snort
, para isto é preciso instalar algumas dependências via 
apt-get
# apt-get install -y libfont-afm-perl libgcrypt11 libgnutls26 libgpg- error0 libhtml-format-perl libhtml-parser-perl autoconf automake # apt-get install -y libhtml-tagset-perl libhtml-tree-perl libltdl7 libmailtools-perl libmysqlclient16 libmysql++-dev libpcap0.8 libpcre3 
# apt-get install -y libprelude2 libtasn1-3 liburi-perl libwww-perl oinkmaster libpcap-dev libpcre3-dev libxml2-dev bison flex libprelude-dev libdumbnet-dev 

Outras dependências

Instalando 
libdnet
# wget http://libdnet.googlecode.com/files/libdnet-1.12.tgz
# tar zxvf libdnet-1.12.tgz
# cd libdnet-1.12
# ./configure --prefix=/usr --enable-shared
# make
# make install
 
Instalando DAQ
# cd ..
# wget
 http://www.snort.org/downloads/1623 -O daq-0.6.2.tar.gz
# tar zxvf daq-0.6.2.tar.gz
# cd daq-0.6.2
# ./configure
# make
# make install
 
Atualizando as bibliotecas (importante para que não ocorra alguns erros): 
# echo >> /etc/ld.so.conf /usr/lib
# ldconfig
 
Preparando o Snort: 
# cd ..
# wget
 http://www.snort.org/dl/snort-current/snort-2.9.2.2.tar.gz
# tar zxvf snort-2.9.2.2.tar.gz
# cd snort-2.9.2.2
 
Download e aplicação do patch SnortSam: Baixe o patch compatível com a versão do Snort, no caso 2.9.2.2: 
Descompacte na mesma pasta do código fonte do Snort e aplique o patch: 
# gunzip snortsam-2.9.2.2.diff.gz
# patch -p1 < snortsam-2.9.2.2.diff
 
Compilar e instalar o Snort: 
# ./configure --prefix=/usr/local/snort --with-mysql --with-daq-libraries=/usr/local/lib/daq/ --disable-prelude --disable-rzb-saac
# make
# make install
 
Caso encontre algum erro de razorback ou libtool, faça os procedimentos abaixo: 
1. Edite o arquivo "configure.in", comente as linhas: 1526 à 1557, que trata sobre o razorback e para corrigir o libtool.
2. Edite o arquivo "autojunk.sh" acrescentando o parâmetro: "-- force", na linha onde consta o comando libtoolize
3. Por último, torne o arquivo "autojunk" executável e execute: 
# chmod +x autojunk.sh
# ./autojunk.sh
 
Repita o processo de compilação e instalação. 
Crie a pasta para os arquivos de configuração do Snort e copie os arquivos de configuração fornecidos na pasta do código fonte: 
# mkdir /etc/snort
# cp src-pacote-snort/etc/*.* /etc/snort/
 
Edite o arquivo /etc/snort/snort.conf, localize e altere as linhas para que fique conforme abaixo: 
var RULE_PATH /etc/snort/rules
var SO_RULE_PATH /etc/snort/so_rules
var PREPROC_RULE_PATH /etc/snort/preproc_rules 
dynamicpreprocessor directory /usr/local/snort/lib/snort_dynamicpreprocessor
dynamicengine /usr/local/snort/lib/snort_dynamicengine/libsf_engine.so 
#dynamicdetection directory /usr/local/lib/snort_dynamicrules 
# Linhas necessárias para enviar os alertas para o banco de dados Mysql.
output database: log, mysql, user=snort password=senha-snort dbname=snort host=localhost
output database: alert, mysql, user=snort password=senha-snort dbname=snort host=localhost 
# Linha necessária para enviar os alertas específicos ao daemon SnortSam.
output alert_fwsam: 127.0.0.1:898/password
Em "Customize your rule site", comente todas regras com a exceção da "icmp-info.rules", pois será a única regra usada em nossos teste. Salve e feche o arquivo de configuração. 
Crie o usuário "snort" para o sistema: 
# useradd snort -d /var/log/snort -s /bin/false -c SNORT_IDS 
Crie uma pasta para os logs: 
# mkdir /var/log/snort
# chown -R snort /var/log/snort
 
Faça o download do pacote de regras do Snort no site oficial (necessário criar uma conta no site):
E descompacte em 
/etc/snort/
Faça um primeiro teste, execute o comando para que o Snort mostre na tela os pacotes da rede capturados, mas antes, coloque a interface eth0 no modo promíscuo: 
# ifconfig eth0 promisc
# /usr/local/snort/bin/snort -v -i eth0 

Instalação do MySQL e BASE

Instalação do 
MySQL
# apt-get install mysql-server -y 
O instalador irá pedir uma senha de acesso root ao MySQL (coloque a senha que preferir). Acesse o console de administração do MySQL e coloque a senha criada na hora da instalação:
# mysql -u root -p 
Use os comandos abaixo para criar a base de dados e usuário para o Snort: 
mysql> create database snort;
mysql> grant all on snort.* to snort@localhost identified by 'senha-snort';
mysql> flush privileges;
mysql> exit; 
Crie as tabelas importando o arquivo "create_mysql" encontrado dentro do código fonte do Snort: 
# cd src-pacote-snort/schema
# mysql -u root -p snort < create_mysql
 
Instalar o BASE
# apt-get install acidbase -y 
O instalador irá perguntar qual senha será usada para acessar a base de dados snort no MySQL, digite "senha-snort", confirme a senha digitando-a novamente. 
Acrescente o acidbase no Apache
# nano /etc/apache2/sites-enabled/000-default 
Posicione o cursor antes da tag </VirtualHost>, aperte Ctrl+R e insira o caminho /etc/acidbase/apache.conf
Permita o acesso via rede local alterando a linha: 
allow from 127.0.0.0/255.0.0.0 
Para: 
allow from 192.168.1.0/255.255.255.0
Reinicie o serviço apache2: 
# invoke-rc.d apache2 restart 
Acesse a página do acidbase via rede local: http://192.168.1.1/acidbase 
Para completar a instalação, surgirá uma página com um erro, mas é normal. Clique em Setup Page e depois em Create_ACID_AG. Após feita a instalação com sucesso, acesse novamente o endereço da página do acidbase. 

Instalação do serviço SnortSam

Execute os comandos: 
# wget http://www.snortsam.net/files/snortsam/snortsam-src-2.70.tar.gz
# tar zxvf snortsam-src-2.70.tar.gz
# cd snortsam
# chmod +x makesnortsam.sh
# ./makesnortsam.sh
# cp snortsam /usr/local/bin
 
Crie um arquivo "snortsam.conf" em /etc e adicione as seguintes linhas de configuração: 
defaultkey password
accept localhost
keyinterval 30 minutes
dontblock 192.168.1.1   # rede local
rollbackhosts 50
rollbackthreshold 20 / 30 secs
rollbacksleeptime 1 minute
logfile /var/log/snort/snortsam.log
loglevel 3
daemon
nothreads
# linha importante para gerar os bloqueios via iptables
iptables eth0 LOG
bindip 127.0.0.1
Pra finalizar as configurações, escolha um arquivo de regras dentro da pasta 
/etc/snort/rules/
 e acrescente no final da regra o parâmetro "fwsam: src, 5 minutes", onde src é o IP de origem e 5 minutes é o tempo em que o IP de origem será bloqueado. 
Exemplo: Edite o arquivo "icmp-info.rules", encontre e descomente a regra com a descrição "ICMP-Info Echo Reply". Acrescente nesta regra o parâmetro "fwsam: src, 5 minutes" ao final da linha, como abaixo: 
alert icmp $EXTERNAL_NET any -> $HOME_NET any (msg:"ICMP-INFO Echo Reply"; icode:0; itype:0; classtype:misc-activity; sid:408; rev:6;fwsam: src, 5 minutes;)

Testes finais

Inicie todos os serviços: 
# /usr/local/snort/bin/snort -u snort -i eth0 -c /etc/snort/snort.conf -l /var/log/snort -Dq 
Para depurar erros do Snort, inicie o serviço sem o parâmetro "-Dq". 
# /usr/local/bin/snortsam 
Para depurar erros do SnortSam, inicie o serviço snortsam-debug que se encontra na mesma pasta do pacote "snortsam-src-2.70.tar.gz" descompactado e compilado anteriormente. 
Agora peça para alguém de fora de sua rede pingar para seu servidor e acompanhe via BASE os alertas gerados pelo Snort. Também é possível acompanhar os logs pra analisar os bloqueios ou possíveis erros de configuração: 
# tail -f /var/log/snort/snortsam.log 
Com Snort e SnortSam também é possível trabalhar de forma distribuída, você pode instalar Snort em outro local estratégico de sua rede e configurá-lo para que envie os alertas para o Daemon SnortSam em seu firewall, fazendo com que ele aplique a regra de bloqueio. 
* Mas lembre-se, é possível que o Snort gere falsos positivos, então seja cauteloso ao acrescentar o parâmetro fwsam nas regras. 

Referências

Snort e BASE no Debian:

Documentação do SnorSam:
Creditos:viniciusraupp(VOL)​
Subscribe to RSS Feed Follow me on Twitter!