O básico e o compartilhamento de Internet com o firewall UFW

O básico e o compartilhamento de Internet com o firewall UFW

Há para o Linux diversas opções de interfaces gráficas de firewall, e um dos mais notáveis até hoje é o Firestarter. Entretanto, este já conta com o peso da idade e a falta de atualizações, permitindo com que ele deixasse de ser 100% compatível com compartilhamento de rede via Network Manager, por exemplo. É só você desligar o notebook que está ligado via cabo cross-over no seu PC, que o Firestarter acusa uma interface de rede caída e se recusa a ficar ativado.

Se você acha o Firestarter uma coisa muito ‘newbie’, e não quer estragar suas unhas no cabeludo Iptables, não se preocupe: a equipe do Ubuntu se encarregou de desenvolver um firewall bem simples para você. Ele é o UFW, sigla de Uncomplicated Firewall, ou ‘firewall descomplicado’. Ele funciona via linha de comando, e possui uma série de opções disponíveis e e flexíveis, além de uma sintaxe muito simplificada no terminal que o Iptables.

Há ainda para os leigos a opção de usar o GUFW, que nada mais é do que uma interface gráfica para o UFW, os dois interagindo com as mesmas configurações. Só são dois modos diferentes de se ver a mesma coisa:

Nota: esta dica parte do pressuposto que você já tenha configurado uma rede interna de compartilhamento da Internet entre dois ou mais micros.

No Debian, você pode instalar através do Synaptic, procurando pelo pacote “gufw“, ou usando o “apt-get“:

$ sudo apt-get update
$ sudo apt-get install gufw

Vale lembrar que o pacote gufw já ‘puxa’ como dependência o ufw. O UFW na verdade é o aplicativo de firewall padrão do Ubuntu desde a versão 8.04 LTS; ele é habilitado por padrão, mas todas as portas ficam liberadas até que se mexa do contrário.

Nota: por ser mais moderno, o UFW/GUFW trabalha sem problemas com o Network Manager

A sintaxe básica do UFW é:

$ sudo ufw <command> <port>/<optional: protocol>

Para desativar e ativar, respectivamente, o UFW, os comandos são:

$ sudo ufw disable
$ sudo ufw enable

Para saber o status, bem como as regras definidas:

$ sudo ufw status

Estado: ativo

Para Ação De
---- ---- --
Anywhere ALLOW 192.168.1.0/24
Anywhere ALLOW 192.168.1.100

Outros comandos úteis incluem:

$ sudo ufw default allow – Permitir todas as conexões por padrão
$ sudo ufw default deny – Drop (bloqueia) todas as conexões por default
$ sudo ufw status – Regras e estado atual do Firewall
$ sudo ufw allow port – Permitir tráfego em determinada porta (necessário escolher qual)
$ sudo ufw deny port – Bloquear porta
$ sudo ufw deny from ip – Bloquear endereço ip
$ sudo ufw logging on – Ativando gravação de logs do ufw
$ sudo ufw logging off – Desativando gravação de logs do ufw

Nota: com o UFW mantido na posição “enable“, ou “Habilitado” na interface GUFW, ele já inicializa junto com o sistema e ficará sempre rodando em segundo plano, mesmo fechando o terminal ou a interface.

Já a interface gráfica simplificada, o GUFW, fica disponível em: ‘Sistema > Administração > Configuração de Firewall’. Uma vez ativo, ele fica trabalhando em segundo plano mesmo se a interface for fechada.

Também é possível, através do GUFW, adicionar e remover regras (através dos botões na interface), de maneira pré-configurada, simples ou avançada, a seu gosto:

Ainda é possível, ao contrário que muitos pensavam, ativar o log e ainda exibir um relatório sobre as portas em uso no sistema:

Uma nota importante é que, apesar do GUFW ser simples, isso não significa que o utilitário via linha de comando o UFW, também seja. Na verdade, apesar de descomplicado, trata-se de um recurso muito poderoso, que usa ninguém menos que o Iptables como motor.

Compartilhando a conexão com o UFW

