Firewall UFW em VPS Linux: Guia de Segurança para Iniciantes

10 min de leitura Segurança e Infraestrutura
Firewall UFW em VPS Linux: Guia de Segurança para Iniciantes

Por que o UFW é essencial para sua VPS Linux

A segurança de uma servidor virtual privado (VPS) começa com a configuração correta do firewall. No ecossistema Linux, especialmente em distribuições baseadas em Debian e Ubuntu, o Uncomplicated Firewall (UFW) se destaca como a ferramenta padrão para gerenciamento de regras de rede. Apesar do nome "uncomplicated" (simples), ele oferece controle granular sobre o tráfego de entrada e saída, protegendo sua infraestrutura contra acessos não autorizados.

Muitos administradores iniciantes tendem a pular essa etapa ou deixam para depois, acreditando que serviços como SSH estão seguros por padrão. No entanto, em um ambiente de nuvem pública, scanners automaticos varrem constantemente portas abertas em busca de vulnerabilidades. Configurar o firewall Ubuntu ou Debian corretamente é a primeira linha de defesa no processo de hardening server.

Este tutorial guiará você através da instalação, configuração e teste do UFW em sua VPS Linux, garantindo que você mantenha o acesso administrativo enquanto bloqueia portas desnecessárias.

Verificando o Status Atual do Firewall

Antes de aplicar qualquer regra, é crucial entender o estado atual do firewall na sua máquina. Em muitas distribuições modernas, o UFW vem instalado, mas desativado por padrão para evitar que você seja bloqueado durante a configuração inicial.

  1. Acesse seu servidor via SSH usando um cliente como Terminal (macOS/Linux) ou PuTTY/Windows Terminal (Windows).
  2. Execute o comando de status:
sudo ufw status

Se a saída for Status: inactive, isso significa que não há regras ativas e, consequentemente, nenhum filtro de pacotes sendo aplicado. Se estiver como active, revise as regras existentes com sudo ufw status numbered para garantir que elas são consistentes com o que você deseja implementar.

Dica de segurança: Nunca desative ou reconfigure o firewall enquanto estiver conectado via SSH sem ter uma regra de fallback ou um plano B (como o console de recuperação da sua provedora de hospedagem). Se você bloquear a porta 22 (SSH) e não tiver acesso externo, precisará restaurar as configurações manualmente através do painel da VPS.

Instalando e Ativando o UFW

Embora o UFW seja padrão na maioria das imagens de Ubuntu e Debian, em outras distribuições como Rocky Linux ou CentOS, a abordagem pode variar. Para fins deste guia, focaremos no ecossistema Debian/Ubuntu, que é o mais comum para linux para iniciantes.

Caso o comando anterior indique que o pacote não foi encontrado, instale-o usando:

sudo apt update
sudo apt install ufw

Com o pacote instalado, vamos habilitar o firewall. O UFW usa o iptables ou nftables como backend, mas abstrai a complexidade para o usuário.

sudo ufw enable

O sistema exibirá um aviso perguntando se deseja continuar. Digite y e pressione Enter. O firewall estará agora ativo e bloqueando todas as conexões de entrada por padrão, exceto aquelas que você permitir explicitamente.

Configurando o Acesso SSH (Passo Crítico)

O erro mais comum ao configurar um firewall Ubuntu pela primeira vez é ativar o UFW antes de liberar a porta SSH. Se você fizer isso, será desconectado imediatamente do servidor.

Verifique primeiro em qual porta seu serviço SSH está escutando. O padrão é a porta 22, mas por segurança, muitos administradores mudam para uma porta não padrão (por exemplo, 2222).

  1. Se você usa a porta padrão (22), permita o acesso com:
sudo ufw allow ssh

O UFW reconhece o serviço "ssh" e abre automaticamente a porta 22/tcp. Se você mudou a porta, deve permitir o acesso manualmente especificando o número:

sudo ufw allow 2222/tcp

Para usuários mais avançados em segurança vps, é recomendável restringir o acesso SSH apenas ao seu endereço IP de origem, em vez de permitir de qualquer lugar (0.0.0.0/0). Isso adiciona uma camada extra de proteção contra ataques de força bruta:

sudo ufw allow from SEU_IP_PUBLICO to any port 22

Substitua SEU_IP_PUBLICO pelo seu IP real. Para descobrir seu IP, você pode visitar sites como ifconfig.me ou usar comandos como curl ifconfig.me.

Habilitando Serviços Comuns (HTTP, HTTPS e DNS)

Agora que o acesso administrativo está garantido, precisamos liberar o tráfego para os serviços que sua VPS irá hospedar. Na maioria dos casos, servidores web requerem portas 80 (HTTP) e 443 (HTTPS).

O UFW possui perfis pré-configurados para aplicativos comuns, o que simplifica drasticamente a configuração:

  • WWW Full: Abre as portas 80 e 443 simultaneamente.
  • HTTP: Abre apenas a porta 80.
  • HTTPS: Abre apenas a porta 443.

Execute o seguinte comando para liberar tráfego web completo:

sudo ufw allow 'WWW Full'

Se você estiver configurando um servidor de nomes ou resolvendo problemas de DNS localmente, pode ser necessário permitir a porta 53 (TCP e UDP). Como o UFW lida melhor com protocolos específicos, use:

sudo ufw allow 53

