Implementação do SNORT e ACID distribuição Conectiva linux 10 Pacotes necessários: snort acid mysql php4-mysql Para instalarmos o snort juntamente com o acid necessitamos ter uma rede configurada funcionando perfeitamente. O Primeiro passo para começarmos a configuração do snort é criarmos o banco de dados onde o snort irá alojar os seus logs que o acid utilizará para fazer a analise dos dados . Para iniciar a configuração do MySQL execute o seguinte comando : #/user/bin/mysql_install_db Após esse comando será necessário fornecermos a senha de root do nosso banco de dados, fique atento não é a senha de root do sistema e sim do nosso banco que acabamos de criar. Agora vamos startar o mysqlcom o comando seguinte: #cds #./mysql start O próximo passo e criar o banco, os úsuarios, e as permições necessárias para cada usuário veja como fazer isso: 1º entre no banco como super usuário (do banco) #mysql -u root -p enter password: (digite a senha de root do banco) 2º crie o banco de dados do snort (ex: snortdb) mysql > create database snortdb; 3ª crie os usuário e as suas necessárias permissões usuário snort mysql > grant insert, select, update on snortdb.* from snort@localhost \ identified by 'senha_para_user_snort' ; (as permições são de inserir,selecionar,atualizar só o que o usuário snort precesa) usuário acid mysql>grant insert, select, delete, update, create on snortdb. * from acidlocalhost\ identified by 'senha_para_user_acid' ; Pronto criada a base de dados e os usuários necessários, devemos ir até o diretório usr/share/doc/snort xxxx lá está contido um script para criar as tabelas e demais estruturas que o Snort irá utilizar. Estando nesse diretório, execute o seguinte comando: # mysql -u root -p snortdb < create_mysql O comando indica que como super usuário no banco execute o arquivo create_mysql que cria todas as estruturas necessárias para o snort trabalhar. Depois execute este comando que também serve para criar as estruturas necessárias do snort # bzcat snortdb-extra.bz2 | mysql -u root -p snort Terminando de configurar a estrutura da base de dados do snort passamos agora para a configuração do próprio snort vamos editar o arquivo que fica em /etc/snort/snort.conf devemos alterar as seguintes linhas desse arquivo: #var HOME_NET $eth0_ADDRESS var HOME_NET [127.0.0.1,10.0.0.0/16] (aqui indicamos o(s)ip(s)da(s)maquinas onde o snort trbalhará) # Set up the external network addresses as well. A good start # may be "any"... var EXTERNAL_NET any (Em external_net você irá configurar o que o Snort deve considerar como sendo uma rede externa; no exemplo, o parâmetro any indica qualquer rede) # pode-se colocar !$HOME_NET para excluir a rede interna o # HOME_NET # Define the addresses of DNS servers and other hosts if # you want to ignore portscan false alarms from them... var DNS_SERVERS [10.0.0.12/32] (aqui indicamos o(s)ip(s)da(s)maquinas servidor de DNS para que o o snort não considere como sendo tentativas de portscan) Logo mais adiante do arquivo devemos descomentar a linha de comando que refrencia o nosso banco de dados # database: log to a variety of databases # --------------------------------------- # See the README.database file for more information about # configuring and using this plugin. (essa linha deve ser descomentada) output database:log, mysql, user=snort(usuario o snort) dbname=snort(banco de dados) \ host=localhost password=senha123(senha do usuario snort) # output database: log, postgresql, user=snort dbname=snort # output database: log, unixodbc, user=snort dbname=snort No final do arquivo de configuração temos as regras que o snort usara geralmente essas regras já vem descomentadas por padrão devem estar parecidas com essas: include $RULE_PATH/bad-traffic.rules include $RULE_PATH/exploit.rules include $RULE_PATH/scan.rules include $RULE_PATH/finger.rules include $RULE_PATH/ftp.rules include $RULE_PATH/telnet.rules include $RULE_PATH/rpc.rules include $RULE_PATH/rservices.rules include $RULE_PATH/dos.rules include $RULE_PATH/ddos.rules include $RULE_PATH/dns.rules include $RULE_PATH/tftp.rules e muito mais. O último passo para a configuração do Snort é editar o arquivo /etc/sysconfig/snort. A seguir são mostradas as opções a serem configuradas: INTERFACE=eth0 AUTO=no ACTIVATE=no A variável INTERFACE indica em qual interface o Snort irá escutar, a variável AUTO=no indica que o Snort deverá pegar o endereço IP fornecido no arquivo de configuração; caso seja especificada essa opção como yes, o Snort irá pegar o valor IP diretamente da interface especificada, ignorando o valor presente no arquivo de configuração. A variável ACTIVATE indica se o Snort deverá ser executado sempre que a interface "subir", pois quando a interface "cai", o Snort "cai" junto. Pronto agora é so startar o snort com o comando : #cds #./snort start Agora vamos configurar o acid, mas para isso devemos startar o apache com o comando #cds #./apache lembre-se que o acid deve ser instalado na pasta do apache. Então vamos editar o arquivo que fica em: /srv/www/default/html/acid/config/acid_conf.php: devemos fazeras seguintes alterações: $alert_dbname = "snortdb";(nome do banco de dados) $alert_host = "localhost"; $alert_port = ""; $alert_user = "acid";(nome do usuário que o acid utiliza para acessar o banco) $alert_password = "acid_senha";(senha do usuário) Agora reestartamos o snort com o comando: #cds #./snort restart Terminaremos de configurar o acid abrindo o brawser digitando o endereço: localhost/acid/acid_man.php Agoraé so clicar em no botão CREATE ACID AG e aparecerá as seguintes mensagens: Sucessfully created `acid_ag`Sucessfully created `acid_ag_alert` Sucessfully created `acid_ip_cache` Sucessfully created 'acid_event' A administração do acid é todo feita através de interface gráfica Pronto agora devemos retirar a permissão de criação do usuário acid em nosso banco para não abrir buracos de falhas : # mysql -u root -p mysql> revoke create on snort.* from acid@localhost; mysql> quit Para testar a nossa configuração vá até outra maquina e execute o comando nmap na maquina onde estalamos o snort e confira a detecção do ataque . Se acontecer alguma coisa durante a configuração e o snort não funcionar refaça todos os passos anteriores com muita atenção . Espero ter ajudado !!! contato: Universidade do Estado de Mato Grosso - UNEMAT tutoriallinux@unemat.br