Tenho uma só placa de rede, e precisava compartilhar a Internet usando o UFW, já que o Firestarter parava cada vez que o notebook ligado à placa de rede do meu PC se desligava. E não, eu não queria quebrar a cabeça com o Iptables.

Apesar de sofrer um pouco tentando sozinho, encontrei algum escasso material sobre isso na Internet. Então vamos colocar as mãos à massa para compartilhar a conexão entre os PCs da sua rede, ou seja, fazer o famoso NAT.

Com seu editor favorito, no meu caso o Gedit, abra o arquivo “/etc/default/ufw“, como em:

$ sudo gedit /etc/default/ufw

Localize e altere o parâmetro “DEFAULT_FORWARD_POLICY” para:

DEFAULT_FORWARD_POLICY="ACCEPT"

Salve o arquivo. Agora feche-o e abra o “/etc/ufw/sysctl.conf“:

$ sudo gedit /etc/ufw/sysctl.conf

E, para habilitar o forwarding, descomente o parâmetro “net.ipv4.ip_forward” (tirando o # de sua frente), e altere seu valor para 1, deixando-o como abaixo:

net.ipv4.ip_forward=1

Salve o arquivo. O penúltimo passo é adicionar o NAT à configuração do UFW. Para isso, abra o arquivo “/etc/ufw/before.rules“:

$ sudo gedit /etc/ufw/before.rules

Adicione um conteúdo no início do arquivo, logo após o cabeçalho. Tal cabeçalho costuma ser assim:

#
# rules.before
#
# Rules that should be run before the ufw command line added rules. Custom
# rules should be added to one of these chains:
# ufw-before-input
# ufw-before-output
# ufw-before-forward
#

Não modifique outras linhas, apenas adicione estas abaixo logo após o cabeçalho, senão o firewall não funcionará corretamente.

# nat Table rules
*nat
:POSTROUTING ACCEPT [0:0]

# Forward traffic through ppp0 - Change to match you out-interface
-A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE

# don't delete the 'COMMIT' line or these nat table rules won't
# be processed
COMMIT

Não se esqueça de trocar o “192.168.1.0” pelo IP do servidor, e “eth0” pela sua placa da Internet, ou se você tem ADSL, para “ppp0“.

O último passo é permitir que os micros da rede interna possam se comunicar com o servidor (compartilhamento de impressoras, NFS, etc), permitindo a entrada do tráfego da rede interna para o servidor:

$ sudo ufw allow from 192.168.1.0/24

E, para fechar, reinicialize o UFW para habilitar as alterações:

$ sudo ufw disable && sudo ufw enable

Vale lembrar que a política padrão do UFW é liberar todas as conexões de saída e bloquear as de entrada, o que é recomendado – vá liberando as entradas conforme necessário. Isso pode ser facilmente feito através da interface gráfica GUFW, em sua tela inicial.

Bloqueando Ping

Para que seu sistema seja 100% aprovado em testes de firewall online por aí, é necessário você desabilitar as respostas do comando Ping. Para isso, abra novamente o arquivo “/etc/ufw/before.rules“, e comente a última linha referente ao ICMP:

# ok icmp codes
-A ufw-before-input -p icmp --icmp-type destination-unreachable -j ACCEPT
-A ufw-before-input -p icmp --icmp-type source-quench -j ACCEPT
-A ufw-before-input -p icmp --icmp-type time-exceeded -j ACCEPT
-A ufw-before-input -p icmp --icmp-type parameter-problem -j ACCEPT
#-A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT

Salve o arquivo e reinicie com o:

$ sudo ufw disable && sudo ufw enable

Você pode testar seu firewall em:

https://www.grc.com/x/ne.dll?bh0bkyd2

Boa diversão!

Referências:

http://gufw.tuxfamily.org/pt/
http://wiki.ubuntu-br.org/UFW
https://www.hardware.com.br/guias/ubuntu/firestarter-gufw.html
https://www.nowhere.dk/articles/ufw-blocking-outgoing-connections
https://www.nowhere.dk/articles/tip_nat_with_ubuntus_ufw_firewall

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X