VyOS com Suricata: Guia de Instalação e Configuração de IDS/IPS

9 min de leitura Segurança de Rede
VyOS com Suricata: Guia de Instalação e Configuração de IDS/IPS

O VyOS é uma distribuição Linux de código aberto baseada em Debian, projetada especificamente para roteamento e firewalling. Embora seja leve e extremamente rápida, o kernel padrão do VyOS foca no encaminhamento de pacotes (routing) e na filtragem básica via Netfilter/IPTables. Para ambientes que exigem segurança de rede avançada, inspeção profunda de payloads e detecção de ameaças em tempo real, a instalação de um sistema de detecção de intrusão (IDS) ou prevenção de intrusões (IPS) como o Suricata é essencial.

Neste tutorial, você aprenderá a integrar o Suricata ao VyOS para realizar monitoramento passivo (IDS) e ativo (IPS). A configuração passo a passo visa garantir que o tráfego de rede seja analisado em busca de assinaturas conhecidas de ataques, malware e explorações de vulnerabilidades.

1. Pré-requisitos e Preparação do Ambiente

Antes de iniciar a instalação, certifique-se de que seu VyOS está atualizado. O Suricata depende de bibliotecas específicas e requer recursos de CPU significativos para operar no modo IPS (Inline), pois ele se torna um ponto único de falha na latência da rede.

Verifique a versão do VyOS:

vypolicy show version

Atualize o sistema para garantir que os pacotes disponíveis no repositório Debian (base do VyOS) estejam atualizados:

sudo apt update && sudo apt upgrade -y

Nota importante: O VyOS é uma distribuição "live". Isso significa que alterações feitas diretamente na linha de comando via apt podem ser perdidas após uma reinicialização se não forem persistidas corretamente. Para fins deste tutorial, focaremos na instalação e configuração inicial. Em produção robusta, considere o uso de scripts de pós-instalação ou a integração nativa do VyOS (se disponível em versões futuras), mas a abordagem manual via pacote Debian é a mais comum para usuários avançados.

2. Instalação do Suricata

O processo de instalação no VyOS segue o padrão Debian. Instale o pacote principal e as dependências necessárias:

sudo apt install suricata suricata-update -y

Após a instalação, é crucial baixar as listas de regras (signatures) que o Suricata utilizará para identificar ameaças. Sem regras, o IDS funciona apenas como um analisador de protocolo vazio.

sudo suricata-update

Este comando baixa automaticamente as listas ET (Emerging Threats) e outras fontes confiáveis. Você pode adicionar repositórios pagos ou adicionais se desejar:

sudo suricata-update add-source et/open
sudo suricata-update update-all

3. Configuração do Modo de Operação: IDS vs IPS

O Suricata opera em dois modos principais, e a escolha afeta diretamente sua arquitetura de rede:

  • Modo IDS (Intrusion Detection System): O Suricata espelha o tráfego de uma porta switch (SPAN/ERSPAN) ou utiliza um bridge passivo. Ele não interfere no fluxo de dados, apenas registra alertas. É seguro e não causa downtime se o serviço falhar.
  • Modo IPS (Intrusion Prevention System): O Suricata fica inline entre dois interfaces de rede (ex: WAN e LAN). Ele inspeciona cada pacote antes de encaminhá-lo. Se o processo do Suricata travar, a conexão de rede cai.

Para este tutorial, configuraremos o Modo IPS, pois oferece proteção ativa contra ataques, sendo o cenário mais comum para firewalls de borda.

4. Configuração das Interfaces de Rede e Bridge

No modo IPS, o Suricata precisa interceptar o tráfego. No VyOS, isso é feito criando um bridge virtual que conecta as interfaces físicas (ex: eth0 para WAN e eth1 para LAN) através do processo Suricata.

Primeiro, edite a configuração do VyOS via CLI:

vconfig

Defina as interfaces físicas como sem IP (o IP de gerenciamento ficará na interface bridge):

set interfaces ethernet eth0 address 'none'
set interfaces ethernet eth1 address 'none'

Crie uma interface bridge e adicione as interfaces físicas a ela:

set interfaces bridge br-suricata members interface eth0
set interfaces bridge br-suricata members interface eth1

Atribua o endereço IP de gateway/LAN à bridge. Suponha que sua LAN seja 192.168.1.0/24 e o VyOS tenha o IP 192.168.1.1:

set interfaces bridge br-suricata address '192.168.1.1/24'

Aplique a configuração:

commit
save

Agora, o VyOS encaminha o tráfego entre eth0 e eth1 através do bridge. Precisamos dizer ao Suricata para monitorar essa bridge.

5. Configuração do Arquivo suricata.yaml

O arquivo de configuração principal do Suricata está localizado em /etc/suricata/suricata.yaml. Você deve editá-lo para especificar a interface de captura e os modos de operação.

sudo nano /etc/suricata/suricata.yaml

Localize a seção default-rule-path e certifique-se de que o caminho aponta para onde as regras foram baixadas (geralmente /var/lib/suricata/rules).

Em seguida, localize a seção outputs e ative o log de alertas em formato EVE JSON:

  - eve-log:
      enabled: yes
      filetype: regular
      filename: eve.json
      types:
        - alert:
            payload: true
            payload-printable: true
            packet: true
        - http:
            extended: true
        - dns
        - tls:

