Voltar ao blog

O Básico do UFW: Aprendendo os Comandos Essenciais de Firewall

O Básico do UFW: Aprendendo os Comandos Essenciais de Firewall

Introdução

UFW significa uncomplicated firewall. É uma plataforma de frontend que permite gerenciar facilmente as funções e comandos do seu firewall. Você obtém o UFW como uma opção padrão com o seu Ubuntu servidor. Maximizar o potencial dos comandos e funções do firewall pode ser difícil se você já não estiver familiarizado com a ferramenta.

Nosso objetivo é fornecer um guia abrangente que você possa usar como iniciante. Complementaremos as explicações com exemplos de várias ações que você pode realizar com o UFW. Muitas das regras serão muito úteis para serviços e atividades do dia a dia. Vamos começar!

Pré-requisitos

Antes de continuar a ler, certifique-se de que o seu UFW está configurado para o conjunto de regras padrão. Isso significa que o firewall permite o tráfego de saída, mas bloqueia o tráfego de entrada. O benefício dessa redefinição padrão é que você pode selecionar qual tráfego permitir através do firewall. Se você não tiver certeza do status do conjunto de regras atual no seu UFW, use este comando para verificar: sudo ufw status. Você também pode usar este comando:

Além disso, você está livre para pular para qualquer seção que seja mais relevante para os seus requisitos. Você não precisa necessariamente usar cada comando fornecido neste guia. Você pode misturar e combinar com base em suas necessidades pessoais.

Como bloquear um endereço IP

Vamos começar com uma das funções mais básicas de qualquer firewall: bloquear endereços IP. Existe um comando muito simples que você pode usar para bloquear quaisquer conexões de rede vindas de um determinado endereço IP. Digamos, por exemplo, que o endereço IP específico no nosso caso seja 15.15.15.51. Você pode substituir esse valor pelo endereço IP que deseja bloquear através do seu UFW. Este é o comando que você usaria para essa finalidade:

Aqui, from 15.15.15.51 indica apenas o endereço IP de origem, que é ‘15.15.15.51’. Se houver uma sub-rede que você deseja especificar, você pode adicioná-la da seguinte forma: 15.15.15.0/24. O comando funcionará igualmente bem. Você pode especificar este endereço IP de origem em qualquer regra de firewall que desejar, como a regra allow.

  • Bloqueando conexões de interface de rede

Às vezes, o requisito pode ser bloquear conexões de rede originadas de um endereço IP específico para uma interface de rede específica. Se for esse o caso, teremos que especificar a interface de rede junto com o endereço IP de origem. Para este exemplo, considere que o endereço IP de origem seja 15.15.15.51 e a interface de rede seja eth0:

Semelhante ao endereço IP de origem, você também pode especificar a interface de rede em qualquer regra de firewall. O objetivo dessas especificações é limitar a regra de firewall fornecida a apenas uma rede ou conexão específica.

Como permitir conexões SSH

Esta seção é relevante para você se estiver usando um servidor em nuvem. Para poder estabelecer uma conexão com o seu servidor em nuvem, você precisa que o firewall permita conexões SSH de entrada. Essas conexões SSH ocorrem através da porta 22. Você pode seguir este tutorial para aprender como usar o SSH para se conectar a um servidor remoto no Ubuntu.

Ao estabelecer conexões SSH, você pode gerenciar com sucesso seu servidor em nuvem usando sua unidade local. Aqui, abordaremos as várias regras relevantes para a configuração do firewall associada ao SSH:

  • Permitindo SSH

Use o seguinte comando para permitir todas as conexões SSH de entrada:

Por outro lado, você também pode executar o comando especificando o número da porta do serviço SSH:

  • Permitindo SSH de entrada de um endereço IP específico

Caso você queira apenas permitir conexões SSH de entrada de um endereço IP ou sub-rede específica, você tem a capacidade de especificar a origem. Por exemplo, digamos que a sub-rede que você deseja permitir seja 15.15.15.0/24. Aqui está o comando que você precisará executar:

  • Permitindo Rsync de Entrada de um Endereço IP Específico

Executando na porta 873, o Rsync permite realizar a transferência de arquivos de um sistema de computador para outro. Se você deseja apenas permitir a conexão Rsync vinda de um endereço IP ou sub-rede específica (neste exemplo, 15.15.15.0/24), você pode fazer isso usando este comando:

Isso significa que toda a sub-rede 15.15.15.0/24 terá permissão para fazer Rsync para o seu servidor. Aqui está também um abrangente tutorial sobre como utilizar o Rsync para sincronizar diretórios locais e remotos no seu servidor.

Como Configurar Solicitações de Servidor Web

A seguir, passaremos para as regras relacionadas ao serviço de Servidor Web. Servidores web como o Apache e o Nginx geralmente aceitam solicitações de conexões HTTP e HTTPS de duas portas: a porta 80 e a porta 443. A porta 80 atende a solicitações HTTP. A porta 443 é responsável pelas solicitações HTTPS.

Como discutimos nos pré-requisitos, você está usando o conjunto de regras padrão do UFW. Com base nesse conjunto de regras, o firewall bloqueia ou nega todo o tráfego de entrada. Portanto, você terá que configurar novas regras que permitam ao servidor aceitar e ler essas solicitações de entrada.

  • Permitindo Todo o HTTP

Se você deseja permitir todas as conexões e solicitações HTTP vindas da porta 80, use o comando:

Você também pode usar o número da porta (porta 80) para especificar o serviço HTTP no comando:

  • Permitindo Todo o HTTPS

