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:
|
1 |
sudo ufw status verbose |
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:
|
1 |
sudo ufw deny from 15.15.15.51 |
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:
|
1 |
sudo ufw deny in on eth0 from 15.15.15.51 |
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:
|
1 |
sudo ufw allow ssh |
Por outro lado, você também pode executar o comando especificando o número da porta do serviço SSH:
|
1 |
sudo ufw allow 22 |
- 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:
|
1 |
sudo ufw allow from 15.15.15.0/24 to any port 22 |
- 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:
|
1 |
sudo ufw allow from 15.15.15.0/24 to any port 873 |
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:
|
1 |
sudo ufw allow http |
Você também pode usar o número da porta (porta 80) para especificar o serviço HTTP no comando:
|
1 |
sudo ufw allow 80 |
- Permitindo Todo o HTTPS
Se você deseja permitir todas as conexões e solicitações HTTPS vindas da porta 443, execute este comando:
|
1 |
sudo ufw allow https |
Semelhante ao comando anterior, você pode substituir o ‘https’ pelo número da porta do serviço HTTPS:
|
1 |
sudo ufw allow 443 |
- 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:
|
1 |
sudo ufw allow proto tcp from any to any port 80,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:
|
1 |
sudo ufw allow from 15.15.15.0/24 to any port 3306 |
- 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:
|
1 |
sudo ufw allow in on eth1 to any port 3306 |
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:
|
1 |
sudo ufw allow from 15.15.15.0/24 to any port 5432 |
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:
|
1 |
sudo ufw allow in on eth1 to any port 5432 |
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:
|
1 |
sudo ufw deny out 25 |
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:
|
1 |
sudo ufw allow 25 |
- Permitindo Entrada IMAP
Se você quiser permitir que o servidor estabeleça conexões IMAP na porta 143, use o seguinte comando:
|
1 |
sudo ufw allow 143 |
- Permitindo Entrada IMAPS
Use este comando para permitir que o servidor responda a conexões IMAPS na porta 993:
|
1 |
sudo ufw allow 993 |
- Permitindo Entrada POP3
Este comando permite que o seu servidor responda a todas as conexões POP3 através da porta 110:
|
1 |
sudo ufw allow 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:
|
1 |
sudo ufw allow 995 |
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!
Comentários
Nenhum comentário ainda. Seja o primeiro.