Para ativar o modo IPS, localize a seção vars e altere o endereço de grupo para garantir que as regras de prevenção sejam carregadas. No entanto, a ativação do bloqueio real depende das políticas definidas nas regras.

6. Integração com o Sistema de Inicialização (Systemd)

O VyOS não usa systemd nativo da mesma forma que um Ubuntu Desktop, mas permite a criação de serviços personalizados. Para garantir que o Suricata inicie corretamente e capture o tráfego no bridge, criaremos um script de serviço.

Crie o arquivo /etc/init.d/suricata-ips:

sudo nano /etc/init.d/suricata-ips

Insira o seguinte conteúdo:

#!/bin/sh
### BEGIN INIT INFO
# Provides:          suricata-ips
# Required-Start:    $network $syslog
# Required-Stop:     $network $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Suricata IPS Mode
### END INIT INFO

DAEMON=/usr/bin/suricata
CONFIG=/etc/suricata/suricata.yaml
INTERFACE=br-suricata
PIDFILE=/var/run/suricata-ips.pid

case "$1" in
  start)
    echo "Starting Suricata IPS..."
    $DAEMON -c $CONFIG -i $INTERFACE --pidfile $PIDFILE -D
    ;;
  stop)
    echo "Stopping Suricata IPS..."
    kill $(cat $PIDFILE)
    rm -f $PIDFILE
    ;;
  restart)
    $0 stop
    sleep 2
    $0 start
    ;;
  *)
    echo "Usage: $0 {start|stop|restart}"
    exit 1
    ;;
esac

exit 0

Torne o script executável e registre-o:

sudo chmod +x /etc/init.d/suricata-ips
sudo update-rc.d suricata-ips defaults

7. Configuração de Firewall (VyOS CLI)

Agora que o Suricata está rodando e capturando o tráfego, você precisa garantir que o firewall do VyOS permita a passagem de tráfego através da bridge e registre os alertas gerados pelo Suricata.

No VyOS, utilize a estrutura vconfig para definir políticas de firewall. Suponha que br-suricata seja sua interface interna:

set firewall name WAN_IN rule 10 action 'accept'
set firewall name WAN_IN rule 10 description 'Allow established connections'

Para registrar alertas de segurança no log do sistema, adicione uma regra que envie pacotes suspeitos para o logger:

set firewall name WAN_IN rule 20 action 'log'
set firewall name WAN_IN rule 20 description 'Log potential threats'

Lembre-se de aplicar o firewall à interface externa (geralmente eth0 se ela estivesse ativa, mas como agora usamos bridge, aplique a política na bridge ou nas interfaces subjacentes se a arquitetura permitir). No modo IPS puro com bridge, o tráfego passa pelo kernel Linux antes de chegar ao Suricata. Portanto, as regras de firewall do VyOS devem estar configuradas para permitir o encaminhamento (forward) entre as interfaces.

set firewall name FORWARD rule 10 action 'accept'
set firewall name FORWARD rule 10 description 'Allow all traffic for testing'

Aviso: Em produção, substitua "Allow all" por regras estritas baseadas em portas e protocolos necessários.

8. Monitoramento e Verificação

Inicie o serviço do Suricata manualmente para testar:

sudo /etc/init.d/suricata-ips start

Verifique se o processo está rodando:

ps aux | grep suricata

Monitore o arquivo de log eve.json em tempo real para ver alertas sendo gerados. Você pode usar tail ou ferramentas como jless para ler JSON:

sudo tail -f /var/log/suricata/eve.json

Para simular um alerta, você pode realizar um scan de portas contra o próprio VyOS usando uma máquina cliente (ex: nmap):

nmap -sV 192.168.1.1

Você deve ver entradas no log do Suricata indicando a tentativa de conexão, especialmente se houver regras habilitadas para detecção de scans.

9. Otimização e Boas Práticas

A inspeção profunda (Deep Packet Inspection) consome muitos recursos. Para manter a estabilidade do VyOS:

  • Filtra Regras: Não carregue todas as regras disponíveis. Use o suricata-update para habilitar apenas grupos relevantes (ex: malware, c2). Carregar milhares de regras desnecessárias aumenta a latência.
  • Ajuste de Memória: Edite o arquivo suricata.yaml na seção flow para ajustar o tamanho da tabela de fluxo (hash-size) conforme a quantidade de memória RAM disponível. Valores padrão podem ser baixos para servidores robustos.
  • Logs Rotativos: Configure logrotate para /var/log/suricata/eve.json para evitar que o disco encha rapidamente, já que logs IPS podem crescer gigabytes por dia em redes movimentadas.

Conclusão

A integração do Suricata ao VyOS transforma um roteador básico em uma solução robusta de segurança perimetral. Ao configurar o modo IPS, você não apenas detecta ameaças, mas as bloqueia proativamente, protegendo sua infraestrutura contra explorações conhecidas.

Lembre-se de testar cuidadosamente qualquer configuração de firewall e IPS em um ambiente de laboratório antes de aplicá-lo à produção, pois erros de configuração podem resultar em perda total de conectividade de rede. A combinação de VyOS com Suricata oferece uma alternativa poderosa e open-source a soluções comerciais caras de firewall de nova geração (NGFW).

Compartilhar: Link copiado!
Esse tutorial foi útil?

Comentários (0)

Seja o primeiro a comentar.

Deixe seu comentário

Seu comentário será analisado antes de ser publicado.

0/2000