Habilitando o firewall UFW

 
Introdução:

Uncomplicated Firewall – UFW é um host-based firewall, um programa que, rodando em um servidor, pode restringir o tráfego de dados e a atividade da rede naquele servidor específico, prevenindo que seja infectado, e evitando que, se infectado, contamine outros servidores. Ele já vem instalado no Ubuntu, mas desativado por padrão.

Criando as regras:

Para iniciar, é bom criar regras gerais de restrição de tráfego de entrada e saída.


Por padrão, ao se ativar o UFW, as regras de restrição de acesso (entrada) são ativadas, mas é melhor pecar pelo excesso de zelo. 


O problema de se aplicar regras mais restritivas que o padrão é que elas realmente bloqueiam o servidor, até mesmo do administrador. Isso gera duas consequências: cada porta de acesso ou serviço que se deseje liberar terá que ser aberta individualmente, em comando próprio; e, como o servidor está sendo configurado remotamente, por SSH, não se pode esquecer de liberar esta porta correspondente antes de se ativar o UFW.


Aos comandos:


sudo ufw default deny incoming

e

sudo ufw default deny outgoing


Com o acesso ao servidor configurado para ser inteiramente bloqueado, é preciso adicionar as regras específicas de entrada e saída dos serviços desejados.


Comecemos pelas duas principais portas de acesso: TCP 22 (SSH) e 80 (HTTP). Para liberá-las, execute os seguintes comandos:


sudo ufw allow 22/tcp   ou  sudo ufw allow ssh


sudo ufw allow 80/tcp   ou   sudo ufw allow http



Em seguida, para permitir que o relógio continue a sincronizar com o servidor NTP, rode o comando:


sudo ufw allow 123/tcp  ou  sudo ufw allow ntp


Se você desejar utilizar o serviço de FTP em seu servidor, abra a porta correspondente com os comandos:


sudo ufw allow 21/tcp   ou    sudo ufw allow ftp


Se você desejar utilizar o serviço GIT e SVN:


sudo ufw allow git  ou  sudo ufw allow svn


Por fim, como essa série de tutoriais utiliza o Bind9 como servidor de DNS, é preciso liberar o tráfego de DNS e, especificamente, o Bind9.


sudo ufw allow bind9 && sudo ufw allow 53


Nota: se o seu servidor estiver em uma LAN, é possível que o UFW impeça que as demais máquinas a ela conectadas acessem a Internet. Para liberá-las, é preciso que o firewall confie na rede privada. Adicione-as com os comandos abaixo, substituindo “gateway” pelo número do gateway de sua rede:


sudo ufw allow from ‘gateway’/24

e

sudo ufw allow to ‘gateway’/24


Obs.: para descobrir o gateway de sua rede local, rode o seguinte comando no Terminal:

 

 

route -n


Para facilitar, todos os comandos sugeridos foram reunidos em sequência (inclusive a regra do Gateway):


sudo ufw default deny incoming && sudo ufw default deny outgoing && sudo ufw allow from 192.168.100.1/24 && sudo ufw allow to 192.168.100.1/24 && sudo ufw default deny outgoing && sudo ufw limit ssh && sudo ufw allow ntp && sudo ufw allow out http && sudo ufw allow in http && sudo ufw allow out https && sudo ufw allow in https && sudo ufw allow out 53 && sudo ufw logging on


Nota: estes comandos não abrem as portas para servidor de e-mail (POP ou IMAP) ou FTP, entre outras coisas. Se precisar destes serviços em seu servidor, pesquise como habilitá-los na Internet.


Para permitir que um endereço de IP específico acesse um serviço no servidor, como o SSH, por exemplo, rode o comando:


sudo ufw allow from XXX.XXX.XXX.XXX to any port 22 proto tcp


Nota: altere os X pelo número de IP da máquina que você utiliza para acessar seu Raspberry PI via SSH.


Ou para abrir totalmente o acesso a um determinado computador, como o seu computador pessoal, por exemplo, use o comando abaixo:


sudo ufw allow from XXX.XXX.XXX.XXX


Nota: altere os X pelo número de IP de seu computador pessoal.


Após as configurações acima, já é possível ativar o UFW com o comando:


sudo ufw enable


Outros comandos úteis:

Para verificar o status do UFW:


sudo ufw status verbose


Para deletar uma regra no UFW (exemplo):


sudo ufw delete allow http


Para habilitar logs do UFW:


sudo ufw logging on


Para desabilitar o UFW:


sudo ufw disable


Para limpar as configurações do UFW:


sudo ufw reset


Para ver quais as aplicações instaladas têm um perfil:


sudo ufw app list



Nota: para explicações mais completas sobre o funcionamento do UFW e sua configuração, acesse a página Firewall do Guia do Ubuntu Server, ou a página UFW, mantida pela comunidade do Ubuntu.