Segurança é um assunto que deve ser levado a sério, principalmente nesta época em que crimes cibernéticos estão se tornando cada vez mais populares. Por isso, é altamente recomendável adotar medidas extras de segurança.
Uma das maneiras de proteger seus dados é configurando um firewall para supervisionar as conexões feitas com o servidor. Neste tutorial vamos ensinar como configurar um firewall nos sistemas baseados no Ubuntu 18.04 com o UFW.
Um firewall é um hardware ou software que controla o tráfego enviado e recebido de um servidor ou outra máquina. Em outras palavras, é um componente muito importante para a segurança de qualquer dispositivo que realiza conexões com a internet.
Mesmo o Linux tendo ótimas ferramentas de segurança pré-instaladas, quanto mais seguro, melhor.
O Ubuntu possui uma aplicação que facilita a instalação de firewall, o UFW (Uncomplicated Firewall). Esta ferramenta vem instalada por padrão na versão 18.04, mas é provável que esteja desabilitada. O UFW ainda possui uma interface gráfica chamada GUFW que pode ser instalada caso você tenha um ambiente desktop.
Mas por hora, neste artigo não iremos trabalhar com o gufw, visando o fato que seu servidor pode não estar instalado a interface gráfica
O UFW é uma solução de código aberto construída em Python e distribuída sob licença GNU (General Public License). Trata-se de uma versão “amigável” do poderoso iptables, isto é, mais acessível a iniciantes ou leigos em Segurança da Informação.
Com o que você irá se deparar ao adotar essa ferramenta? Primeiramente, terá à disposição várias opções de comandos cuja sintaxe é simples. As linhas de comando ainda são um grande obstáculo? Sem problemas: é possível instalar uma interface gráfica para o firewall.
Como mencionado antes, o UFW está instalado por padrão no Ubuntu 18.04, mas não está habilitado. Então meu sistema já está protegido. Não é bem assim! É necessário fazer certos ajustes para que isso aconteça.
VERIFICANDO O ESTADO DO FIREWALL
$ sudo ufw status
Estado: inativo
Está instalado, mas desativado
$ sudo ufw status
Estado: ativo
Está instalado e ativo
Se aparecer qualquer outra mensagem, é porque provavelmente não está instalado.
Reiterando, o UFW vem instalado por padrão no Ubuntu e no próprio Debian, porém, se por algum motivo o firewall não se encontra no sistema operacional, digite
INSTALANDO O FIREWALL - ufw
$ sudo apt install ufw -y
INSTALANDO O FIREWALL - INTERFACE GRÁFICA GUI
Como instalar a interface gráfica do UFW? Tudo o que você precisa fazer é instalar o repositório Universe e, em seguida, instalar o Gufw.
$ sudo add-apt-repository universe
$ sudo apt update -y
$ sudo apt install gufw -y
HABILITANDO O IPv6
Presumindo que o servidor esteja rodando os protocolos IPv4 e Ipv6, digamos que sincronizar a configuração do firewall não seja uma opção, mas uma necessidade. Fazer isso no UFW é muito fácil.
Primeiramente, abra o arquivo de configuração usando um editor, como no exemplo:
$ sudo nano /etc/default/ufw
Verifique a primeira opção (quinta linha) e deixe a opção marcada da seguinte maneira:
IPV6=yes
Pronto! Agora o firewall passará a suportar ambos os protocolos sem problema algum.
HABILITANDO / DESABILITANDO O FIREWALL
$ sudo ufw enable
Firewall está ativo e habilitado na inicialização do sistema
Pronto, firewall ativado
$ sudo ufw disable
Firewall parado e desativado na inicialização do sistema
Pronto, firewall desativado
VERIFICANDO O ESTADO DO FIREWALL DETALHADO
$ sudo ufw status numbered
Estado ativo
Irá mostrar todas as regras que possui, com a numeração do lado em forma de lista
É bem útil esse comando para quando quiser alterar ou excluir as regras
As regras que criamos ficam armazenadas no diretório /etc/ufw
Se dermos um comando para listar os arquivos de configuração do ufw veremos algo do tipo
$ ls /etc/ufw
after6.rules
after.init
after.rules
applications.d
before6.rules
before.init
before.rules
sysctl.conf
ufw.conf
user6.rules
user.rules
Os arquivos .rules, são arquivos que comportam as regras de Entrada e Saída do firewall
before.rules
after.rules
Para melhor compreensão, Entrada é o trafego que vem do exterior para seu computador.
Saída é o trafego originado dentro do seu computador com destino a rede externa.
CRIANDO REGRAS
Vamos permitir a entrada de serviços, por exemplo o SSH.
Tenho no computador um servidor SSH, e preciso permitir o acesso a ele pelo Firewall.
Ssh é um programa que permite o gerenciamento remoto do seu linux.
Para permitir o acesso a algum serviço, preciso de informações necessárias como:
Nome oficial
Protocolo
Número de porta que o serviço utiliza
Caso contrário, precisamos pesquisar na internet, ou podemos pesquisar no próprio Linux no arquivo /etc/service
$ less /etc/services
ssh 22/tcp # SSH Remote Login Protocol
ssh 22/ucp
Observamos que o SSH trabalha na porta 22 com os protocolos tcp e o udp
Também observamos que o nome oficial é ssh
VAMOS CRIAR UMA REGRA DE ENTRADA (IN) QUE LIBERA A PORTA 22
$ sudo ufw allow 22
Regra adicionada Regra adicionada (v6)
Permita a ENTRADA com destino a porta 22
Irá permitir o tráfego de entrada na porta 22, tanto para o tcp quando udp
Se eu quiser especificar o protocolo apenas para um protocolo
$ sudo ufw allow 22/tcp
Regra adicionada Regra adicionada (v6)
Irá permitir o tráfego de entrada na porta 22 e para o protocolo tcp
VERIFICAR AS REGRAS ADICIONADA
$ sudo ufw status
Estado: ativo Para Ação De -------- -- 22 ALLOW Anywhere 22(v6)
VERIFICAR A REGRA ADICIONADA COM numbered
$ sudo ufw status numbered
Estado: ativo Para Ação De ---- ---- -- [1] 22 ALLOW IN Anywhere [2] 22(v6) ALLOW IN Anywhere(v6)
O IN na frente da ação quer dizer que foi incluído uma regra de ENTRADA permitindo a entrada até a porta 22 protocolo tcp. O (v6) é a regra de IPv6
Se fosse de saída seria OUT
EXCLUIR REGRAS DO FIREWALL
$ sudo ufw delete 1 (ou pelo nome 22)
Apagando: allow 22 Proceder com operação (s|n)? s Regra apagada
VAMOS ENTÃO CRIAR UMA REGRA QUE BLOQUEIA O SSH
$ sudo ufw deny ssh
Regra adicionada Regra adicionada (v6)
Negada a ENTRADA com destino a porta 22
VERIFICAR A REGRA ADICIONADA COM numbered
$ sudo ufw status numbered
Estado: ativo Para Ação De ---- ---- -- [1] 22/tcp DENY IN Anywhere [2] 22/tcp(v6) DENY IN Anywhere(v6)
DICA
Por padrão, ao adicionar os comandos a cima, eles são incluídos nas regras de ENTRADA (IN).
Para incluir uma regra de SAÍDA, é necessário que inclua a palavra OUT
INCLUINDO REGRA DE SAÍDA
Como exemplo iremos bloquear o trafego que sai da minha máquina com destino a um servidor Web que usa a porta 80
$ sudo ufw deny out 80
Regra adicionada Regra adicionada (v6)
negada a SAÍDA com destino a porta 80
Para testar por exemplo, teste o site http://www.yahoo.com/
OUTROS EXEMPLOS
O modo padrão do UFW está ajustado para fazer diversas restrições. Por outro lado, o usuário tem plena autonomia para liberar determinadas portas e, assim, permitir que processos, serviços e aplicações rodem adequadamente. No exemplo adiante, habilitei as portas 80 (HTTP), 443 (HTTPS) e 22 (servidor SSH).
$ sudo ufw allow 80/tcp
ou
$ sudo ufw allow http
$ sudo ufw allow 443/tcp
ou
$ sudo ufw allow https
$ sudo ufw allow 22/tcp
ou
$ sudo ufw allow ssh
Observação: há situações em que precisamos habilitar uma quantidade maior de portas cujos números formam uma sequência. Por exemplo, liberar as portas 670, 671, 672 e 673. Para facilitar a tarefa, digite:
$ sudo ufw allow 670:673/tcp
PERMITIR ENDEREÇOS DE IP ESPECÍFICO
É muito comum que em determinadas situações o administrador tenha de liberar conexões a todas as portas de um IP em especial. Supondo que tal endereço seja 192.168.20.8, deve-se proceder assim:
$ sudo ufw allow from 192.168.20.8
Mas e se a intenção é de habilitar uma certa porta para o mesmo IP? Simplesmente, especifique-a:
$ sudo ufw allow from 192.168.20.8 to any port 4002
Muito fácil, não é mesmo? Como você provavelmente notou ao ler essas dicas, o UFW é, de fato, um firewall desenvolvido para facilitar a vida do usuário. A sintaxe tão simples quanto intuitiva e, de quebra, o usuário ainda consegue instalar uma interface gráfica.
Comments