Otimizar firewall Ubuntu é ajustar regras, prioridades e logs do UFW para permitir apenas SSH, HTTP e HTTPS em servidores web. Para proteger Nginx ou Apache sem perder acesso remoto, siga estes passos:
- Confirme a porta SSH atual antes de ativar qualquer bloqueio.
- Defina a política padrão como negar entrada e permitir saída.
- Libere SSH, HTTP e HTTPS na ordem correta.
- Ative o UFW e valide as regras numeradas.
- Audite logs e remova portas desnecessárias.
- Teste o acesso externo ao site e ao SSH após cada mudança.
Pré-requisitos
- Acesso SSH com usuário administrativo no Ubuntu 25.10 ou Ubuntu 26.04.
- Permissão para executar comandos com sudo.
- Servidor web Nginx ou Apache já instalado e ouvindo nas portas corretas.
- Conhecimento da porta SSH em uso, principalmente se ela foi alterada da porta 22.
- Uma segunda sessão SSH aberta durante a configuração, para reduzir o risco de bloqueio acidental.
- Acesso ao painel do provedor para recuperação emergencial, caso uma regra bloqueie o login remoto.
Otimizar firewall Ubuntu com política padrão segura
Otimizar firewall Ubuntu começa pela política padrão: negar conexões de entrada e permitir conexões de saída. Essa base reduz a superfície exposta do servidor web, porque serviços internos, bancos locais, painéis temporários e portas esquecidas deixam de responder externamente. Em servidores Ubuntu atuais, o UFW é a forma mais prática de controlar essas regras sem escrever regras complexas de iptables ou nftables diretamente.
Antes de mudar qualquer regra, confirme se o UFW está instalado e veja o estado atual. Ao rodar este comando, você verá se o firewall está ativo, inativo ou se já existem regras aplicadas:
sudo ufw status verboseOutput esperado:
Status: inactiveSe o comando não existir, instale o pacote antes de continuar:
sudo apt update
sudo apt install ufwOutput esperado:
Reading package lists... Done
ufw is already the newest version
ou
Setting up ufw ...Atenção: não ative o firewall antes de liberar a porta SSH correta. Em acesso remoto, uma regra aplicada fora de ordem pode encerrar sua administração do servidor e exigir acesso por console de recuperação.
Agora defina a política padrão. Esse ajuste não apaga regras existentes, mas muda o comportamento para conexões que não possuem liberação explícita:
sudo ufw default deny incoming
sudo ufw default allow outgoingOutput esperado:
Default incoming policy changed to 'deny'
Default outgoing policy changed to 'allow'Esse modelo é adequado para a maioria dos servidores web: visitantes acessam apenas as portas publicadas, enquanto o próprio servidor continua apto a baixar atualizações, renovar certificados e consultar serviços externos. Se você ainda está validando o acesso SSH, veja também Acessando servidores VPS Linux da AviraHost antes de aplicar mudanças em produção.
Configurar UFW para servidor web Ubuntu sem bloquear SSH
Configurar UFW para servidor web Ubuntu exige uma sequência segura: primeiro SSH, depois tráfego web, depois ativação. Se o SSH usa a porta padrão, libere o perfil OpenSSH. Se usa outra porta, libere o número real da porta com TCP. Não presuma a porta; confirme no serviço antes.
sudo systemctl status ssh --no-pagerOutput esperado:
Active: active (running)Para liberar SSH padrão, use:
sudo ufw allow OpenSSHOutput esperado:
Rule added
Rule added (v6)Se seu SSH estiver em uma porta personalizada, por exemplo 2222, use a regra explícita. Substitua o número pela porta real do seu ambiente:
sudo ufw allow 2222/tcpOutput esperado:
Rule added
Rule added (v6)Em seguida, libere HTTP e HTTPS para o servidor web. Esse é o núcleo de uma regra de firewall Ubuntu para Nginx ou Apache, porque as portas 80 e 443 são as portas públicas mais comuns de um site. A porta 80 também pode ser necessária para redirecionamento e validações HTTP de certificados, enquanto a porta 443 atende o tráfego criptografado.
sudo ufw allow 80/tcp
sudo ufw allow 443/tcpOutput esperado:
Rule added
Rule added (v6)
Rule added
Rule added (v6)Se você usa Nginx, também pode listar os perfis disponíveis. O nome exato depende dos perfis instalados pelo pacote:
sudo ufw app listOutput esperado:
Available applications:
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSHQuando os perfis existem, Nginx Full libera HTTP e HTTPS em uma única regra. Ainda assim, regras numéricas são claras, portáveis e fáceis de auditar em ambientes mistos com Apache ou Nginx. Se seu objetivo é forçar HTTPS no site, a camada de firewall deve permitir 80 e 443; o redirecionamento fica no servidor web. Para esse ajuste de aplicação, consulte Como redirecionar um site http para https?.
Ativar firewall Ubuntu em produção com validação por etapas
Firewall Ubuntu sem bloquear SSH depende de validação antes e depois da ativação. A prática mais segura é manter duas sessões SSH abertas: uma para aplicar comandos e outra parada, já autenticada, para recuperação rápida se algo sair errado. Também é recomendável aplicar a mudança em uma janela de menor tráfego, porque o firewall interfere diretamente no caminho de rede do site.
Revise as regras antes de ativar:
sudo ufw show addedOutput esperado:
Added user rules:
ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcpAtive o UFW somente depois de confirmar SSH, HTTP e HTTPS:
sudo ufw enableOutput esperado:
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startupAgora verifique o status detalhado:
sudo ufw status verboseOutput esperado:
Status: active
Logging: on
Default: deny (incoming), allow (outgoing), disabled (routed)
To Action From
-- ------ ----
OpenSSH ALLOW IN Anywhere
80/tcp ALLOW IN Anywhere
443/tcp ALLOW IN AnywhereAo testar externamente, confirme que o site responde em HTTP e HTTPS e que portas não utilizadas não aparecem abertas. O UFW protege a borda do servidor, mas não corrige uma configuração insegura do Nginx, Apache, PHP ou aplicação. Se você perdeu acesso SSH durante testes anteriores, o artigo Como solucionar problemas de acesso SSH no VPS Linux: Guia Completo ajuda a organizar o diagnóstico de conectividade.
Auditar regras do UFW e remover portas desnecessárias
Regras UFW para HTTP e HTTPS devem ser simples, revisáveis e documentadas. Um firewall eficiente não é aquele com muitas regras, mas aquele que permite somente o necessário. Em servidores web, é comum encontrar portas abertas de testes antigos, bancos de dados expostos temporariamente, painéis de administração esquecidos ou serviços que deveriam aceitar apenas conexões locais.
Liste as regras numeradas para entender a ordem e facilitar remoções:
sudo ufw status numberedOutput esperado:
Status: active
To Action From
[ 1] OpenSSH ALLOW IN Anywhere
[ 2] 80/tcp ALLOW IN Anywhere
[ 3] 443/tcp ALLOW IN AnywhereAtenção: remover uma regra errada pode derrubar o acesso administrativo ou tirar o site do ar. Antes de deletar, confirme o número atual da regra no mesmo terminal, pois a numeração muda depois de cada remoção.
Para remover uma porta desnecessária, use o número exibido. O exemplo abaixo remove a regra número 4, caso ela exista no seu ambiente:
sudo ufw delete 4Output esperado:
Deleting:
allow 8080/tcp
Proceed with operation (y|n)? y
Rule deletedDepois, valide novamente:
sudo ufw status numberedOutput esperado:
Status: active
To Action From
[ 1] OpenSSH ALLOW IN Anywhere
[ 2] 80/tcp ALLOW IN Anywhere
[ 3] 443/tcp ALLOW IN AnywhereUma boa rotina é revisar o firewall sempre que um novo serviço for instalado. Se o serviço não precisa receber tráfego público, mantenha-o sem regra de entrada. Para bancos, filas, caches e painéis internos, prefira bind local, rede privada ou restrição por IP, conforme a arquitetura do servidor.
Logs do firewall Ubuntu para detectar bloqueios e tentativas
Logs do firewall Ubuntu ajudam a confirmar se o UFW está bloqueando tráfego inesperado e se algum serviço legítimo está sendo impedido. O registro não substitui monitoramento de aplicação, mas dá evidências importantes: origem, destino, porta, protocolo e ação aplicada. Em servidores web, isso ajuda a separar erro de aplicação de bloqueio de rede.
Ative logs se ainda não estiverem ligados:
sudo ufw logging onOutput esperado:
Logging enabledConsulte eventos recentes relacionados ao UFW:
sudo journalctl -k --no-pager | grep UFWOutput esperado:
kernel: [UFW BLOCK] IN=eth0 OUT= MAC=... SRC=203.0.113.10 DST=... PROTO=TCP DPT=3306Nesse exemplo, uma tentativa na porta 3306 foi bloqueada. Em um servidor web comum, isso costuma ser desejável quando o banco não deve ser público. Já se você encontrar bloqueios em 80 ou 443 enquanto o site está inacessível, revise as regras e confirme se o servidor web está ouvindo nas portas corretas.
sudo ss -tulpn | grep -E ':80|:443'Output esperado:
tcp LISTEN 0 511 0.0.0.0:80 0.0.0.0:* users:(("nginx",pid=...,fd=...))
tcp LISTEN 0 511 0.0.0.0:443 0.0.0.0:* users:(("nginx",pid=...,fd=...))Quando o UFW permite a porta, mas nada escuta nela, o problema está no servidor web, não no firewall. Quando o serviço escuta, mas o UFW bloqueia, o ajuste deve ser feito na regra. Essa separação evita mudanças aleatórias e reduz tempo de indisponibilidade.
Problemas comuns e como resolver
Sintoma: o SSH parou de conectar depois de ativar o UFW
Causa: a porta SSH usada pelo servidor não foi liberada antes da ativação do firewall, ou foi liberado apenas o perfil OpenSSH enquanto o serviço usa uma porta personalizada.
Solução: acesse pelo console de recuperação do provedor, confirme a porta do SSH e adicione a regra correta com sudo ufw allow porta/tcp. Depois revise com sudo ufw status numbered antes de sair do console.
Sintoma: o site não abre, mas o SSH funciona
Causa: as portas 80 e 443 não foram liberadas, ou o servidor web não está escutando nelas. Também pode haver regra antiga negando tráfego antes da regra de liberação.
Solução: valide sudo ufw status verbose e confirme o serviço com sudo ss -tulpn. Se faltar regra, adicione sudo ufw allow 80/tcp e sudo ufw allow 443/tcp, depois teste novamente de fora do servidor.
Sintoma: portas antigas continuam abertas
Causa: regras criadas em testes anteriores permanecem ativas no UFW. Em alguns casos, o serviço foi removido, mas a regra de firewall ficou publicada.
Solução: use sudo ufw status numbered, identifique a regra e remova pelo número com cuidado. Após cada exclusão, liste novamente porque a numeração muda.
Sintoma: logs mostram muitos bloqueios em portas desconhecidas
Causa: tentativas externas de conexão em portas comuns de bancos, painéis e serviços automatizados são frequentes em servidores expostos à internet. O bloqueio é esperado quando essas portas não fazem parte da aplicação pública.
Solução: mantenha a política de negar entrada, revise se não há serviço sensível exposto e monitore padrões persistentes. Não libere portas apenas para eliminar mensagens de log; libere somente quando houver necessidade real e controlada.
Perguntas frequentes sobre otimizar firewall Ubuntu
Qual firewall usar no Ubuntu para proteger um servidor web?
No Ubuntu, o UFW é a opção mais prática para gerenciar regras de firewall em servidores web, pois simplifica a abertura de portas como 80, 443 e SSH. Em ambientes que exigem regras muito avançadas, iptables ou nftables podem ser usados diretamente, mas exigem mais cuidado operacional.
Como liberar HTTP e HTTPS no firewall Ubuntu sem bloquear o SSH?
Libere primeiro a porta SSH atual e confirme a regra antes de ativar ou recarregar o firewall. Depois, permita as portas 80 e 443 para tráfego web e valide o status das regras para evitar ficar sem acesso remoto ao servidor.
O UFW é suficiente para proteger Nginx ou Apache no Ubuntu?
O UFW ajuda a reduzir a superfície de ataque bloqueando portas desnecessárias e permitindo apenas serviços essenciais. Ele não substitui hardening do Nginx ou Apache, atualizações do sistema, configuração TLS correta e monitoramento de logs.
Como verificar se o firewall Ubuntu está bloqueando portas desnecessárias?
Use o status detalhado do UFW para listar regras ativas e teste externamente apenas as portas que devem responder. Em um servidor web típico, SSH, HTTP e HTTPS são os serviços mais comuns a permanecerem acessíveis, dependendo da aplicação.
Posso ativar o firewall Ubuntu em produção sem derrubar o site?
Sim, desde que as regras necessárias sejam criadas antes da ativação ou recarga do firewall. O procedimento seguro é liberar SSH, HTTP e HTTPS, revisar as regras numeradas e só então aplicar as mudanças em uma janela controlada.
Conclusão
- Comece pela política padrão: negar entrada, permitir saída e liberar apenas portas realmente necessárias.
- Proteja o acesso remoto liberando a porta SSH correta antes de ativar ou recarregar o UFW.
- Revise regras numeradas, logs e serviços em escuta sempre que instalar ou remover componentes do servidor web.
Leia também
- Guia para configurar acesso SSH apenas para IPs específicos no Ubuntu 22.04
- UFW vs iptables: Qual escolher para seu VPS Ubuntu?
- Checklist para configurar servidor web seguro usando apenas linha de comando
Precisa de ajuda com firewall Ubuntu para servidores web?
A AviraHost oferece infraestrutura VPS para quem precisa hospedar aplicações web com controle de firewall, acesso root e flexibilidade operacional. Uma base bem configurada reduz exposição desnecessária e facilita a manutenção do ambiente.