~ / blog / segurança
18 set 2026segurança8 min de leitura

Firewall básico: UFW no Linux e Windows Firewall

Regras mínimas para expor só o necessário: SSH/RDP, HTTP/HTTPS e negação padrão — com comandos equivalentes nos dois sistemas.

LinuxWindowsfirewallhardening

1. Princípio: deny by default

Firewall bom não é lista enorme de regras. É: tudo bloqueado por padrão, liberar só portas e origens necessárias.

2. UFW no Ubuntu/Debian

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp comment 'SSH'
sudo ufw allow 80,443/tcp comment 'web'
sudo ufw enable
sudo ufw status verbose
ATENÇÃO Se estiver conectado por SSH, libere a porta 22 antes de ativar o UFW.

3. Windows Firewall

Set-NetFirewallProfile -Profile Domain,Public,Private -DefaultInboundAction Block -DefaultOutboundAction Allow
New-NetFirewallRule -DisplayName "Allow HTTPS" -Direction Inbound -Protocol TCP -LocalPort 443 -Action Allow
New-NetFirewallRule -DisplayName "Allow HTTP" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow
Get-NetFirewallRule | Where-Object Enabled -eq True | Select DisplayName, Direction, Action

4. Equivalências

  • Status: ufw status / Get-NetFirewallProfile
  • Liberar porta: ufw allow 443/tcp / New-NetFirewallRule ... -LocalPort 443

5. Checklist

  • Deny inbound por padrão
  • SSH/RDP com origem restrita quando possível
  • Só 80/443 públicos para web
  • Documentar cada regra extra

6. Comandos explicados

UFW (Ubuntu e Debian)

ComandoO que faz
ufw default deny incomingBloqueia toda conexão de entrada que não tenha uma regra liberando.
ufw default allow outgoingPermite as conexões que o servidor inicia (atualizações, DNS, APIs).
ufw allow 22/tcp comment 'SSH'Libera a porta 22 em TCP. O comment só documenta a regra.
ufw allow 80,443/tcpLibera várias portas de uma vez. Nesse formato, é obrigatório informar o protocolo.
ufw enableAtiva o firewall e o mantém ligado no boot.
ufw status verboseMostra o estado, as políticas padrão e todas as regras.

Windows Firewall (PowerShell)

Comando ou parâmetroO que faz
Set-NetFirewallProfile -Profile Domain,Public,PrivateAplica a mudança aos três perfis de rede do Windows.
-DefaultInboundAction BlockBloqueia a entrada por padrão.
-DefaultOutboundAction AllowPermite a saída por padrão.
New-NetFirewallRule -DisplayName "Allow HTTPS"Cria uma regra com esse nome, que aparece na interface gráfica.
-Direction Inbound -Protocol TCP -LocalPort 443 -Action AllowRegra de entrada, em TCP, na porta 443, liberando o tráfego.
Get-NetFirewallRule | Where-Object Enabled -eq True | Select DisplayName, Direction, ActionLista só as regras ativas, com nome, direção e ação.

7. Exemplo: saída do ufw status verbose

Depois de aplicar as regras do artigo, o resultado do ufw status verbose é parecido com este:

Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW IN    Anywhere                   # SSH
80,443/tcp                 ALLOW IN    Anywhere                   # web
22/tcp (v6)                ALLOW IN    Anywhere (v6)              # SSH
80,443/tcp (v6)            ALLOW IN    Anywhere (v6)              # web

A linha Default confirma o princípio do artigo: entrada negada, saída permitida. As linhas (v6) são as mesmas regras para IPv6, criadas automaticamente.

8. Erros comuns

SintomaCausa provávelSolução
Perdeu o acesso SSH ao ativar o UFWA porta do SSH não foi liberada antes do ufw enable.Entre pelo console do provedor e rode sudo ufw allow 22/tcp (ou a porta que você usa).
Uma porta de container Docker continua aberta apesar do UFWO Docker publica portas direto no iptables e contorna o UFW.Publique só o necessário e, se possível, limite a 127.0.0.1:porta:porta.
A regra do Windows não tem efeitoO perfil ativo da rede (Domain, Private ou Public) é outro, ou existe uma regra de bloqueio que prevalece.Confira o perfil com Get-NetConnectionProfile e revise as regras conflitantes.
O serviço só responde localmenteEle escuta apenas em 127.0.0.1, e o firewall não tem culpa.Veja com sudo ss -lntp em qual endereço a porta está aberta.

Quer aplicar isso ao seu contexto?

Se esse problema existe na sua operação, podemos analisar o cenário em um diagnóstico gratuito de 30 minutos.

solicitar diagnóstico gratuito →

Leia também