Voltar para o blog
VPS09 de junho de 20265 min de leitura

Como ativar o firewall no Linux e liberar as portas que você usa

UFW e firewalld na prática, com o cuidado que evita você se trancar para fora da própria VPS na hora de ativar.


Firewall no Linux é uma daquelas tarefas que parecem simples até você apertar enter no comando errado e perder o acesso à máquina.

Este guia cobre as duas ferramentas mais usadas, o UFW e o firewalld, na ordem certa para isso não acontecer.

Leia isto antes de ativar qualquer coisa

Quando você liga o firewall, ele passa a bloquear tudo que não foi liberado. E o seu acesso SSH é uma dessas coisas.

Ativar o firewall sem liberar o SSH antes derruba a sua conexão na hora, e você não consegue mais entrar para desfazer. A única saída vira reinstalar a máquina pelo painel.

Então a ordem é sempre:

  1. Libere o SSH
  2. Depois ative o firewall
  3. Confira em uma nova sessão, sem fechar a atual

Mantenha a sessão atual aberta durante todo o processo. Ela é a sua rede de segurança.

Qual firewall a sua distribuição usa

  • Ubuntu e Debian: UFW
  • Rocky Linux, AlmaLinux e CentOS: firewalld

Os dois são camadas de facilidade em cima do mesmo mecanismo do kernel. Você não precisa saber iptables para usar nenhum deles.

Para descobrir o que está instalado:

which ufw firewall-cmd

UFW (Ubuntu e Debian)

1. Instale, se necessário

apt update && apt install -y ufw

2. Libere o SSH primeiro

ufw allow OpenSSH

Se você já trocou a porta do SSH, libere o número que está usando:

ufw allow 2222/tcp

Não pule esta etapa.

3. Ative o firewall

ufw enable

Ele avisa que a operação pode interromper conexões existentes. Como você já liberou o SSH, pode confirmar com y.

4. Confira o que está ativo

ufw status numbered

A saída fica assim:

Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22/tcp                     ALLOW IN    Anywhere
[ 2] 30120/tcp                  ALLOW IN    Anywhere

5. Libere as portas da sua aplicação

A sintaxe é ufw allow porta/protocolo:

ufw allow 80/tcp
ufw allow 443/tcp

Atenção ao protocolo. Servidor de jogo costuma precisar de TCP e UDP na mesma porta. Liberar só um dos dois é o erro mais comum:

ufw allow 30120/tcp
ufw allow 30120/udp

Para liberar uma faixa:

ufw allow 7000:8000/tcp

E para liberar uma porta só para um IP específico, que é o mais seguro quando o serviço é só seu:

ufw allow from 203.0.113.10 to any port 3306

6. Remover uma regra

Liste com ufw status numbered e apague pelo número:

ufw delete 2

firewalld (Rocky, AlmaLinux e CentOS)

1. Ative o serviço

systemctl enable --now firewalld

2. Confirme que o SSH está liberado

O firewalld já vem com o SSH liberado na zona padrão, mas confirme antes de qualquer coisa:

firewall-cmd --list-all

Procure o ssh na linha services. Se não estiver:

firewall-cmd --permanent --add-service=ssh
firewall-cmd --reload

3. Libere as portas da sua aplicação

firewall-cmd --permanent --add-port=30120/tcp
firewall-cmd --permanent --add-port=30120/udp
firewall-cmd --reload

O --permanent é obrigatório. Sem ele, a regra vale até o próximo reinício e some depois, o que gera aquele problema que "voltou sozinho".

E o --reload é o que aplica de fato. Sem ele, a regra permanente está salva mas ainda não está valendo.

Para serviços conhecidos dá para usar o nome em vez do número:

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload

4. Confira

firewall-cmd --list-all

5. Remover uma regra

firewall-cmd --permanent --remove-port=30120/tcp
firewall-cmd --reload

Como testar se a porta abriu mesmo

Liberar no firewall não garante que a porta responde. Duas checagens:

A aplicação está ouvindo? De dentro da máquina:

ss -tulpn | grep 30120

Se não aparecer nada, o firewall não é o problema: o seu serviço não subiu.

Está acessível de fora? Do seu computador, ou por qualquer site de teste de porta, tente conectar no IP da VPS naquela porta. Se responde de dentro mas não de fora, aí sim é firewall.

Se você se trancou para fora

Acontece. Se o SSH parou de responder depois de mexer no firewall, não existe comando mágico, porque justamente o canal de comando está bloqueado.

Os caminhos são acessar por um console de emergência, se a sua hospedagem oferecer, ou reinstalar o sistema pelo painel, o que apaga tudo. O processo está em como formatar o seu VPS.

É exatamente por isso que a ordem dos passos deste guia importa.

Duas boas práticas

Libere o mínimo necessário. Cada porta aberta é uma superfície a mais. Banco de dados, painel administrativo e serviços internos não precisam estar abertos para a internet inteira: restrinja por IP.

Troque a porta do SSH. Reduz muito o volume de tentativa automática de login. O passo a passo está em como alterar a porta do SSH.

E se a sua máquina for Windows, o procedimento equivalente está em como abrir uma porta na sua VPS.

Para o resto das práticas de proteção, escrevemos em como manter a segurança da sua VPS.

Firewall bem configurado protege a máquina, mas não segura ataque volumétrico: quando o tráfego satura o link, ele já chegou. Esse tipo de ataque precisa ser barrado na rede, e é o que a proteção DDoS inclusa nos planos faz.

Pronto para começar o seu projeto?

Encontre o plano certo para o seu projeto e conte com servidores no Brasil, Ryzen 9 e anti-DDoS incluso.

Logo

Olá
como podemos te ajudar?

Suporte via Discord

Normalmente respondemos em 2 min.

Suporte via WhatsApp

Normalmente respondemos em 2 min.

Ver dúvidas comuns