Instalar Suricata Linux

Neste tutorial vamos instalar e configurar o Suricata usando uma máquina com Linux Ubuntu. Dessa forma, usaremos o repositório para fazer a instalação do Suricata.

English version: click HERE

O Suricata é um sistema usado na detecção e prevenção de intrusos. Dessa forma, podemos usar o Suricata para melhorar a segurança de nossa rede contra ataques que venham de dentro da rede ou da Internet.

Quando o Suricata funciona como Detector de Intruso (IDS), este gera alertas que vão permitir ao administrador de rede tomar as medidas necessárias ao incidente de segurança.

Entretanto, o Suricata também pode ser usado para prevenir a ocorrência de intrusos. Isso porque o suricata pode realizar ações para conter um ataque. Como exemplo, poderíamos ter o suricata fazendo um bloqueio de um endereço IP de um intruso.

Esse tutorial é parte do Curso de Suricata em Linux.

Artigo 1: Instalar Suricata Linux

Artigo 2: Suricata em Host IPS

Artigo 3: Suricata em Network IPS

Link para o curso de Suricata no youtube:

https://youtube.com/playlist?list=PLigQ9zMmlIqIuf08ERzg3CqIXCxZcO42x

Instalação do Suricata no Ubuntu

Como mencionado antes, neste tutorial vamos instalar o suricata usando uma máquina com Ubuntu. Para isso, vamos usar o comando abaixo para adicionar o repositório do suricata ao nosso sistema.

sudo add-apt-repository ppa:oisf/suricata-stable
Add repository
Add repository

Em seguida, vamos atualizar os nossos repositórios, já que acabamos de adicionar um novo repositório.

sudo apt-get update

Agora, vamos instalar o suricata. Para isso vamos usar o comando abaixo.

sudo apt-get install suricata
Install suricata
Install suricata

Agora vamos habilitar o suricata para inicializar juntamente com o sistema. Dessa forma, o suricata será habilitado toda vez que o computador for reiniciado. Para isso, vamos usar o comando abaixo:

sudo systemctl enable suricata.service
Enable suricata on the system
Enable suricata on the system

Instalação Alternativa do Suricata

Alternativamente, podemos instalar o Suricata usando os outros pacotes de instalação que permitem que o suricata seja instalado em Mac. FreeBSD, Unix, e Windows. Para isso, precisamos acessar o link abaixo e selecionar o pacote que desejamos instalar.

Nota – Essa forma de instalação também pode ser interessante caso esteja usando uma distribuição Linux diferente do Ubuntu.

https://suricata.io/download/

Alternative install for suricata
Alternative install for suricata

Configurando o Suricata

Agora que instalamos o Suricata, vamos fazer algumas configurações básicas para o bom funcionamento da ferramenta. Para isso, vamos entrar no diretório de configuração do Suricata usando o comando abaixo.

cd /etc/suricata

Em seguida, podemos listar os arquivos que estão dentro da pasta do suricata. Para isso podemos usar o comando ls do Linux.

ls

Podemos observar na figura abaixo que existem vários arquivos e uma pasta com o nome rules.

Suricata files
Suricata files

Antes de dar prosseguimento na configuração. Vamos verificar em qual interface de rede vamos usar o Suricata. Em nosso caso, estamos usando uma máquina virtual do virtualbox. E essa máquina virtual está com duas interfaces.

A primeira interface está em modo NAT e a segunda interface está em modo “internal network”. Neste cenário, vamos usar o Suricata na segunda interface, ou seja, a interface “internal network”.

Para verificar as interfaces existentes podemos usar o comando abaixo.

ip addr

A figura abaixo, mostra que nossa máquina virtual possui 3 interfaces. No entanto a primeira interface é de loopback portanto podemos desconsiderá-la. Dessa forma, a interface que desejamos monitorar com o suricata é a terceira interface “enp0s8” pois essa é a interface que está em modo “internal network”.

Select your interface
Select the interface

Agora, vamos editar o arquivo “suricata.yaml” e vamos indicar a interface que iremos monitorar. Para isso, vamos usar o editor nano.

sudo nano suricata.yaml

Em seguida, vamos procurar a linha que descreve o af-packet. Dentro da linha “- interface: eth0” vamos remover o “eth0” e incluir o nome da nossa interface.

Em nosso caso a interface que será monitorada é a “enp0s8”. Portanto, vamos substituir o nome da interface no arquivo “suricata.yaml”.

Erase the default interface
Erase the default interface
Replace with your interface
Replace with your interface

Após isso, vamos salvar o arquivo.

O próximo passo é reiniciar o suricata para que a alteração tenha efeito. Para isso, podemos usar o comando abaixo.

sudo service suricata restart

Update nas regras do suricata

Agora vamos dar um update nas regras do suricata. Incialmente o suricata contém algumas regras básicas. No entanto, desejamos um maior conjunto de regras para que o suricata consiga encontrar um maior número de anomalias

