VyOS Firewall Stateful: Guia Completo de Configuração

9 min de leitura Segurança de Rede
VyOS Firewall Stateful: Guia Completo de Configuração

Introdução à Segurança de Rede no VyOS

A configuração de um firewall stateful é fundamental para qualquer ambiente que utilize o VyOS como roteador ou gateway. Diferente de um firewall simples, que analisa pacotes isolados, um firewall stateful (ou com estado) mantém o registro do estado das conexões de rede. Isso significa que ele sabe se um pacote de resposta corresponde a uma solicitação iniciada internamente, permitindo tráfego legítimo e bloqueando tentativas de conexão não solicitadas vindas da internet.

Neste tutorial, vamos configurar regras de firewall no VyOS para bloquear tráfego indesejado, garantindo que apenas as conexões necessárias sejam permitidas. Utilizaremos a sintaxe moderna do VyOS (versão 1.3+), que é baseada em scripts de configuração unificados, facilitando a manutenção e a auditoria.

Passo 1: Entendendo a Estrutura das Regras

Antes de aplicar os comandos, é crucial entender como o VyOS organiza as regras de firewall. As regras são agrupadas em grupos de regras (rule sets), que podem ser aplicados a interfaces específicas.

Existem três principais grupos de regras:

  • LOCAL: Aplica-se ao próprio dispositivo VyOS. Usado para proteger o serviço SSH, NTP ou DNS rodando no roteador.
  • WAN: Aplica-se à interface conectada à internet (ou rede não confiável).
  • LAN: Aplica-se à interface interna (rede local confiável).

O princípio de segurança mais importante é: por padrão, tudo deve ser negado. Ou seja, se um pacote não corresponder a nenhuma regra de "permitir" explícita, ele será descartado.

Passo 2: Acessando o Shell de Configuração

Para iniciar a configuração, conecte-se ao seu VyOS via SSH ou console. Entre no modo de configuração:

configure

Agora, vamos definir os endereços IP que serão protegidos. Suponha que sua rede local seja 192.168.1.0/24.

Passo 3: Definindo Grupos de Endereços (Address Groups)

Criar grupos de endereços facilita a leitura das regras e evita erros de digitação ao referenciar múltiplos IPs. Vamos criar um grupo para nossa rede interna.

set firewall group address-group internal-network members value '192.168.1.0/24'

Se você tiver sub-redes específicas (ex: servidor web e estação de trabalho), pode adicionar múltiplos membros:

set firewall group address-group internal-network members value '192.168.1.10/32'

Para verificar se o grupo foi criado corretamente, use:

show firewall group address-group

Passo 4: Configurando a Regra de Bloqueio Global (DROP)

A primeira regra em um firewall stateful deve ser sempre uma regra de drop para todo o tráfego que não for explicitamente permitido. Isso garante a segurança por padrão.

set firewall name WAN default-action drop
set firewall name WAN disable-default-drop false

Explicação:

  • default-action drop: Define que, se nenhuma regra anterior bater, o pacote será descartado.
  • disable-default-drop false: Garante que a regra de drop implícita esteja ativa (em algumas versões antigas era necessário desabilitar explicitamente).

Passo 5: Criando Regras de Permitir Tráfego Legítimo

Agora, vamos criar regras específicas para permitir o tráfego que é essencial para o funcionamento da rede. A ordem das regras é crítica no VyOS (e em sistemas baseados em iptables). O firewall processa as regras de cima para baixo e para na primeira correspondência.

5.1 Permitir Tráfego Estabelecido e Relacionado

Esta regra permite que respostas a conexões iniciadas internamente entrem na rede. É o coração do firewall stateful.

set firewall name WAN rule 10 action accept
set firewall name WAN rule 10 description 'Permitir tráfego de resposta (established/related)'
set firewall name WAN rule 10 state established enable
set firewall name WAN rule 10 state related enable

Ao usar state established, o VyOS verifica se o pacote faz parte de uma conexão já existente. Ao usar state related, permitimos protocolos auxiliares como FTP ou ICMP errors.

5.2 Permitir DNS (UDP e TCP)

Seus clientes internos precisam resolver nomes de domínio. Vamos permitir que eles se comuniquem com seus servidores DNS (ex: 8.8.8.8 ou seu próprio VyOS).

set firewall name WAN rule 20 action accept
set firewall name WAN rule 20 description 'Permitir DNS'
set firewall name WAN rule 20 destination port '53'
set firewall name WAN rule 20 protocol 'udp'
set firewall name WAN rule 21 action accept
set firewall name WAN rule 21 description 'Permitir DNS TCP'
set firewall name WAN rule 21 destination port '53'
set firewall name WAN rule 21 protocol 'tcp'

