UFW Firewall, Sintaxes e Configuração

O UFW (Uncomplicated Firewall) é o programa de Firewall padrão do Ubuntu a partir da versão 8.04LTS. Mas é possível instalar e executar em outra distribuição GNU/Linux como o Debian.

Sua facilidade de configuração via Terminal e Interface Gráfica ajudam e muito durante o trabalho. Através do UFW você irá configurar o Iptables, independente de usar IPv4 ou IPv6.

Por padrão, ele vem desabilitado na instalação e sem uma configuração básica padrão. Então é necessário criar regras, verificar o que foi feito para então habilitar e ver em execução.

Mesmo sendo um Firewall simples, é importante ter pelo menos um nível básico de proteção em uma máquina VPS ou qualquer outra. Para otimizar mais ainda, fica a recomendação de um Hardening no SSH, aqui no blog temos um tutorial dedicado a proteção do SSH.

Tutorial: Melhorando a Segurança do SSH

Para o UFW, irei utilizar como base o Sistema Operacional Debian 11.

Instalando o UFW

0 – Altere o privilégio para administrador e atualize o repositório.

$ su -
# apt update

1 – Instale o UFW

# apt install ufw -y

2 – Veja o status

# ufw status verbose
Status: inactive

Explicando as Sintaxes e aplicando

É importante lembrar que a ordem das regras inseridas influenciam diretamente na experiência e no trabalho do Firewall. Portanto, atente-se a esse detalhe para não ter problemas após habilitar.

Vamos realizar a configuração que nega tudo que chega até o servidor, permite tudo que sair e filtra as conexões que chegam para autorizar apenas o que foi definido.

Negue tudo que chegar até o servidor.

# ufw default deny incoming

Permita tudo que sair do servidor.

# ufw default allow outgoing

Autorize apenas as conexões necessárias para o bom funcionamento de uma aplicação.

Se você tiver um servidor web como o Apache em execução, permita a conexão pela porta 80 (http) e 443 (https). A regra pode ser inserida usando a Porta que o programa usa ou o próprio nome do serviço/protocolo.

Sintaxe: ufw allow PORTA ou ufw allow HTTP ou HTTPS

# ufw allow http
# ufw allow 80

Excluindo regras

Caso tenha inserido alguma regra de maneira errada ou não precise mais usar, é bem fácil de excluir.

Sintaxe: ufw delete allow http ou ufw delete allow 80

Também é possível permitir ou negar o acesso a uma porta especificando o protocolo ou não.

0 – Especificando Porta e Protocolo na autorização ou negação.

Sintaxe: ufw allow 22/tcp ou ufw deny 22/tcp

1 – Para permitir ou negar a conexão na porta 22 independente de ser TCP ou UDP, basta por a porta.

Sintaxe: ufw allow 22 ou ufw deny 22

Autorizando conexão de IP específico

Dependendo da situação é preciso especificar o IP que terá acesso ao servidor ou determinado serviço. Lembre-se que o IP autorizado precisa ser fixo, caso ele mude você perde o acesso.

0 – Permitindo acesso de um IP específico.

Sintaxe: ufw allow from 192.168.0.1

1 – Permitindo acesso de uma sub-rede específica.

Sintaxe: 192.168.0.1/24

2 – Negando o acesso de um IP específico.

Sintaxe: ufw deny from 192.168.0.1

3 – Negando o acesso de uma sub-rede específica.

Sintaxe: ufw deny from 192.168.0.1/24

4 – Permitindo o acesso de um IP específico para uma porta.

Sintaxe: ufw allow from 192.168.0.1 to any port 22

5 – Negando o acesso de um IP específico para uma porta.

Sintaxe: ufw deny from 192.168.0.1 to any port 22

6 – Visualizando as regras numeradas.

Sintaxe: ufw status numbered

7 – Outra forma de excluir uma regra criada, é usando o número de identificação visualizado com o comando acima.

Sintaxe: ufw delete [ID]

Depois de criar as regras, você precisa revisar e habilitar o UFW. Atente-se para não perder o acesso definitivamente com alguma regra errada.

Habilite o UFW

# ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

Para desabilitar o UFW digite o comando abaixo.

# ufw disable
Firewall stopped and disabled on system startup

Se quiser recarregar o serviço em execução.

# ufw reload
Firewall reloaded

Para resetar o UFW no padrão use o comando abaixo.

# ufw reset
Resetting all rules to installed defaults. This may disrupt existing ssh
connections. Proceed with operation (y|n)? y
Backing up 'user.rules' to '/etc/ufw/user.rules.20220624_152702'
Backing up 'before.rules' to '/etc/ufw/before.rules.20220624_152702'
Backing up 'after.rules' to '/etc/ufw/after.rules.20220624_152702'
Backing up 'user6.rules' to '/etc/ufw/user6.rules.20220624_152702'
Backing up 'before6.rules' to '/etc/ufw/before6.rules.20220624_152702'
Backing up 'after6.rules' to '/etc/ufw/after6.rules.20220624_152702'

Apesar de ser bem simples o UFW faz o seu trabalho muito bem, para configurações mais complexas e um nível de segurança maior em ambientes críticos, é recomendado utilizar soluções de segurança mais robustas.

Para saber mais sobre o UFW Firewall, acesse a Wiki Ubuntu: http://wiki.ubuntu-br.org/UFW#UFW_-_Uncomplicated_Firewall

Esperamos ter ajudado e esclarecido a como Instalar e Configurar o UFW Firewall. E não esqueça de nos seguir nas Redes Sociais. Até a próxima!

Você pode gostar...