Como configurar o firewall UFW no Ubuntu e Debian
Um firewall funcionando corretamente é a parte mais importante da segurança completa do sistema Linux. Por padrão, a distribuição Debian e Ubuntu vem com uma ferramenta de configuração de firewall chamada UFW (Firewall Descomplicado), é uma ferramenta de linha de comando mais popular e fácil de usar para configurar e gerenciando um firewall em distribuições Ubuntu e Debian.
Neste artigo, explicaremos como instalar e configurar um firewall UFW em distribuições Ubuntu e Debian.
Pré-requisitos
Antes de começar com este artigo, certifique-se de estar logado em seu servidor Ubuntu ou Debian com o usuário sudo ou com a conta root. Se você não tiver um usuário sudo, poderá criar um usando as seguintes instruções como usuário root.
adduser username
usermod -aG sudo username
su - username
sudo whoami
Instale o Firewall UFW no Ubuntu e Debian
O UFW (Firewall Descomplicado) deve ser instalado por padrão no Ubuntu e Debian, caso contrário, instale-o usando o gerenciador de pacotes APT usando o seguinte comando.
sudo apt install ufw
Verifique o firewall UFW
Assim que a instalação for concluída, você pode verificar o status do UFW digitando.
sudo ufw status verbose
Na primeira instalação, o firewall UFW está desabilitado por padrão, a saída será semelhante à abaixo.
Status: inactive
Habilitar firewall UFW
Você pode ativar ou habilitar o firewall UFW usando o seguinte comando, que deve carregar o firewall e permitir que ele seja iniciado na inicialização.
sudo ufw enable
Para desabilitar o firewall UFW, use o seguinte comando, que descarrega o firewall e desabilita sua inicialização na inicialização.
sudo ufw disable
Políticas padrão do UFW
Por padrão, o firewall UFW nega todas as conexões de entrada e permite apenas todas as conexões de saída com o servidor. Isso significa que ninguém pode acessar o seu servidor, a menos que você abra especificamente a porta, enquanto todos os serviços ou aplicativos em execução no seu servidor podem acessar a rede externa.
As políticas de firewall UFW padrão são colocadas no arquivo /etc/default/ufw
e podem ser alteradas usando o seguinte comando.
sudo ufw default deny incoming
sudo ufw default allow outgoing
Perfis de aplicação UFW
Ao instalar um pacote de software usando o gerenciador de pacotes APT, ele incluirá um perfil de aplicativo no diretório /etc/ufw/applications.d
que define o serviço e mantém as configurações do UFW.
Você pode listar todos os perfis de aplicativos disponíveis em seu servidor usando o seguinte comando.
sudo ufw app list
Dependendo das instalações do pacote de software em seu sistema, a saída será semelhante a esta:
Available applications:
APACHE
APACHE Full
APACHE SECURE
CUPS
OpenSSH
Postfix
Postfix SMTPS
Postfix Submission
Se quiser obter mais informações sobre um determinado perfil e regras definidas, você pode usar o seguinte comando.
sudo ufw app info 'Apache'
Profile: Apache
Title: Web Server
Description: Apache V2 is the next generation f the omnipresent Apache web server.
Ports:
80/tcp
Habilite IPv6 com UFW
Se o seu servidor estiver configurado com IPv6, certifique-se de que seu UFW esteja configurado com suporte para IPv6 e IPv4. Para verificar, abra o arquivo de configuração UFW usando seu editor favorito.
sudo vi /etc/default/ufw
Em seguida, certifique-se de que “IPV6” esteja definido como "yes"
no arquivo de configuração, conforme mostrado.
IPV6=yes
Salve e saia. Em seguida, reinicie seu firewall com os seguintes comandos:
sudo ufw disable
sudo ufw enable
Permitir conexões SSH no UFW
Se você já habilitou o firewall UFW, ele bloqueará todas as conexões de entrada e se você estiver conectado ao seu servidor via SSH de um local remoto, você não poderá mais conectá-lo novamente.
Vamos habilitar conexões SSH com nosso servidor para impedir que isso aconteça usando o seguinte comando:
sudo ufw allow ssh
Se você estiver usando uma porta SSH personalizada (por exemplo, porta 2222), será necessário abrir essa porta no firewall UFW usando o seguinte comando.
sudo ufw allow 2222/tcp
Para bloquear todas as conexões SSH digite o seguinte comando.
sudo ufw deny ssh/tcp
sudo ufw deny 2222/tcp [If using custom SSH port]
Habilite portas específicas no UFW
Você também pode abrir uma porta específica no firewall para permitir conexões através dela a um determinado serviço. Por exemplo, se você deseja configurar um servidor web que escuta nas portas 80 (HTTP) e 443 (HTTPS >) por padrão.
Abaixo estão alguns exemplos de como permitir conexões de entrada para serviços Apache.
Abra a porta 80 HTTP no UFW
sudo ufw allow http [By service name]
sudo ufw allow 80/tcp [By port number]
sudo ufw allow 'Apache' [By application profile]
Abra a porta 443 HTTPS no UFW
sudo ufw allow https
sudo ufw allow 443/tcp
sudo ufw allow 'Apache Secure'
Permitir intervalos de portas no UFW
Supondo que você tenha alguns aplicativos que deseja executar em um intervalo de portas (5000-5003), você pode adicionar todas essas portas usando os comandos a seguir.
sudo ufw allow 5000:5003/tcp
sudo ufw allow 5000:5003/udp
Permitir endereços IP específicos
Se você deseja permitir conexões em todas as portas a partir do endereço IP específico 192.168.56.1, será necessário especificar antes do endereço IP.
sudo ufw allow from 192.168.56.1
Permitir endereços IP específicos em portas específicas
Para permitir a conexão em uma porta específica (por exemplo, porta 22) da sua máquina doméstica com endereço IP 192.168.56.1, você precisa adicionar qualquer porta< e o número da porta após o endereço IP, conforme mostrado.
sudo ufw allow from 192.168.56.1 to any port 22
Permitir sub-redes de rede para portas específicas
Para permitir conexões para endereços IP específicos variando de 192.168.1.1 a 192.168.1.254 até a porta 22 (SSH) , execute o seguinte comando.
sudo ufw allow from 192.168.1.0/24 to any port 22
Permitir interface de rede específica
Para permitir conexões com uma interface de rede específica eth2 para uma porta específica 22 (SSH), execute o seguinte comando.
sudo ufw allow in on eth2 to any port 22
Negar conexões no UFW
Por padrão, todas as conexões de entrada são bloqueadas, a menos que você tenha aberto especificamente a conexão no UFW. Por exemplo, você abriu as portas 80 e 443 e seu servidor web está sob ataque da rede desconhecida 11.12.13.0/24.
Para bloquear todas as conexões deste intervalo de rede 11.12.13.0/24 específico, você pode usar o seguinte comando.
sudo ufw deny from 11.12.13.0/24
Se você deseja bloquear conexões apenas nas portas 80 e 443, você pode usar os seguintes comandos.
sudo ufw deny from 11.12.13.0/24 to any port 80
sudo ufw deny from 11.12.13.0/24 to any port 443
Excluir regras do UFW
Existem duas maneiras de excluir regras UFW, por número da regra e por regra real.
Para excluir regras UFW usando o número da regra, primeiro você precisa listar as regras por números usando o seguinte comando.
sudo ufw status numbered
Saída de amostra
Status: active
To Action From
-- ------ ----
[ 1] 22/tcp ALLOW IN Anywhere
[ 2] 80/tcp ALLOW IN Anywhere
Para excluir a regra número 1, use o seguinte comando.
sudo ufw delete 1
O segundo método é excluir uma regra usando a regra atual, por exemplo, para excluir uma regra, especifique o número da porta com o protocolo conforme mostrado.
sudo ufw delete allow 22/tcp
Regras do UFW para simulação
Você pode executar qualquer comando ufw sem realmente fazer nenhuma alteração no firewall do sistema usando o sinalizador --dry-run
, isso simplesmente mostra as alterações que deveriam acontecer.
sudo ufw --dry-run enable
Redefinir firewall UFW
Por um motivo ou outro, se você deseja excluir/redefinir todas as regras de firewall, digite os seguintes comandos, isso reverterá todas as suas alterações e começará do zero.
sudo ufw reset
sudo ufw status
Funcionalidade Avançada UFW
O firewall UFW pode fazer qualquer coisa que o iptables faz. Isso pode ser feito com diferentes conjuntos de arquivos de regras, que nada mais são do que simples arquivos de texto iptables-restore.
O ajuste do firewall UFW ou a adição de comandos iptables adicionais não são permitidos através do comando ufw, é apenas uma questão de alterar os seguintes arquivos de texto
- /etc/default/ufw: O arquivo de configuração principal com regras predefinidas.
- /etc/ufw/before[6].rules: Neste arquivo as regras são calculadas antes de serem adicionadas através do comando ufw.
- /etc/ufw/after[6].rules: Neste arquivo as regras são calculadas após a adição por meio do comando ufw.
- /etc/ufw/sysctl.conf: Este arquivo é usado para ajustar a rede do kernel.
- /etc/ufw/ufw.conf: Este arquivo habilita o ufw na inicialização.
É isso! UFW é um excelente front-end para iptables com uma interface amigável para definir regras complexas com um único comando ufw.
Se você tiver alguma dúvida ou opinião para compartilhar sobre este artigo do ufw, use o formulário de comentários abaixo para entrar em contato conosco.