Podemos verificar as regras iniciais verificando os arquivos que estão dentro do diretório rules do suricata. Assim, podemos usar o comando abaixo para entrar no diretório e verificar as regras que existem nos arquivos.

cd /etc/suricata/rules/

Agora, vamos fazer o update das regras e adicionar novas regras ao suricata. Para isso vamos usar o comando abaixo.

sudo suricata-update

Podemos observar que foram feitos downloads de novas regras.

Updating suricata rules
Updating suricata rules

Testando suricata

Agora podemos testar o suricata. Para isso, vamos usar o comando abaixo.

sudo suricata -T
Testing suricata
Testing suricata

Podemos observar que tiveram alguns alertas “warnings” para alguns protocolos que não estavam habilitados. Neste caso, se o protocolo não estiver habilitado no arquivo de configuração “suricata.yaml “ teremos mensagens de alerta.

No entanto, você pode optar por desabilitar alguns protocolos que não serão utilizados em sua rede.

Na figura anterior tínhamos a mensagem de alerta que informava que o protocolo rdp não estava habilitado.

Entretanto, vamos supor que queremos usar o protocolo RDP em nossa rede. Dessa forma, vamos retornar ao arquivo “suricata.yaml “ e vamos habilitar o RDP apenas retirando o comentário de linha “#”.

sudo nano /etc/suricata/suricata.yaml
Remove the #
Remove the #
Now, RDP is enable
Now, RDP is enable

Agora, vamos reiniciar o suricata para que a alteração tenha efeito. Para isso vamos usar o comando abaixo.

sudo service suricata restart

Depois, vamos realizar o teste novamente com o comando abaixo.

sudo suricata -T

Muito bem, agora podemos verificar na figura abaixo que a mensagem de alerta “warning” para o RDP desapareceu.

No more warnings for RDP
No more warnings for RDP

Os Logs do Suricata

Usando a instalação desse tutorial, os arquivos de logs e alertas vão ser armazenados em “/var/log/suricata/”. Dessa forma, podemos entrar nesse diretório e listar o conteúdo para verificarmos o que temos.

cd /var/log/suricata/

ls
Suricata logs
Suricata logs

Podemos observar que temos vários arquivos de logs. No entanto, neste tutorial vamos falar do arquivo “suricata.log” e do “fast.log”. Dessa forma, o arquivo “suricata.log” apresenta os logs referentes ao funcionamento da ferramenta suricata. Um exemplo de log do “suricata.log” pode ser obtido usando o comando abaixo.

tail suricata.log
suricata.log
suricata.log

O outro arquivo, o “fast.log”, apresenta os alertas gerados pelo suricata. Dessa forma, você pode verificar os alertas ao inspecionar o arquivo “fast.log”. Para isso, podemos usar o comando abaixo.

tail fast.log

No início, o arquivo “fast.log” pode não conter nenhum alerta. Portanto, na próxima sessão vamos apresentar um teste para gerar alertas no suricata.

Testando o Suricata como IDS

Vamos testar o suricata usando uma segunda máquina virtual que será conectada na rede interna do VirtualBox e consequentemente estará ligada na interface “enp0s8” da máquina do Suricata.

Como segundo cliente estamos usando uma máquina virtual com Ubuntu ligada com interface em modo rede interna.

Abaixo temos a topologia utilizada.

Scenario used in our testes
Scenario used in our testes

Na máquina cliente temos o NMAP instalado e vamos executar uma varredura para a máquina do Suricata para verificar se gera alarmes.

Dessa forma, vamos usar o comando abaixo na máquina cliente para iniciar a varredura de portas na máquina onde temos o Suricata.

sudo nmap -sO 192.168.11.24

Caso deseje entender como o NMAP funciona pode ver os posts a seguir:

NMAP: Mapeamento de portas TCP e UDP

NMAP : Identificar a versão de um serviço

NMAP: Scan avançado

Após o uso do nmap, vamos voltar para a máquina do Suricata e vamos verificar o arquivo de alertas “/var/log/suricata/fast.log”. Para isso podemos usar o comando abaixo.

tail /var/log/suricata/fast.log
Suricata alerts
Suricata alerts

Podemos observar que o suricata já está inspecionando a nossa interface de rede e consequentemente está gerando alarmes. Além disso, os alarmes apresentam a data em que ocorreram e uma breve descrição do alerta.

Na descrição do alerta podemos ter um ID do alerta e o nível de prioridade do alerta. Futuramente vamos apresentar mais informações relacionadas ao Suricata em futuros tutoriais. Se você gostou comente em nosso canal do YouTube no vídeo a seguir.

Esse tutorial é parte do Curso de Suricata em Linux.

Artigo 1: Instalar Suricata Linux

Artigo 2: Suricata em Host IPS

Artigo 3: Suricata em Network IPS

Veja mais:

Snort PfSense : Detectar ataque DoS

NMAP: Mapeamento de portas TCP e UDP

NMAP : Identificar a versão de um serviço

NMAP: Scan avançado

Addrwatch : Instalar e Configurar