15 min de leitura · Guia técnico
Firewall Linux: como escolher e configurar a melhor distro para seu VPS é a prática de alinhar distribuição, ferramenta de firewall e política de portas antes de colocar serviços em produção. Para otimizar a segurança sem perder acesso remoto, siga estes passos:
- Escolha a distro conforme a ferramenta principal: Debian 12 com nftables, Ubuntu 24.04 LTS com UFW ou Rocky Linux 9 e AlmaLinux 9 com firewalld.
- Liste portas realmente usadas, como SSH, HTTP, HTTPS, DNS, banco de dados ou painel de hospedagem.
- Crie regras permissivas mínimas antes de ativar a política restritiva.
- Teste as regras com uma sessão SSH aberta e valide o status do firewall.
- Revise logs, serviços expostos e compatibilidade com Fail2Ban ou painel web.
Pré-requisitos
- Acesso root ou usuário com sudo ao servidor.
- Console de recuperação disponível no painel do provedor, caso uma regra bloqueie o SSH.
- Distribuição definida: Debian 12, Ubuntu 24.04 LTS, Rocky Linux 9 ou AlmaLinux 9.
- Inventário das portas que precisam ficar abertas, como 22 para SSH, 80 para HTTP e 443 para HTTPS.
- Cliente SSH funcionando. Se ainda estiver configurando o acesso, consulte Acessando servidores VPS Linux da AviraHost.
- Backup ou snapshot antes de alterações em servidores em produção.
Firewall Linux: como escolher e configurar a melhor distro para seu VPS
Escolher distro para firewall Linux muda a operação porque cada família entrega uma experiência diferente de gerenciamento de regras. Debian 12 favorece o uso direto do nftables, que é uma camada moderna para políticas de filtragem. Ubuntu 24.04 LTS costuma ser escolhido por quem quer simplicidade com UFW, uma interface mais direta para liberar ou negar portas. Rocky Linux 9 e AlmaLinux 9 são comuns em ambientes corporativos porque trabalham bem com firewalld, zonas e perfis dinâmicos.
A escolha correta não deve ser feita apenas por preferência pessoal. Em hospedagem web, a distro precisa combinar com o painel, com o processo de atualização, com o nível de conhecimento da equipe e com a forma como você pretende auditar regras. Se o servidor roda Nginx 1.26, PHP 8.3 e MariaDB 11.4, por exemplo, o firewall precisa proteger as portas externas sem bloquear comunicação local entre aplicação, banco e serviços internos.
- Debian 12: recomendado quando você quer controle direto com nftables e regras previsíveis em arquivo ou linha de comando.
- Ubuntu 24.04 LTS: recomendado quando a prioridade é configurar UFW com comandos simples e legíveis.
- Rocky Linux 9: recomendado quando você precisa de firewalld, zonas e comportamento próximo a ambientes corporativos.
- AlmaLinux 9: recomendado quando você quer alternativa compatível com fluxos que usam firewalld e serviços persistentes.
Antes de configurar, valide o sistema operacional em execução:
cat /etc/os-release
Output esperado:
NAME="Debian GNU/Linux"
VERSION="12"
Se o resultado indicar Ubuntu, Rocky ou AlmaLinux, adapte os comandos das próximas seções. O objetivo é evitar misturar ferramentas sem saber qual backend está realmente aplicando as regras.
Configurar nftables no Debian 12 com política mínima
nftables no Debian 12 é uma boa escolha quando você precisa de controle direto sobre portas, protocolos e endereços. Em vez de depender de uma interface simplificada, você trabalha com a ferramenta de firewall de forma mais explícita. Isso ajuda em servidores onde a regra precisa ser auditável e onde mudanças automáticas de painéis ou scripts devem ser evitadas.
Atenção: comandos de firewall podem bloquear o SSH se aplicados sem liberar a porta correta. Antes de continuar, mantenha uma sessão SSH aberta e confirme qual porta o SSH usa no servidor.
ss -tulpn
Output esperado:
Netid State Local Address:Port
tcp LISTEN 0.0.0.0:22
tcp LISTEN 0.0.0.0:80
tcp LISTEN 0.0.0.0:443
Instale e habilite o nftables, caso ainda não esteja ativo:
apt update
apt install nftables
systemctl enable nftables
systemctl start nftables
Output esperado:
Created symlink for nftables.service
nftables.service active
Agora crie uma base simples: aceitar conexões estabelecidas, liberar loopback, SSH, HTTP e HTTPS. Use comandos diretos para evitar editar um arquivo incorreto durante o primeiro teste:
nft add table inet filtro
nft add chain inet filtro entrada type filter hook input priority 0
nft add rule inet filtro entrada ct state established,related accept
nft add rule inet filtro entrada iif lo accept
nft add rule inet filtro entrada tcp dport 22 accept
nft add rule inet filtro entrada tcp dport 80 accept
nft add rule inet filtro entrada tcp dport 443 accept
nft add rule inet filtro entrada counter drop
Output esperado:
sem mensagem de erro
regras adicionadas à tabela inet filtro
Ao rodar a listagem, você verá a sequência aplicada. Esse teste é importante porque confirma que a política foi criada na ordem esperada:
nft list ruleset
Output esperado:
table inet filtro
chain entrada
tcp dport 22 accept
tcp dport 80 accept
tcp dport 443 accept
counter drop
Se você administra hospedagem de sites, combine essa etapa com um inventário de serviços. O artigo Configurando um Servidor Linux para Hospedagem de Sites ajuda a revisar os componentes antes de abrir portas desnecessárias.
Configurar UFW no Ubuntu 24.04 LTS sem travar o SSH
UFW no Ubuntu 24.04 LTS é indicado quando você quer um firewall simples de manter, especialmente em servidores menores ou equipes que preferem comandos claros. O UFW abstrai detalhes do backend e permite liberar serviços com uma sintaxe mais amigável. Essa praticidade reduz erro operacional, mas não elimina a necessidade de planejamento.
Atenção: não execute a ativação do UFW antes de liberar a porta SSH correta. Se o SSH estiver em uma porta diferente de 22, substitua a porta nos comandos.
ufw status verbose
Output esperado:
Status: inactive
Defina a política padrão: negar entrada, permitir saída e liberar os serviços necessários. Em um servidor web comum, SSH, HTTP e HTTPS costumam ser o conjunto mínimo inicial:
ufw default deny incoming
ufw default allow outgoing
ufw allow 22/tcp
ufw allow 80/tcp
ufw allow 443/tcp
Output esperado:
Default incoming policy changed to deny
Default outgoing policy changed to allow
Rule added
Rule added
Rule added
Ative o firewall somente depois das regras essenciais:
ufw enable
Output esperado:
Firewall is active and enabled on system startup
Confira o resultado numerado. Ao rodar este comando, você verá quais portas estão liberadas e poderá remover regras duplicadas com mais segurança:
ufw status numbered
Output esperado:
Status: active
1 22/tcp ALLOW IN Anywhere
2 80/tcp ALLOW IN Anywhere
3 443/tcp ALLOW IN Anywhere
UFW é uma ótima camada inicial, mas não deve virar uma lista infinita de portas abertas. Se uma aplicação precisa de acesso restrito, prefira liberar por IP específico em vez de expor para toda a internet.
Configurar firewalld no Rocky Linux 9 e AlmaLinux 9
firewalld em Rocky Linux 9 e AlmaLinux 9 trabalha com zonas, serviços e regras persistentes. Essa abordagem é útil quando o servidor tem perfis diferentes de rede ou quando você quer manter regras organizadas por serviço. Em vez de memorizar todas as portas, você pode liberar serviços como ssh, http e https, desde que eles existam nos perfis do firewalld.
Verifique se o firewalld está instalado e ativo:
systemctl status firewalld
Output esperado:
firewalld.service active
Se não estiver ativo, instale e inicie:
dnf install firewalld
systemctl enable firewalld
systemctl start firewalld
Output esperado:
Installed: firewalld
Created symlink for firewalld.service
firewalld.service started
Libere serviços comuns em uma zona pública. A opção permanente grava a regra para sobreviver a reinicializações:
firewall-cmd --get-default-zone
firewall-cmd --permanent --add-service=ssh
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
Output esperado:
public
success
success
success
success
Confira os serviços ativos na zona:
firewall-cmd --list-all
Output esperado:
public
services: ssh http https
ports:
Quando precisar liberar uma porta sem serviço predefinido, use porta e protocolo. Isso é útil para painéis administrativos, APIs internas ou aplicações específicas. Antes de abrir, confirme se a aplicação deve mesmo ficar pública.
firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --reload
firewall-cmd --list-ports
Output esperado:
success
success
8080/tcp
Auditoria de portas abertas e regras antes de colocar em produção
auditoria de firewall em servidor Linux evita que uma distro bem escolhida seja enfraquecida por regras excessivas. O ponto central é comparar três visões: serviços escutando no sistema, regras do firewall e necessidade real da aplicação. Se uma porta aparece aberta no sistema, mas não tem motivo para estar acessível publicamente, ela deve ser fechada ou limitada por IP.
Liste serviços em escuta:
ss -tulpn
Output esperado:
tcp LISTEN 0.0.0.0:22
tcp LISTEN 0.0.0.0:80
tcp LISTEN 0.0.0.0:443
Em seguida, valide o firewall conforme a distro:
nft list ruleset
ufw status verbose
firewall-cmd --list-all
Output esperado:
pelo menos um comando exibirá regras ativas conforme a ferramenta usada na distro
Não use nftables, UFW e firewalld ao mesmo tempo sem entender a cadeia real de aplicação. Em muitos casos, uma ferramenta é apenas a interface de gerenciamento, enquanto outra camada aplica as regras finais. Misturar comandos pode gerar falsa sensação de bloqueio ou liberação.
Uma boa prática é documentar cada porta com motivo, serviço e responsável. Por exemplo: 22 para administração SSH, 80 e 443 para tráfego web, 25 e 587 apenas se o servidor realmente hospedar e-mail. Se você pretende montar e-mail no mesmo servidor, revise também Passo a passo para configurar servidor de e-mail no VPS Linux, pois e-mail exige portas e DNS bem definidos.
Problemas comuns e como resolver
Sintoma: perdi acesso SSH após ativar o firewall
Causa: a política padrão foi alterada para negar entrada antes de liberar a porta SSH correta, ou o SSH usa uma porta personalizada que não foi incluída nas regras. Solução: acesse o console do provedor, libere explicitamente a porta correta e mantenha uma sessão aberta durante novos testes. Em UFW, use ufw allow porta/tcp antes de ufw enable. Em nftables, adicione a regra de accept antes da regra final de drop.
Sintoma: site parou de abrir depois das regras
Causa: as portas 80 e 443 não foram liberadas, ou a regra de bloqueio está antes das regras de permissão. Também pode haver serviço web parado, então não analise apenas o firewall. Solução: confirme o serviço com ss -tulpn, valide Nginx ou Apache e libere http e https na ferramenta da distro. Depois teste novamente a partir de uma rede externa.
Sintoma: regra foi aplicada, mas desapareceu após reiniciar
Causa: a regra foi criada apenas em runtime, sem persistência. Isso é comum ao testar comandos rápidos e esquecer de salvar a configuração permanente. Solução: no firewalld, use --permanent e depois --reload. No UFW, regras permanecem após ativação. No nftables, salve a configuração conforme o método adotado na distro antes de reiniciar.
Sintoma: Fail2Ban não bloqueia tentativas mesmo com firewall ativo
Causa: Fail2Ban depende de logs, filtros e integração correta com a camada de bloqueio. O firewall pode estar ativo, mas o serviço de banimento pode não estar lendo o log esperado. Solução: verifique o status do Fail2Ban, confirme o caminho dos logs do SSH e valide se a jail está ativa. O firewall controla tráfego, enquanto o Fail2Ban reage a padrões abusivos.
Perguntas frequentes sobre Firewall Linux: como escolher e configurar a melhor distro para seu VPS
Qual é a melhor distro para configurar Firewall Linux em VPS?
A melhor distro depende do perfil de administração e do firewall disponível por padrão. Debian 12 tende a favorecer nftables, Ubuntu costuma ser prático com UFW, enquanto Rocky Linux 9 e AlmaLinux 9 são comuns com firewalld em ambientes corporativos.
UFW, firewalld, iptables ou nftables: qual devo usar?
Use UFW quando precisar de simplicidade em servidores Ubuntu, firewalld quando quiser zonas e perfis dinâmicos em Rocky Linux ou AlmaLinux, e nftables quando precisar de controle moderno e direto das regras. Evite misturar ferramentas sem entender qual backend está realmente aplicando as políticas.
Posso trocar a distro do VPS só para melhorar o firewall?
Pode fazer sentido quando a operação exige padronização, suporte de longo prazo ou compatibilidade com uma ferramenta específica de firewall. Antes de trocar, avalie backup, janela de manutenção, serviços instalados e risco de indisponibilidade durante a migração.
Como evitar perder acesso SSH ao configurar Firewall Linux?
Antes de ativar qualquer política restritiva, libere explicitamente a porta SSH usada no servidor e mantenha uma sessão aberta para teste. Também é recomendado ter acesso ao console do provedor para recuperação caso uma regra bloqueie o acesso remoto.
Firewall Linux substitui Fail2Ban ou regras de segurança do painel?
Não substitui totalmente. O Firewall Linux controla tráfego por portas, protocolos e endereços, enquanto Fail2Ban reage a tentativas abusivas analisando logs, e painéis como cPanel podem ter camadas próprias de proteção.
Conclusão
- Escolha a distro pelo modelo de administração: Debian 12 com nftables, Ubuntu 24.04 LTS com UFW ou Rocky Linux 9 e AlmaLinux 9 com firewalld.
- Libere primeiro SSH, HTTP e HTTPS, teste com sessão aberta e só depois aplique políticas restritivas.
- Audite portas abertas periodicamente e evite misturar ferramentas de firewall sem entender qual está aplicando as regras.
Leia também
- Checklist Completo para Configurar e Testar o Firewall UFW em VPS Linux e Servidores Dedicados
- Passo a passo para configurar firewall com nftables em VPS Linux e servidor dedicado
- Como Instalar e Configurar o Firewall CSF no VPS Linux para Segurança Avançada
Precisa de ajuda com Firewall Linux em VPS?
Um ambiente bem configurado reduz exposição desnecessária e facilita a manutenção das regras conforme seus serviços crescem. A AviraHost oferece planos de VPS para quem precisa de controle sobre distro, firewall e serviços de produção.