Note que criamos duas regras separadas para UDP e TCP, pois o protocolo é diferente. Embora o DNS use majoritariamente UDP, o TCP é necessário para respostas grandes (DNS over TCP).

5.3 Permitir Tráfego ICMP (Ping)

Muitas ferramentas de monitoramento dependem do ICMP. Vamos permitir o Echo Request e Echo Reply.

set firewall name WAN rule 30 action accept
set firewall name WAN rule 30 description 'Permitir Ping (ICMP)'
set firewall name WAN rule 30 icmp type-name echo-request
set firewall name WAN rule 31 action accept
set firewall name WAN rule 31 description 'Permitir Resposta de Ping'
set firewall name WAN rule 31 icmp type-name echo-reply

5.4 Bloquear Tráfego Restante (Opcional, mas Recomendado)

Embora o default-action drop já faça isso, adicionar uma regra explícita de drop no final ajuda na documentação e no debug.

set firewall name WAN rule 90 action drop
set firewall name WAN rule 90 description 'Bloquear todo o restante'

Passo 6: Aplicando as Regras às Interfaces

Agora que definimos as regras no grupo WAN, precisamos aplicá-las à interface física que conecta o VyOS à internet. Suponha que sua interface externa seja eth0.

set interfaces ethernet eth0 firewall in name WAN

Isso aplica a lista de regras ao tráfego de entrada (inbound) na interface eth0. Se você quiser proteger o VyOS contra ataques diretos via SSH, também pode aplicar regras ao grupo LOCAL:

set interfaces ethernet eth0 firewall local name LOCAL

E configure as regras locais para permitir apenas SSH de IPs específicos:

set firewall name LOCAL rule 10 action accept
set firewall name LOCAL rule 10 protocol 'tcp'
set firewall name LOCAL rule 10 destination port '22'
set firewall name LOCAL rule 10 source address '192.168.1.0/24'

Passo 7: Salvando e Saindo da Configuração

Após configurar todas as regras, é vital salvar a configuração para que ela persista após uma reinicialização.

save
exit

O comando save grava as alterações no arquivo de configuração persistente. O exit sai do modo de configuração e retorna ao shell operacional.

Passo 8: Verificando a Configuração Ativa

Para garantir que as regras foram carregadas corretamente no kernel Linux, use o comando:

show firewall

Você verá a estrutura hierárquica das regras. Para ver como elas se traduzem em comandos iptables reais (útil para debug avançado), execute:

iptables -L -n -v

Procure pela cadeia correspondente à sua interface WAN. Você deve ver as contagens de pacotes aumentando conforme o tráfego flui.

Dicas Avançadas: Logging e Debug

Se algo não estiver funcionando como esperado, ativar logs pode ajudar a identificar qual regra está bloqueando o tráfego.

Habilitando Logs para Regras Específicas

Adicione log enable em uma regra de drop ou reject:

set firewall name WAN rule 90 log enable

Agora, quando um pacote for bloqueado pela regra 90, uma mensagem aparecerá nos logs do sistema. Você pode visualizar esses logs com:

vtysh -c "show log"
# ou
tail -f /var/log/syslog

Lembre-se de remover o log após o debug para não sobrecarregar o disco e a CPU.

Testando Conectividade

De um computador na rede LAN, tente pingar um servidor externo:

ping 8.8.8.8

Se o ping falhar, verifique se a regra de ICMP está correta e se há alguma outra regra bloqueando antes dela. Use show firewall statistics para ver quantos pacotes foram aceitos ou descartados por cada regra.

Considerações Finais sobre Segurança de Rede

A configuração de um firewall stateful no VyOS é uma tarefa poderosa que exige atenção aos detalhes. Ao seguir as práticas deste tutorial, você garante que:

  • O tráfego não solicitado da internet seja bloqueado.
  • As respostas a conexões legítimas sejam permitidas.
  • Serviços essenciais como DNS e Ping funcionem corretamente.
  • O dispositivo VyOS esteja protegido contra acessos não autorizados.

Recapitulemos os pontos-chave:

  1. Defina grupos de endereços para facilitar a manutenção.
  2. Sempre comece com uma regra de DROP ou use o default-action drop.
  3. Permita tráfego estabelecido antes de permitir novas conexões.
  4. Aplique as regras apenas nas interfaces corretas (WAN para entrada, LAN para saída se necessário).
  5. Salve a configuração e verifique com show firewall.

Lembre-se: um firewall mal configurado pode ser pior do que nenhum firewall, pois pode dar uma falsa sensação de segurança. Sempre teste suas regras em um ambiente controlado antes de aplicá-las em produção.

Com estas configurações, seu VyOS estará bem equipado para lidar com ameaças comuns e manter a integridade da sua rede. Continue explorando as capacidades do VyOS, como NAT, QoS e VPNs, para construir uma infraestrutura robusta e segura.

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