
Introdução
A segurança de uma rede gerenciada por dispositivos MikroTik depende fortemente da qualidade das regras de firewall. Este guia apresenta boas práticas para configurar regras em RouterOS, focando em compreensão das chains (input/forward/output), políticas default, tratamento de states (established/related/invalid), NAT, considerações sobre rate‑limit, acesso remoto seguro e logging.
Público-alvo
Profissionais de redes e administradores que já conhecem o básico de RouterOS e desejam aplicar regras de firewall seguindo princípios recomendados.
Princípios básicos e objetivos
Antes de criar regras, defina objetivos claros:
- Proteger o próprio roteador (chain input).
- Controlar o tráfego que atravessa o roteador entre redes (chain forward).
- Permitir que o roteador inicie conexões necessárias (chain output).
- Ter políticas default explícitas e previsíveis.
- Logar eventos relevantes sem sobrecarregar a CPU ou armazenamento.
Sempre teste em um ambiente controlado antes de aplicar em produção e mantenha acesso de console/serial caso uma regra bloqueie o acesso remoto.
Entendendo as chains (input / forward / output)
- chain=input: tráfego destinado ao próprio roteador (serviços como SSH, Winbox, API, web).
- chain=forward: tráfego que passa pelo roteador entre interfaces/sub-redes.
- chain=output: tráfego originado pelo próprio roteador.
Uma regra em input afeta o acesso de gerenciamento; uma em forward controla o tráfego entre clientes e a internet; output raramente precisa de muitas regras, mas pode ser útil para restringir serviços originados pelo roteador (por exemplo, bloqueio de atualizações automáticas em ambientes controlados).
Políticas default (ordem e decisão)
- Ordem importa: o RouterOS processa regras top-down por chain.
- Defina regras que aceitam tráfego essencial nas posições iniciais, depois regras que rejeitam/travam tráfego malicioso/indesejado.
- No final de cada chain (especialmente input e forward) ter uma regra explícita de drop com logging controlado é uma boa prática.
Regras essenciais
Abaixo estão regras mínimas e amplamente adotadas (exemplos práticos). Substitua IPs e interfaces pelo seu ambiente.
1) Permitir conexões estabelecidas/relacionadas e bloquear inválidas
# Allow established and related (important to keep stateful firewall functioning)
/ip firewall filter add chain=input connection-state=established,related action=accept comment="allow established/related - input"
/ip firewall filter add chain=forward connection-state=established,related action=accept comment="allow established/related - forward"
# Drop invalid connections early
/ip firewall filter add chain=input connection-state=invalid action=drop comment="drop invalid - input"
/ip firewall filter add chain=forward connection-state=invalid action=drop comment="drop invalid - forward"
Comentários: permitir established e related é crítico para não quebrar conexões legítimas (FTP ativo, conexões NAT, etc.). Bloquear invalid evita estados corrompidos ou tráfego malicioso.
2) Proteger o roteador (chain=input)
- Permita gerenciamento apenas de IPs/conjuntos de IPs confiáveis.
- Desative serviços desnecessários (/ip service).
- Use portas não-padrão quando apropriado e monitoradas.
Exemplo:
# Allow management from LAN (ex.: 192.168.88.0/24)
/ip firewall filter add chain=input src-address=192.168.88.0/24 action=accept comment="accept from LAN - input"
# Allow SSH from a specific admin IP
/ip firewall filter add chain=input src-address=203.0.113.10 protocol=tcp dst-port=22 action=accept comment="allow SSH from admin IP"
# Disable unused services (example)
/ip service set telnet disabled=yes
/ip service set ftp disabled=yes
# Prefer SSH and HTTPS for management; limit access via firewall rules
Observação: sempre mantenha ao menos um caminho de acesso alternativo (console físico) ao aplicar regras remotas.
3) Regras para o tráfego transitório (chain=forward)
- Bloqueie tráfego entre VLANs/sub‑redes desnecessárias.
- Livre apenas os serviços necessários (HTTP, HTTPS, DNS, etc.).
Exemplo:
# Example: allow HTTP/HTTPS, DNS and established connections
/ip firewall filter add chain=forward protocol=tcp dst-port=80,443 action=accept comment="allow web"
/ip firewall filter add chain=forward protocol=udp dst-port=53 action=accept comment="allow DNS"
# Block everything else by default (place near the end)
/ip firewall filter add chain=forward action=drop comment="default drop forward"
4) NAT (masquerade para internet sharing)
NAT é tratado em /ip firewall nat e normalmente aplicada com chain=srcnat para saída para a internet.
# Masquerade (common for dynamic WAN IP)
/ip firewall nat add chain=srcnat out-interface=WAN action=masquerade comment="masquerade to WAN"
# If using a static IP: use src-nat to a fixed address
#/ip firewall nat add chain=srcnat src-address=192.168.88.0/24 out-interface=WAN action=src-nat to-addresses=198.51.100.2
Aposte em regras de dst-nat apenas quando estritamente necessário (port forwarding) e limite o acesso por origem quando possível.
Rate-limiting e mitigação de abusos
Rate-limiting é importante para mitigar brute-force, scans e ataques de negação de serviço de baixa complexidade. RouterOS oferece vários matches que podem ajudar (p.ex. limit, connection-limit, tcp syn/fragment matches), mas a sintaxe exata pode variar entre versões. Recomendações:
- Utilize conexões estabelecidas/related e drop invalid primeiro (reduz carga).
- Aplique regras de limitação em pontos críticos (input para serviços de gerenciamento; forward para serviços expostos).
- Combine address-lists para banir fontes que excederem limites temporariamente.
- Considere usar listas dinâmicas (address-list add) junto com regras que populam a lista quando um IP excede limite permitido.
Exemplo conceitual (pseudocode, verifique a sintaxe para sua versão do RouterOS):
# Detect and add abusive IPs to an address-list (conceptual)
/ip firewall filter add chain=input protocol=tcp dst-port=22 connection-state=new action=add-src-to-address-list address-list=ssh-bruters address-list-timeout=1h
# Then drop traffic from that list
/ip firewall filter add chain=input src-address-list=ssh-bruters action=drop
Nota: consulte a documentação da sua versão do RouterOS para a sintaxe correta de parâmetros de limit e connection-limit antes de aplicar.
Acesso remoto seguro
Boas práticas para acesso administrativo:
- Restrinja acesso por src-address sempre que possível.
- Desabilite serviços inseguros (telnet, ftp, www sem SSL).
- Use SSH em vez de Telnet; use HTTPS (www-ssl) para interface web.
- Alterar portas padrão reduz a exposição automática de scanners menos sofisticados.
- Use certificados para serviços HTTPS quando aplicável.
- Considere autenticação de dois fatores em ferramentas externas (p.ex. VPN concentrator antes do acesso de gerenciamento).
Exemplo de regras de hardening:
# Allow management only from an admin network
/ip firewall filter add chain=input src-address=10.0.0.0/24 dst-port=8291 protocol=tcp action=accept comment="allow winbox from admin net"
# Block management from internet (as catch-all after specific allows)
/ip firewall filter add chain=input dst-port=22,8291,443 protocol=tcp action=drop comment="drop management from internet"
Outra estratégia recomendada é exigir que todo acesso administrativo passe por VPN. Assim, o roteador expõe menos serviços publicamente.
Logging e monitoramento
- Logue apenas eventos relevantes para evitar encher disco e gerar muito I/O.
- Use prefixes e níveis de logging para identificar eventos de firewall.
- Exporte logs para um servidor externo (syslog) quando possível.
Exemplo simples de regra com logging:
/ip firewall filter add chain=input action=drop log=yes log-prefix="FW-DROP-IN: " comment="log drops to input"
Configuração de logging avançada (envio para arquivo ou remoto) deve ser feita conforme a infraestrutura disponível e com rotação de logs.
Testes e verificação
- Após inserir regras, teste as funções críticas (SSH, web, acessos de usuários, NAT).
- Use /ip firewall filter print and /ip firewall nat print para revisar a ordem.
- Tenha mecanismos de rollback (backup de configuração e acesso console).
Boas práticas operacionais
- Mantenha RouterOS atualizado (verifique compatibilidade antes de atualizar regras/recursos).
- Faça backup automático das configurações e teste restaurações.
- Documente regras: propósito, autor, data e ligação com mudanças de políticas.
- Monitore uso de CPU e conexões; regras mal projetadas podem afetar desempenho (ex.: regras pesadas no início do chain).
Referências
Este guia aborda boas práticas e exemplos de configurações comuns. Para detalhes de sintaxe e recursos específicos, consulte sempre a documentação oficial da MikroTik correspondente à versão do seu RouterOS.
Conclusão
Regras de firewall bem projetadas em MikroTik (RouterOS) reduzem significativamente a superfície de ataque e ajudam a manter a rede disponível e gerenciável. Priorize: proteger o roteador (input), controlar tráfego transitório (forward), usar estados (established/related), bloquear tráfego inválido, aplicar NAT com cuidado, implementar mitigação de abuso via rate‑limit/address‑lists e garantir acesso remoto seguro com logging e monitoramento.