|
|||||||
| Wiki | Classificados | Galeria | Reviews | Jogos | Comunidades | RSS Feeds | FAQ | Termos de Uso | Sobre |
| Cadastre-se | Fotos | Blogs | Lista de Membros | Calendário | Pesquisar | Mensagens de Hoje | Marcar Fóruns Como Lidos |
FerramentasPublicidade |
From UnderLinux Wiki
[editar] Instalação Snort + GuardianO objetivo deste tutorial é ter um sistema de defesa contra ataques maliciosos, não pense que apenas seguindo este tutorial seu sistema vai estar a prova de balas contra invasões e outros tipos de ataques, digo isso porque nenhum sistema é perfeito. Contudo a combinação do Snort com o Guardian pode ser considerada uma ferramenta muito util em um servidor que precisa de um minimo de segurança. O Snort funciona como um sniffer (analisador de pacotes), fazendo a monitoração dos pacotes que passam pelo seu sistema, quando ele detecta alguma assinatura digital que indique um ataque em potencial contra o seu sistema o Snort gera o alerta nos seus arquivos de logs. O problema é que o Snort diferentemente do Portsentry, apenas gera os alertas não podendo bloquear os hosts que fizeram o ataque, Ja li alguns tutorias pela internet sobre o Snort em português (e agradeço os autores por o terem escrito) mas infelizmente eles apenas mostram como instalar o Snort somente e esquecem da ferramenta chamada Guardian que tem o papel de ler os logs do Snort em tempo real e bloquear os hosts que fizeram os ataques. [editar] Instalando Snort e suas DependênciasAgora que estamos conversados sobre o objetivo deste tutorial, chegou a hora de botar a mão na massa. [editar] LibpcapPrimeiramente vou avisando que o Snort depende de uma biblioteca chamada libpcap, que pode ser baixada em http://www.tcpdump.org/release/libpcap-0.7.1.tar.gz como eu estou usando o Slackware 8.1 que ja vem com o pacote tcpdump não precisei instalar o libpcap, se na hora da compilação o Snort gerar um tipo de erro de falta dessa biblioteca você tera que seguir os seguintes passos descritos abaixo, lembrando que todos as operações foram feitas no diretorio /usr/locar/src. bash-2.05a# tar -xvzf libpcap-0.7.1.tar.gz bash-2.05a# cd libpcap-0.7.1/ bash-2.05a# ./configure bash-2.05a# make bash-2.05a# make install [editar] SnortVamos baixar o codigo fonte do Snort em http://www.snort.org/dl/snort-1.9.0.tar.gz, eu usei a versão 1.9.0 neste tutorial. O processo de instalação é simples como mostrado abaixo. bash-2.05a# tar -xvzf snort-1.9.0.tar.gz bash-2.05a# cd snort-1.9.0/ bash-2.05a# ./configure bash-2.05a# make bash-2.05a# make install Criando o diretorio onde ficaram as configurações do Snort bash-2.05a# mkdir /etc/snort [editar] Snort RulesVamos baixar o pacote de regras atualizadas que o Snort usa, o pacote se chama snortrules-stable.tar.gz e pode ser baixado em http://www.snort.org/dl/rules/snortrules-stable.tar.gz. Descompactando e copiando o conteudo para o diretorio onde ficam as configurações do Snort. bash-2.05a# tar -xvzf snortrules-stable.tar.gz bash-2.05a# cd rules/ bash-2.05a# cp * /etc/snort/ [editar] Configurando o SnortEditando o arquivo de configurações do Snort que se encontra em /etc/snort/snort.conf, vamos aplicar algumas poucas mudanças para o Snort poder rodar sem problemas. var HOME_NET any mudar o any para o ip de seu sistema ou da rede inteira, por exemplo eu estou usando o ip 192.168.1.1 na minha placa de rede mas eu posso usar a notação 192.168.1.0/24 para o Snort farejar os ips 192.168.1.1 ate 192.168.1.254 . var RULE_PATH ../rules mudar o ../rules para o diretorio onde estão os arquivos de regras do Snort, como eu copiei todo o conteudo de regras para o /etc/snort mudei o valor para /etc/snort . include $RULE_PATH/bad-traffic.rules são os arquivos de regras que serão usados pelo Snort, estão nas linhas finais do snort.conf e cabe a você habilitar o que lhe convem (eu habilitei todos), para habilitar basta tirar o # do começo da linha (descomentar a linha) e para desabilitar basta adicionar o # ao começo da linha (comentar a linha). [editar] Criando o usuario e o grupo para rodar o Snortbash-2.05a# groupadd snort bash-2.05a# useradd snort -g snort [editar] Criando o diretorio de logs do Snortbash-2.05a# mkdir /var/log/snort [editar] Alterando o dono dos diretorios que o Snort irá usar para usuario snort e grupo snortbash-2.05a# chown snort.snort /etc/snort/ -R bash-2.05a# chown snort.snort /var/log/snort/ -R [editar] Testando o SnortVamos testar se esta tudo certo para que o Snort funcione corretamente, vamos inicia-lo e ver as mensagens de log. bash-2.05a# snort -u snort -g snort -D -c /etc/snort/snort.conf -l /var/log/snort/ bash-2.05a# tail /var/log/messages Dec 6 22:05:15 slack snort: All Dec 6 22:05:15 slack snort: Dec 6 22:05:15 slack snort: Portscan2 config: Dec 6 22:05:15 slack snort: log: /var/log/snort//scan.log Dec 6 22:05:15 slack snort: scanners_max: 3200 Dec 6 22:05:15 slack snort: targets_max: 5000 Dec 6 22:05:15 slack snort: target_limit: 5 Dec 6 22:05:15 slack snort: port_limit: 20 Dec 6 22:05:15 slack snort: timeout: 60 Dec 6 22:05:16 slack snort: Snort initialization completed successfully, Snort running Pela ultima linha constatamos que esta tudo certo com o Snort. Se o seu objetivo era apenas instalar o Snort para ver como anda os ataques ao seu sistema o tutorial acaba aqui para você. Mas se por acaso você alem de detectar os ataques quer barrar o trafego da maquina hostil ao seu sistema, continue com a instalação do Guardian. [editar] Instalando o GuardianBaixe o Guardian em http://www.snort.org/dl/contrib/other_tools/guardian/guardian-1.6.tar.gz, a versão usada neste tutorial é o Guardian 1.6, lembrando que o Guardian é escrito em perl, portanto é necessario você ter o perl instalado no seu sistema. Descompactando o Guardian. bash-2.05a# tar -xvzf guardian-1.6.tar.gz bash-2.05a# cd guardian-1.6/ [editar] Configurando o GuardianAgora você tem que decidir qual programa filtro de pacotes quer que funcione junto com o Guardian para barrar o trafego das maquinas hostis ao seu sistema, O Guardian funciona junto com dois scripts shell chamados guardian_block.sh e guardian_unblock.sh.
Sendo assim vamos ao diretorio scripts para copiar esses dois scripts para o /usr/local/bin/ bash-2.05a# cd scripts/ bash-2.05a# ls freebsd_block.sh freebsd_unblock.sh ipchain_block.sh ipchain_unblock.sh iptables_block.sh iptables_unblock.sh Como mostrado nesse diretorio temos seis scripts ja prontos para utilizar com o Guardian, basta escolher qual usar e copiar para o /usr/local/bin com os nomes de guardian_block.sh e guardian_unblock.sh, como eu vou trabalhar com o iptables eu vou proceder do seguinte modo. bash-2.05a# cp iptables_block.sh /usr/local/bin/guardian_block.sh bash-2.05a# cp iptables_unblock.sh /usr/local/bin/guardian_unblock.sh Copiando o resto do programa para os seus devidos locais. bash-2.05a# cd .. bash-2.05a# cp guardian.conf /etc/ bash-2.05a# cp guardian.pl /usr/local/bin/ Editando o /etc/guardian.conf mude os seguintes valores. Interface eth0 mude para a interface que você vai usar para barrar os hosts hostis. AlertFile /var/adm/secure mude para /var/log/snort/alert . TimeLimit 86400 mude para quanto tempo (em segundos) você quiser que o host fique barrado pelo firewall, use o valor 99999999 desabilitar essa opção. Criando o arquivo de logs do Guardian bash-2.05a# touch /var/log/guardian.log Criando o arquivo /etc/guardian.ignore, e inserindo nele os ips que o Guardian vai ignorar. bash-2.05a# touch /etc/guardian.ignore Agora edite o arquivo colocando os ips que o Guardian deve ignorar, lembrando que deve ficar um ip por linha, veja como ficou o meu arquivo. bash-2.05a# cat /etc/guardian.ignore 127.0.0.1 192.168.1.1 Inicie o Guardian desse modo. bash-2.05a# guardian.pl -c /etc/guardian.conf OS shows Linux Warning! HostIpAddr is undefined! Attempting to guess.. Got it.. your HostIpAddr is 192.168.1.1 My ip address and interface are: 192.168.1.1 eth0 Loaded 2 addresses from /etc/guardian.ignore Becoming a daemon.. Com essa mensagem mostrada pelo Guardian concluimos a sua instalação. Bom este tutorial termina por aqui, acho que o objetivo de instalar o Snort + Guardian foi mostrado de uma maneira clara sem tanta “receita de bolo”, espero que com essa pequena contribuição eu consiga ajudar alguem. Tambem quero deixar claro que eu não sou o dono da verdade e podem existir maneiras mais interessantes de fazer funcionar o que foi exposto neste tutorial, se você tem conhecimento compartilhe com a comunidade :] Tambem queria pedir desculpas pelos erros de português em geral :] Por Allisson Azevedo ( allisson@linuxmail.org) |