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!