UFW - FIREWALL DESCOMPLICADO NO UBUNTU

A ferramenta padrão de configuração de firewall no Ubuntu, a partir da versão 8.04, é o ufw. Desenvolvido para facilitar a configuração do firewall com iptables, ufw provê uma maneira amigável de criar um firewall em máquinas baseadas em IPv4 ou IPv6.

“ufw não tem a intenção de prover uma funcionalidade completa de firewall através da sua interface de comando, mas no entanto fornece uma maneira fácil de adicionar e remover regras simples. Atualmente ele é utilizado para firewalls baseados em hosts.”

Alguns exemplos de como usar o ufw:

Primeiramente, o ufw precisa ser habilitado. No terminal digite:

sudo ufw enable

Para abrir uma porta (ssh neste exemplo):

sudo ufw allow 22

Regras também podem ser adicionadas usando um formato numerado:

sudo ufw insert 1 allow 80

Similarmente, para fechar uma porta aberta:

sudo ufw deny 22

Para remover uma regra, use delete seguido pela regra:

sudo ufw delete deny 22

É possível também permitir acesso de hosts e redes específicas em uma porta. O seguinte exemplo permite acesso ssh do host 192.168.0.0 para qualquer endereço IP neste host.

sudo ufw allow proto tcp from 192.168.0.2 to any port 22

Substitua 192.168.0.2 para 192.168.0.0/24 para permitir acesso ssh para a subrede inteira.

ufw pode ser desabilitado por:

sudo ufw disable

Para ver o status do firewall, digite:

sudo ufw status

E para maiores informações de status use:

sudo ufw status verbose

Para visualizar o formato numerado:

sudo ufw status numbered

Se a porta que você deseja abrir ou fechar estiver definida no /etc/services, você poderá utilizar o nome da porta ao invés do número. Nos exemplos acima, altere 22 por ssh.

ufw Integração de Aplicativos

Os aplicativos que podem abrir portas incluem um perfil ufw, que detalha as portas, estão contido em /etc/ufw/applications.d

Para ver quais as aplicações instaladas têm um perfil, digite o seguinte em um terminal:

sudo ufw app list

De forma similar ao comando que permite o tráfego de uma porta, um perfil pode ser utilizado como no exemplo:

sudo ufw allow Samba

Uma sintaxe extendida está disponível também:

ufw allow from 192.168.0.0/24 to any app Samba

Substituir o Samba e 192.168.0.0/24 com a aplicação e o perfil que você está utilizando no intervalo de IP para sua rede. Não é necessário especificar o protocolo para a aplicação, porque essa informação é detalhada no perfil. Note que o nome da aplicação é recolocada no número da porta.

Para visualizar os detalhes sobre quais portas, protocolos, etc, estão definidos por um aplicativo, digite:

sudo ufw app info Samba

Mascaramento de IP (NAT) O propósito do Máscaramento de IP é permitir máquinas com IP privado acessarem a Internet por meio de uma única conexão. O tráfico destinado de sua rede privada para a Internet deve ser manipulado para obter respostas da máquina que fez a petição, como em uma rota invertida. Para fazer isto, o kernel deve modificar o endereço IP da fonte de cada pacote e retornar respostas a ele, antes que o endereço privado IP faço o pedido de resposta. O Linux usa Connection Tracking (conntrack) para acompanhar que conexões pertencem a que máquinas e desviar cada pacote de retorno correspondente. O tráfico originado em sua rede privada é assim "mascarado" como sendo originado de seu gateway Ubuntu. Este processo possui referência na documentação da Microsoft como Conexão de Internet Compartilhada.

ufw Masquerading Mascaramento de IP pode ser obtido utilizando regras de ufw customizadas. Isto é possível devido ao back-end atual para o ufw ser iptables-restore com os arquivos de regras localizados em /etc/ufw/*.rules. Estes arquivos são um ótimo lugar para adicionar regras legadas do iptables utilizadas sem o ufw, e regras que são mais relacionadas com redes gateway ou bridge.

As regras são divididas em dois arquivos diferentes, regras que devem ser executadas antes das regras de linha de comando do ufw e regras que devem ser executadas após a linha de comando do ufw.

Primeiramente, o repasse de pacotes (packet forwarding) precisa estar habilitado no ufw. Dois arquivos de configuração precisam ser ajustados, em /etc/default/ufw altere o DEFAULT_FORWARD_POLICY para “ACCEPT”:

DEFAULT_FORWARD_POLICY="ACCEPT"

Então edite /etc/ufw/sysctl.conf e remova o comentário:

net.ipv4.ip_forward=1

Semelhantemente, para IPv6, remova os comentários:

net.ipv6.conf.default.forwarding=1

Agora adicionaremos regras para o arquivo /etc/ufw/before.rules. A regra padrão apenas configura a tabela filter, e para habilitar mascaramento a tabela nat precisará ser configurada. Adicione o seguinte, no topo do arquivo, logo após os comentários do cabeçalho:

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

# Forward traffic from eth1 through eth0.
-A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE

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

Os comentários não são estritamente necessários, mas é considerada uma boa pratica documentar sua configuração. Além disso, quando modificar qualquer um dos arquivos de regras em /etc/ufw, assegure-se de que a linha COMMIT seja a última linha para cada tabela modificada:

No exemplo acima substituir eth0 e 192.168.0.0/24 com a interface adequada e intervalo IP para sua a rede.

Finalmente, desabilite e habilite o ufw, para aplicar as mundanças:

sudo ufw disable && sudo ufw enable

Logs

Logs do Firewall são essenciais para reconhecer ataques, identificar regras do seu firewall, e notar atividades incomuns nas sua rede. Você deve incluir regras de logs no seu firewall para que elas sejam geradas, considerando que as regras de log devem vir antes de qualquer regra de aplicação ( uma regra com alvo que decide a política para determinado pacote, como ACCEPT, DROP ou REJECT).

Se você estiver usando o ufw, pode ligar o log digitando o seguinte no terminal:

sudo ufw logging on

Para desligar o log no ufw, simplesmente substitua on por off no comando acima.

Um requisição na porta 80 da máquina local, então, poderá gerar um log no dmes parecido com isto:

[4304885.870000] NEW_HTTP_CONN: IN=lo OUT= MAC=00:00:00:00:00:00:00:00:00:00:00:00:08:00 SRC=127.0.0.1 DST=127.0.0.1 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=58288 DF PROTO=TCP SPT=53981 DPT=80 WINDOW=32767 RES=0x00 SYN URGP=0

O registro acima é publicado em /var/log/messages, /var/log/syslog, e /var/log/kern.log. Estes procedimentos podem ser alterados modificando o /etc/syslog.conf ou instalando e configurando o ulogd e, assim, usar o ULOG como alvo ao invés do LOG (registro). O daemon ulogd é um servidor userspace que observa o sistema para registrar instruções específicas do kernel para firewalls e registrar qualquer arquivo que você queira, igual aos bancos de dados PostgreSQL e MySQL. O registro das ações do firewall pode ser simplificada usando uma ferramenta para análise de registros, como o fwanalog, fwlogwatch, ou lire.

Última modificação 9 anos atrás Última modificação em 12/09/2010 18:16:01
 

The contents and data of this website are published under license:
Creative Commons 4.0 Brasil - Atribuir Fonte - Compartilhar Igual.