Como liberar portas com o firewall UFW na VPS via SSH
No terminal da VPS, libere primeiro a porta do SSH com ufw allow 22/tcp, depois as portas que precisar (como 80 e 443) e só então ative com ufw enable. O UFW é uma camada a mais, separada do firewall do painel.
O UFW (Uncomplicated Firewall) é o firewall mais simples do Ubuntu e do Debian. Antes de ativar, libere a porta do SSH com ufw allow 22/tcp; depois, libere as portas que o seu serviço usa e ative com ufw enable. Ele funciona dentro da VPS e é uma camada separada do firewall do painel.
Antes de começar
- Acesse a VPS por SSH. Se ainda não sabe como, veja "Como acessar sua VPS por SSH pelo terminal (Linux, Windows e Mac)".
- Os comandos funcionam no Ubuntu e no Debian, os sistemas das VPS da StayCloud.
- Os exemplos supõem que você entrou como
root. Com outro usuário, coloquesudona frente de cada comando. - Saiba quais portas o seu serviço usa. As mais comuns:
22(SSH),80(HTTP, site sem cadeado) e443(HTTPS, site com cadeado). - Deixe o Console SSH do painel à mão: se você se trancar para fora, é por ele que se entra. Veja "Como acessar sua VPS pelo Console SSH do painel".
O UFW e o firewall do painel
São duas camadas diferentes, uma na frente da outra:
- O firewall do painel filtra o tráfego antes de ele chegar na VPS. Veja "Como criar uma regra de firewall na sua VPS".
- O UFW filtra dentro da VPS, no próprio sistema.
Para uma porta funcionar, ela precisa estar liberada nas duas camadas que estiverem ativas. Se você liberou no UFW e a porta continua fechada, confira o firewall do painel, e vice-versa. Você pode usar só uma das duas; usar as duas dá uma proteção extra.
Instalar o UFW, se precisar
No Ubuntu, o UFW já vem instalado, mas desativado. No Debian, instale antes.
- Instale:
Resultado: o UFW é instalado, ou aparece que ele já está na versão mais nova.apt update && apt install -y ufw - Veja o estado:
Resultado: apareceufw statusStatus: inactivese ele ainda não foi ativado.
Liberar as portas e ativar
Siga esta ordem. Ativar o UFW sem liberar o SSH antes derruba a sua conexão.
- Libere a porta do SSH:
Resultado: apareceufw allow 22/tcpRules updated(eRules updated (v6)). Se o seu SSH usa outra porta, troque o22por ela. - Libere as portas do site, se a VPS tiver um:
Resultado: apareceufw allow 80/tcp ufw allow 443/tcpRules updatedpara cada uma. - Ative o UFW:
Resultado: o UFW avisaufw enableCommand may disrupt existing ssh connections. Proceed with operation (y|n)?. - Confira que a porta
22está liberada no passo 1, digiteye aperteEnter.Resultado: apareceFirewall is active and enabled on system startup. A partir daqui, tudo o que não foi liberado fica bloqueado para quem vem de fora.
Para liberar uma porta só para um endereço, como o IP do seu escritório, use:
ufw allow from <SEU_IP> to any port 3306 proto tcp
Assim, só o <SEU_IP> acessa a porta 3306 (do MySQL), e o resto da internet não.
Ver e remover regras
- Veja as regras com número:
Resultado: aparece a lista das regras, cada uma com um número entre colchetes, comoufw status numbered[ 2]. - Remova a regra pelo número:
Resultado: o UFW mostra a regra e pede confirmação. Digiteufw delete 2ye aperteEnter.
Os números mudam depois de cada remoção. Rode ufw status numbered de novo antes de remover outra. Nunca remova a regra da porta do SSH.
Para desligar o UFW de vez, use ufw disable. As regras ficam guardadas para quando você ativar de novo.
Como saber se deu certo
- Rode:
Resultado: apareceufw status verboseStatus: activee a lista das portas liberadas, comALLOW IN. - Sem fechar a sessão atual, abra outro terminal no seu computador e conecte de novo na VPS por SSH.Resultado: a conexão nova funciona. Se não funcionar, a sessão antiga continua aberta para você corrigir as regras.
Se algo der errado
Perdi o acesso SSH depois de ativar o UFW
Causa: a porta do SSH não foi liberada antes do ufw enable. Solução: entre pelo Console SSH do painel e rode ufw allow 22/tcp (ou ufw disable para desligar o UFW).
Liberei a porta no UFW e ela continua fechada
Causa: o firewall do painel está bloqueando, ou o serviço não está rodando nessa porta. Solução: confira as regras do firewall do painel e veja se o serviço está ativo com systemctl status.
A porta de um contêiner Docker ficou aberta mesmo bloqueada no UFW
Causa: o Docker cria as próprias regras de firewall e as portas publicadas pelos contêineres passam por fora do UFW. Solução: publique a porta só no endereço local quando ela não precisar ser pública (por exemplo, -p 127.0.0.1:8080:80) e use o firewall do painel para bloquear o acesso de fora.
"ufw: command not found"
Causa: o UFW não está instalado (comum no Debian). Solução: instale com apt install ufw.
Relacionados
- Como criar uma regra de firewall na sua VPS
- Como acessar sua VPS pelo Console SSH do painel
- Como acessar sua VPS por SSH pelo terminal (Linux, Windows e Mac)
- Como instalar o Docker na VPS via SSH
- Como ver e gerenciar serviços na VPS via SSH
Viu algo errado ou desatualizado?