Com a crescente onda de ataques a hosts, ferramentas de análise, bloqueio e auto-defesa são simplesmente indispensáveis. Este artigo detalha, na medida do possível, assuntos relacionados a políticas básicas de segurança, Iptables, Snort, Guardian e Acid, todos com pacotes atualizados.
Aprofundando-se na questão: Servidor(es) de serviço(s)
Hoje em dia é raro encontrar uma rede totalmente desconectada da Internet. E nada melhor do que ter um Servidor para compartilhar a conexão entre as máquinas internas e assim economizar dinheiro, e também poder definir as políticas de acesso.
Existem redes onde o Firewall, ou Bastion Host, representa vários papéis: Além de proteger a rede interna, também serve páginas na web (por meio de um apache, por exemplo), compartilha arquivos (samba), faz cache de recursos www (squid).
Nestes casos, segurança plena é algo difícil de ser alcançado. Devido a um grande número de portas lógicas e serviços abertos, o número de falhas e exploits a serem utilizados contra você é muito maior. Se este for o seu caso, considere o seguinte:
Uma máquina exclusiva para firewall não precisa de um hardware poderoso. Aquele Pentium 200 MMX que você tem jogado no canto, com míseros 32mb de RAM é mais do que suficiente;
Considerando o fator acima, chega-se a conclusão de que o investimento necessário será baixíssimo, e o ganho em segurança será enorme;
Um firewall stand-alone pode redirecionar os recursos solicitados para as máquinas de dentro, provendo a mesma funcionalidade que você obtinha antes com o servidor que centralizava todos os recursos;
Imagine que a máquina Firewall esteja na frente da máquina Servidor Web, ou seja, Firewall tem o link externo (Speedy, por exemplo).
Na máquina Firewall, você, com ajuda do IPTables, definirá que as solicitações feitas por outros, na porta 80, sejam redirecionados para Servidor Web, porém com o devido tratamento do tráfego, e possível bloqueio de IP's que apresentem um ataque em potencial. E assim você terá seu site na internet, da mesma forma, porém com muito mais tranquilidade.
A moral da história é: O servidor que possui um link externo (com a internet) deverá, para fins de maior segurança, ter o menor número de serviços possível rodando. Ter um sshd por exemplo é relativamente obrigatório para administração remota, e mesmo assim você pode facilmente diminuir os riscos de invasão simplesmente mudando a porta padrão de funcionamento.
Outra questão importante é desativar os serviços desnecessários. Se você não tem muita experiência em Servidores e ainda não sabe desabilitar tudo o que deveria, pergunte em fóruns, leia Howto's e utilize nosso bom e velho amigo, o Google!
Deixar um servidor de FTP, outro de Telnet, Apache, MySQL e outras coisas rodando sem que se faça utilização dos mesmos é conceder aos crackers boas chances de invasão.
[2] Comentário enviado por Elessar em 19/01/2007 - 14:24h
4. Como eu monto um bom firewall para minha rede ?
"Irei dividir esta seção em três partes fundamentais: Snort, Guardian e Acid."
Acho que deu pra entender que, "para um montar um firewall para minha rede" estes 3 softwares são fundamentais.
Realmente não inovei no artigo. Não creio que há aonde inovar nessa área, segurança é algo que você implementa ou não em seu servidor. Foquei mais em alertar sobre a necessidade dela do que em "inovar".
Também não sei se existe um super-ultra guia capaz de ser prático, simples e informativo e ao mesmo tempo, técnico demais. Talvez quem se interessar e pensar que ainda pode melhorar a segurança de sua rede vá atrás do resto das informações por si só.
[6] Comentário enviado por Elessar em 19/01/2007 - 17:20h
Realmente falsos positivos são ruins, e se o Guardian bloquear o host, a coisa fica ainda pior.
Nunca tive muitos casos onde isso aconteceu, e justamente por esta causa eu _ainda_ recomendo a utilização dele para barrar os ataques.
Eu sou fã de relatórios e informações que possam ser enviadas para banco de dados. Gosto de escrever minhas linhas em PHP para que possa, remotamente, analisar alguma coisa ou, eventualmente, até configurar alguns parâmetros via browser. Mas sim, existem mil outras ferramentas que analisam e "humanizam" a leitura dos logs do snort.
Não pude detalhar demais o artigo em alguns aspectos porque:
1_ não sou o cara mais experiente do universo nessa área, apenas quis acrescentar o que sei e pude experimentar/avaliar;
2_ não conheço todos os scripts de interpretação de logs;
3_ outros artigos dão ênfase aos analisadores de log, o meu era algo mais superficial em torno de um assunto complexo.
Seus comentários foram importantes para que pessoas que gostem da idéia do Guardian saibam do possível "contra" que ele pode apresentar. Me esqueci de observar este detalhe.
[7] Comentário enviado por y2h4ck em 19/01/2007 - 17:29h
Nosso amigo comentou sobre os falsos positivos.
Deem uma olhadinha na data da ultima atualização do guardian.
-------------------------------
This page is still under much work, so check back often =) --- Anthony (astevens @ chaotic . org) 03-26-02
-------------------------------
26/03/2002
Acho que quando falamos de segurança implica diretamente estar atualizado. Acredito que implementar em ambiente de produção algo tão desatualizado e desarrojado é um tanto como inseguro.
[8] Comentário enviado por slaypher em 21/01/2007 - 21:18h
Olá,
Aproveitando os comentários já citados, vocês poderiam então citar qual a melhor 'combinação' para um conjunto de IDS eficiente usado hoje em dia e por vocês profissionais da área, já que está não parece mais ser uma combinação interessante.
[9] Comentário enviado por Elessar em 21/01/2007 - 21:39h
Talvez o y2h4ck tenha uma sugestão melhor do que as que fiz no artigo, podemos esperar por algo que venha dele.
Para mim, Guardian + Snort + Acid + Iptables ainda é uma solução muito boa, muito satisfatória.
Apesar do Guardian não ser atualizado há muito tempo, por ele ser apenas o responsável por bloquear (eventualmente) automaticamente algum host suspeito, creio que não comprometa a qualidade do seu Firewall.
Tendo um Snort e um Iptables bem configurado, com pacotes recentes e regras bem aplicadas, você estará bem servido.
[10] Comentário enviado por y2h4ck em 22/01/2007 - 08:44h
Elessar, parece que você ficou um tanto quanto ofendido com meus comentários. Não acho que seja por ai, dizer "Talvez o y2h4ck tenha uma sugestão melhor do que as que fiz no artigo, podemos esperar por algo que venha dele.". Meus comentários visam apenas que você veja que as vezes muita coisa passada segurança, causa mais problemas do que soluções.
Caso você queira podemos bater um papo sem problemas cara, participo desta comunidade a quase 3 anos e nunca tive inimizade com ninguem.
Segue meu msn: Anderson_spw@hotmail.com.
Se quiser me adicionar beleza, Só não acho que comentarios do tipo "entao faz melhor" nao resolvem.
[11] Comentário enviado por Elessar em 22/01/2007 - 09:22h
De forma alguma fiquei ofendido..
Só percebi que, possivelmente, você tem conhecimentos mais profundos que os meus e que, de repente, pode dar sugestões tão boas quanto ou melhores que as minhas.
E de fato, não sei de um substituto atualizado para o Guardian. Se você conhecer, me oriente também =)
[13] Comentário enviado por Gilmar_GNU/Slack em 06/02/2007 - 14:07h
espero que eu naum esteja errado .. pois para quem usa o modo grafico e complicado mesmo ! mais o Linux tem um bom firewall ... mais eu to aprendendo a usar o modo texto para naum ter poblema !
[14] Comentário enviado por gilfilho em 29/05/2007 - 11:10h
Por favor um help!!!
Estou tentando implementar sua sugestão para fazer uns testes aqui com a minha rede e quando coloco # ./configure # make && make install no diretório especificado obtenho a seguinte resposta:
configure: error: instalation or configuration problem: C compiler can not create executables
[15] Comentário enviado por RickMura em 24/07/2007 - 06:08h
Gostei do tuto, to efetuando o processo, alguns probleminhas foram detectados aqui, deu um erro de dependência (libpcap), instalei, e adivinhem, não tenho o mysql instalado tb to instalando.
olha esse foi o artigo mais completo que vi aqui para uma solução "meio" automática de bloqueio, sem precisar recompilar o kernel e tals.
[16] Comentário enviado por Elessar em 24/07/2007 - 09:21h
gilfilho: Atrasado, mas nunca é tarde pra publicar uma dica: Está faltando algum pacote de compilação no seu sistema, como o g++, c++, libc, entre outros. Você precisa fazer uma análise de seu sistema e procurar pelos pacotes necessários pra compilar, e ir instalando o que falta.
RickMura: Muito obrigado pelas palavras ! Essa solução ainda é muitíssimo utilizada e funciona muito bem, mas como os outros comentários sugeriram, existem outras alternativas. Se você estiver estudando pra aprender mesmo, dê uma revirada em busca de ainda mais opções e quem sabe volta aqui pra postar o link do seu mais novo artigo !
[17] Comentário enviado por btavares em 20/08/2007 - 15:38h
olá, você disse que existe várias maneiras de gerar relatórios em configurações do snort sem banco de dados, pode me dizer algumas? Peguei um servidor para administrar que já tem snort instalado, mas sem banco de dados, queria poder gerar relatórios dele.