Para serviços que exigem portas específicas não listadas nos perfis padrão (como bancos de dados internos ou APIs privadas), utilize a sintaxe genérica:

sudo ufw allow PORTA_NUMERO/protocolo

Exemplo para liberar uma porta TCP personalizada:

sudo ufw allow 8080/tcp

Definindo Políticas Padrão (Default Policies)

Uma boa prática de hardening server é garantir que as políticas padrão do UFW estejam configuradas corretamente. A política padrão define o que acontece com um pacote se ele não corresponder a nenhuma regra explícita.

Verifique as políticas atuais:

sudo ufw status verbose

O ideal é que a saída indique Default: deny (incoming) e allow (outgoing). Isso significa que, por padrão, todo tráfego de entrada é bloqueado, mas o servidor pode se conectar a serviços externos (necessário para atualizações do sistema, downloads de pacotes e consultas DNS).

Se as políticas não estiverem como desejado, redefina-as:

sudo ufw default deny incoming
sudo ufw default allow outgoing

Essa configuração garante que, mesmo se você cometer um erro ao adicionar regras de entrada, o servidor permanecerá protegido contra acessos indesejados.

Gerenciando Regras e Exceções

p>Ao longo do tempo, você precisará ajustar as regras. O UFW permite inserir regras em posições específicas da lista, o que é útil para manter a lógica de firewall organizada (regras mais permissivas no topo, restrições no meio, bloqueios gerais no final).

Inserindo Regras em Posições Específicas

Suponha que você queira inserir uma regra de bloqueio antes da regra de abertura do SSH. Você pode usar o parâmetro insert:

sudo ufw insert 2 deny from 192.168.1.50 to any port 22

Este comando insere uma regra na posição 2 da lista de regras, bloqueando o IP especificado de acessar a porta SSH.

Removendo Regras

Para remover uma regra, você pode usar seu número ou a expressão exata. Usar o número é mais seguro para evitar erros de digitação:

sudo ufw status numbered
sudo ufw delete 2

Isso exibirá a lista numerada e removerá a regra na posição 2.

Resetando o Firewall

Se você bagunçou as configurações e precisa recomeçar do zero, pode resetar o UFW. Cuidado: isso removerá todas as regras.

sudo ufw reset

O sistema pedirá confirmação. Após o reset, reative o firewall e reconfigure as regras essenciais (SSH e WWW) novamente.

Testando a Configuração de Segurança

Depois de aplicar todas as regras, é fundamental testar se a configuração funciona como esperado sem perder o acesso ao servidor.

  1. Verifique a sintaxe das regras:
sudo ufw status verbose

Confira se as portas SSH (22 ou outra), HTTP (80) e HTTPS (443) estão listadas como ALLOW IN. Todas as outras portas devem aparecer como DENY IN.

  1. Teste a conectividade SSH:

Mantenha sua sessão atual aberta. Abra um novo terminal em outro computador ou janela e tente conectar novamente. Se a conexão for bem-sucedida, as regras de entrada estão funcionando.

  1. Teste o acesso web:

Abra um navegador e acesse o IP ou domínio da sua VPS. Se você tiver um servidor web instalado (Apache, Nginx), a página deve carregar. Se não houver servidor web, você pode receber uma mensagem de "Connection refused" ou "Unable to connect", o que é esperado se as portas estiverem bloqueadas corretamente e nenhum serviço estiver escutando.

  1. Teste um bloco:

Tente acessar uma porta que você não liberou, como a 3306 (MySQL) ou 8080. A conexão deve falhar ou ficar pendurada até o timeout, indicando que o firewall está bloqueando o tráfego de entrada corretamente.

Dicas Avançadas para Rocky Linux e Outras Distro

Embora o foco deste tutorial seja o debian firewall e Ubuntu, é importante notar que distribuições baseadas em RHEL (Red Hat Enterprise Linux), como Rocky Linux e AlmaLinux, não usam UFW por padrão. Elas utilizam o firewalld ou iptables-services.

No entanto, é possível instalar o UFW em Rocky Linux para manter a consistência de configuração entre ambientes heterogêneos:

sudo dnf install ufw
sudo systemctl enable ufw
sudo systemctl start ufw

As regras são sintaticamente idênticas, mas o gerenciamento do serviço e a persistência após reinicialização podem variar ligeiramente. Sempre consulte a documentação específica da distribuição ao migrar entre ecossistemas Debian/Red Hat.

Conclusão

Configurar o UFW é uma etapa indispensável no onboarding de qualquer nova VPS Linux. Ao seguir os passos deste guia — verificar status, permitir SSH, liberar serviços web e definir políticas de negação padrão — você estabelece uma base sólida para segurança vps.

Lembre-se: a segurança é um processo contínuo. Revise suas regras periodicamente, remova permissões desnecessárias e mantenha seu sistema atualizado. Um firewall bem configurado reduz drasticamente a superfície de ataque do seu servidor, permitindo que você foque no desenvolvimento e na operação dos seus serviços com maior tranquilidade.

Agora que seu firewall Ubuntu ou Debian está ativo e seguro, você está pronto para instalar stacks LAMP/LEMP, configurar bancos de dados seguros e implantar suas aplicações em produção.

Compartilhar: Link copiado!
Esse tutorial foi útil?

Comentários (0)

Seja o primeiro a comentar.

Deixe seu comentário

Seu comentário será analisado antes de ser publicado.

0/2000