terça-feira, 27 de julho de 2010

Snort no pfSense

Instalar e configurar o Snort no pfSense
pfSense é uma excelente firewall opensource baseada em BSD.
Snort é uma a aplicação de detecção e prevenção de intrusos (IDS/IPS)
Estando o pfSense 1.2.3 já instalado a instalação do Snort é bastante simples, pois só é preciso ir aos pacotes e instalar...
Convém registar-se em http://www.snort.org para obter um Oinkcode, que é um código para poder fazer o download de uma versão mais recente das regras de IDS/IPS (para obter as regras ainda mais recentes é preciso pagar - acho justo).
A configuração faz-se em Services » Snort.
Interface WAN
Primeiro é preciso adicionar uma interface (por defeito é a externa - WAN).
A configuração individual da interface permite, primeiro, definir um nome (obrigatório) e o algoritmo de gestão de memória. O algoritmo seleccionado é o AC-BNFA e li algures num blog, que é (era) o único que funcionava.
De seguida, a Home net e External net definem a rede interna e externa, respectivamente. Se estamos a configurar as regras para a interface WAN podem deixar-se em default. Para definir regras para a LAN é preciso editar o ficheiro de configuração (iremos a isso mais tarde).
O block offenders adiciona uma regra à firewall para bloquear o IP que gerou um aviso no Snort.
Para cada interface podem definir-se as categoria ou regras individuais que se pretendem usar.
As regras de IDS/IPS consomem muita RAM e muitos ciclos de CPU, por isso convém activar apenas as que se pretendem MESMO usar.
Podem ainda ser definidos manualmente o endereço de alguns servidores (DNS, mail, http, etc). Estes endereços serão depois usados em algumas regras para ajudar a fazer uma filtragem mais exacta.
Os Preprocessors são operações aplicadas aos pacotes de dados antes de serem analisados pelas regras.
Liguei o Portscan detection e DNS detection. Algumas regras (nomeadamente as de exploit e de bad traffic) apenas funcionam se o preprocessador de http estiver ligado.
Configurações globais
Depois de configurar pelo menos uma interface podemos aceder às configurações globais, onde configuramos o comportamento do Snort que é comum a todas as interfaces. É aqui que se indica o Oinkcode para poder aceder a actualizações. O snort.org apenas permite actualizações com um intervalo mínimo de 15 minutos. Os developers aconselham 12 horas. Eu coloquei a 24.
Temos ains acesso aos logs dos alertas e dos bloqueios, bem como a uma lista branca de IPs. O Supress não faço ideia o que seja.
Interface LAN
A configuração da interface LAN é mais complicada.
É preciso "trocar" as redes LAN e WAN para poder analisar o tráfego que chega à firewall pela interface "inside" como possível fonte de ataque.
É preciso aceder à consola do pfSense e editar o ficheiro snort.conf, que se encontra em /usr/local/etc/snort/snort_12345_fxp1/.
A parte "snort_12345_fxp1" deve ser alterada para coincidir com o nome usado pelo snort (aparece na página de configuração da interface).
Edita-se o ficheiro trocando a definição da HOME_NET com a EXTERNAL_NET.
Assim, a EXTERNAL_NET fica com os IPs das máquinas que pertencem à rede e a HOME_NET fica com tudo o que não pertence à EXTERNAL_NET.
De volta à interface web, definir as categorias, regras, servidores, e pré-processadores para esta interface.
Gravar as alterações e aplicar.
Por via das dúvidas é melhor parar o Snort e depois voltar a iniciar. Se houver algum problema com as configurações o Snort não arranca. Caso algo não funcione, verificar os logs do sistema Status » System logs
No meu caso foi preciso esperar algum tempo até o Snort começar a detectar ataques.

Sem comentários:

Enviar um comentário