Se você deseja permitir todas as conexões e solicitações HTTPS vindas da porta 443, execute este comando:

Semelhante ao comando anterior, você pode substituir o ‘https’ pelo número da porta do serviço HTTPS:

  • Permitindo Todo o HTTP e HTTPS

Caso você queira permitir tanto solicitações HTTP quanto HTTPS, você pode usar uma regra coletiva para ambas. Através deste comando único, você pode permitir o tráfego de entrada tanto da porta 80 quanto da porta 443:

O comando proto tcp é necessário quando você está especificando várias portas ao mesmo tempo.

Você também pode seguir estes guias detalhados sobre como proteger o Nginx e o Apache com Let’s Encrypt no Ubuntu.

Como Permitir o MySQL

MySQL tem conexões que entram pela porta 3306. Você terá que usar uma regra para permitir o tráfego de entrada se um cliente estiver usando seu banco de dados MySQL em um servidor remoto. Siga o nosso tutorial para aprender os conceitos básicos do MySQL e como configurar o MySQL em um servidor.

  • Permitindo o MySQL de um Endereço IP Específico

Como já vimos em regras anteriores, você deve especificar a origem para permitir as conexões MySQL de entrada. Sua origem pode ser um endereço IP específico ou uma sub-rede. Em nosso exemplo, usaremos toda a sub-rede 15.15.15.0/24 para executar o comando:

  • Permitindo o MySQL para uma Interface de Rede Específica

Você usará um comando diferente se também precisar especificar a interface de rede para a qual está permitindo as conexões MySQL. Vamos assumir que a interface de rede que você está usando é uma interface de rede privada chamada eth1. Você pode substituir esse valor pelo nome da sua própria interface de rede:

Como Permitir o PostgreSQL

As conexões PostgreSQL entram pela porta 5432. Semelhante às conexões MySQL, se um cliente estiver usando o banco de dados PostgreSQL em um servidor remoto, você precisará permitir o tráfego de entrada. Você pode fazer isso usando os comandos a seguir.

  • Permitindo o PostgreSQL de um Endereço IP Específico

Se você sabe que as conexões PostgreSQL estão vindo de uma sub-rede ou endereço IP específico, você deve especificar a origem. Aqui, usaremos o exemplo da sub-rede 15.15.15.0/24 mais uma vez:

Caso a sua política OUTPUT não esteja definida como ACCEPT, você terá que executar um segundo comando. Este comando permite o tráfego de saída de conexões PostgreSQL já estabelecidas.

  • Permitindo o PostgreSQL em uma Interface de Rede Específica

Semelhante à regra anterior, permitiremos as conexões PostgreSQL para uma interface de rede específica. No nosso caso, é a eth1:

Caso a sua política OUTPUT não esteja definida como ACCEPT, você terá que executar um segundo comando. Este comando permite o tráfego de saída de conexões PostgreSQL já estabelecidas. Você pode aprender como configurar o PostgreSQL no Ubuntu seguindo o nosso tutorial detalhado.

Como Configurar Servidores de E-mail

Você também pode estar usando servidores de e-mail como o Sendmail e Postfix em seu sistema. Esses servidores estão abertos para várias portas. As portas em que eles escutam dependem dos protocolos definidos para a entrega de e-mails. É por isso que primeiro você terá que determinar quais protocolos está executando em seu sistema de entrega de e-mails. Posteriormente, você permitirá os tipos de tráfego relevantes com base nessas informações.

  • Bloqueando o Envio de E-mails SMTP

Antes de passarmos para os comandos que permitem o tráfego de entrada para os seus servidores de e-mail, vejamos como você pode bloquear a saída de e-mails SMTP. Você pode usar este comando se não quiser que o seu servidor envie nenhum e-mail de saída. O e-mail SMTP usa a porta 25. Use este comando para bloquear este tráfego:

Como resultado da execução deste comando, o seu firewall irá descartar todo o tráfego de saída na porta 25. Se você quiser bloquear outra porta, basta substituir a porta '25' pelo número da porta apropriado.

  • Permitindo Entrada SMTP

Agora que você sabe como bloquear o tráfego de saída, permitir o tráfego de entrada parecerá igualmente simples. Use este comando para permitir que o servidor receba conexões SMTP na porta 25:

  • Permitindo Entrada IMAP

Se você quiser permitir que o servidor estabeleça conexões IMAP na porta 143, use o seguinte comando:

  • Permitindo Entrada IMAPS

Use este comando para permitir que o servidor responda a conexões IMAPS na porta 993:

  • Permitindo Entrada POP3

Este comando permite que o seu servidor responda a todas as conexões POP3 através da porta 110:

  • Permitindo Entrada POP3S

Finalmente, você pode permitir que o seu servidor receba solicitações da porta 995 para conexões POP3S usando este comando:

Conclusão

Este guia ajudará você a se familiarizar com as funções básicas do UFW. Cobrimos os comandos essenciais com os quais você precisa estar familiarizado para poder configurar o seu firewall. Você pode escolher os comandos que melhor se adaptam aos seus requisitos específicos para criar uma solução de firewall personalizada. A natureza flexível do UFW permite essa personalização. Experimente para descobrir o que funciona melhor para você.

Boa Computação!

author

Akshay Nagpal

Autor · CloudSigma

Preslav Dobrev é um designer criativo na CloudSigma, focado na construção de uma identidade empresarial consistente por meio de canais de marketing tradicionais e inovadores. Ele é hábil em combinar a visão artística com o marketing estratégico para criar narrativas de marca impactantes.

Comentários

Nenhum comentário ainda. Seja o primeiro.