O
Snort é um IDS (Intrusion Detection System ou Sistema de Detecção de Intrusão). Na sua instalação básica ele só funciona em modo sniffer (captura de pacotes da rede) e em modo de registro (logs de alertas de ataques). É possível instalar o Snort através de pacotes pré-compilados utilizando o yum do CentOS ou apt-get do Debian.
Na instalação do Snort através de pacotes pré-compilados os modos flexresp e flexresp2 não estão disponíveis. Esses modos permitem que a máquina com Snort envie pacotes para a máquina suspeita e para a máquina alvo, fechando as conexões se elas forem estabelecidas.
Também é possível enviar pacotes ICMP com mensagem de destino ou rede inalcançáveis para máquina de origem dos pacotes. Enviando mensagens deste tipo o IDS protege a máquina/rede alvo. A máquina suspeita terá a impressão de que não existe a máquina/rede com o endereço utilizado por ela.
Os registros dos Snort são no formato tcpdump. Para visualizar e poder utilizar filtros na visualização é recomendado utilizar o tcpdump ou o wireshark.
Compilação e instalação do Snort
Podemos obter o Snort através do link abaixo.
Pacotes necessários para a instalação do Snort:
- libpcap
- libpcre
- tcpdump
- openssl
- libdnet
- mysql (para gravação de logs no banco de dados MySQL)
- postgresql (para gravação de logs no banco de dados PostgreSQL)
- gcc
- g77
- libpcre3-dev
- libnet0-dev
Depois de efetuar o download do Snort devemos descompactá-lo. Para descompactar os dados do pacote snort.tar.gz devemos executar o seguinte comando:
# tar -zxvf snort.tar.gz
Após ter descompactado os dados, devemos entrar na pasta que foi gerada com o comando tar:
# cd snort
Dentro da pasta devemos executar o seguinte comando, como root:
# ./configure --prefix=/etc/snort --with-libdnet --with-openssl --with-mysql --enable-flexresp2
Só é necessário passar os parâmetros "--with-postgresql" ou "--with-mysql"" se for utilizar algum dos bancos de dados para registrar os logs de eventos e alertas do Snort. Se não for necessário utilizar o Snort em modo defensivo, não é preciso passar o parâmetro "--enable-flexresp" ou "--enable-flexresp2". O parâmetro "--prefix=" indica o local onde o Snort será instalado e é necessário que a pasta indicada exista.
Após tomar todas as medidas devemos executar os seguintes comandos para finalizar a compilação do Snort:
# make
# make install
Agora devemos criar uma pasta chamada "rules" dentro de /etc/snort da seguinte maneira:
# mkdir /etc/snort/rules
Caso o diretório /etc/snort não exista, crie-o antes da compilação. Dentro da pasta rules devemos colocar todas as regras do Snort. Essas regras devem possuir a extensão ".rules".
Devemos também copiar a pasta "preproc_rules" do diretório criado pelo tar para /etc/rules.
O próximo passo é criar um grupo e usuário para o snort. Vamos fazer da seguinte maneira:
# groupadd snort
Utilizamos esse comando para criar um grupo chamado Snort.
# useradd snort -g snort
Utilizamos esse comando para criar um usuário pertencente ao grupo "snort". O próximo passo é criar o diretório de logs. Vamos fazer da seguinte maneira:
# mkdir /var/log/snort
# chown snort:snort /var/log/snort
# chown -R snort:snort /etc/snort
Com o comando acima estamos mudando o grupo e dono da pasta para "snort".
Para iniciar o serviço do Snort devemos executar o seguinte comando:
# snort -c /etc/snort/snort.conf -u snort -g snort
Onde:
- -c: arquivo de configuração do Snort;
- -u: usuário que o Snort utilizará na execução;
- -g: grupo que o Snort utilizará na execução;
É importante passar os parâmetros de usuário e grupo por causa das permissões de escrita na pasta /var/log/snort.