UFW

UFW - Uncomplicated Firewall

Introdução

O aplicativo padrão de firewall para do Ubuntu, a partir da versão 8.04LTS é UFW.

Por padrão UFW está habilitado, mas todas as portas estão abertas (caso contrário não haveria acesso à Internet após a instalação).

Apesar de ser um programa para ser acessado via Terminal, ele pode também ser prático mesmo para usuários inexperientes simplesmente ativarem ativarem o firewall. O Gufw é sua interface gráfica.

Para uma introdução a firewalls, por favor, acesse Firewall.

UFW - Uncomplicated Firewall

A ferramenta de configuração de firewall padrão para o Ubuntu é o ufw. Desenvolvido para facilitar a configuração do iptables, o ufw fornece um jeito fácil de criar um firewall IPv4 ou IPv6. Por padrão, o UFW é desativado.

Gufw é uma interface gráfica de usuário disponível para o UFW.

Sintaxe Básica e Exemplos

Regras padrão são boas para maioria dos usuários comuns

Quando você habilita o UFW, ele usa um conjunto de regras padrão (profile) que deve ser bom para a maioria dos usuários domésticos. Pelo menos isto é o objetivo do desenvolvedores do Ubuntu. Em suma, todos os pacotes de entrada ('incoming') estão sendo rejeitados, com algumas exceções para tornar as coisas mais fáceis para os usuários domésticos.

Habilitar e Desabilitar

Habilitar UFW

Para habilitar o UFW com o conjunto de regras padrão:

sudo ufw enable

Para verificar o estado do UFW:

sudo ufw status verbose

A saída deve ser assim:

youruser@yourcomputer:~$ sudo ufw status verbose
[sudo] password for youruser:
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing)
New profiles: skip
youruser@yourcomputer:~$

Note que por padrão, os pacotes de entrada estão sendo recusados. Existem exceções, as quais podem ser visualizadas com o comando:

sudo ufw show raw

Você também pode ler os arquivos de regras em /etc/ufw (os arquivos cujos nomes terminam em .rules).

Desabilitar o UFW

Para desabilitar o ufw, use:

sudo ufw disable

Permitindo e Recusando (regras específicas)

Permitindo

sudo ufw allow <porta>/<opcional: protocolo>

Exemplo: permitir pacotes tcp e udp de entrada na porta 53:

sudo ufw allow 53

Exemplo: permitir pacotes tcp de entrada na porta 53:

sudo ufw allow 53/tcp

Exemplo: Permitir pacotes udp de entrada na porta 53:

sudo ufw allow 53/udp

Rejeitar

sudo ufw deny <port>/<optional: protocol>

Exemplo: rejeitar pacotes de entrada tcp e udp na porta 53:

sudo ufw deny 53

Exemplo: rejeitar pacotes de entrada tcp na porta 53:

sudo ufw deny 53/tcp

Exemplo: rejeitar pacotes de entrada udp na porta 53:

sudo ufw deny 53/udp

Apagar Regra Existente

Para apagar uma regra, execute o comando original com a falavra 'delete' como prefixo. Por exemplo, se a regra original era:

ufw deny 80/tcp

Use o seguinte comando para apagá-la:

sudo ufw delete deny 80/tcp

Serviços

Você pode também permitir ou negar por nome de serviço visto que o ufw lê de /etc/service Para ver uma lista de serviços:

less /etc/services

Permitir por nome de serviço

sudo ufw allow <nome do serviço>

Exemplo: permitir ssh por nome:

sudo ufw allow ssh

Rejeitar por nome de serviço

sudo ufw deny <nome do serviço>

Exemplo: recusar ssh por nome:

sudo ufw deny ssh

Estado

Verificar o estado do ufw dirá a você se o ufw está habilitado ou desabilitado e também listará as regras ufw que são aplicadas ao seu iptables.

Para verificar o estado do ufw:

sudo ufw status

A saida será algo como:

Firewall loaded

To                         Action  From
--                         ------  ----
22:tcp                     DENY    192.168.0.1
22:udp                     DENY    192.168.0.1
22:tcp                     DENY    192.168.0.7
22:udp                     DENY    192.168.0.7
22:tcp                     ALLOW   192.168.0.0/24
22:udp                     ALLOW   192.168.0.0/24

Se o ufw não estivesse ativado a saída seria:

Status: inactive

Registrando

Para habilitar o registro, use:

sudo ufw logging on

Para desabilitar o registro, use:

sudo ufw logging off

Sintaxe Avançada

Você também pode utilizar uma sintaxe mais completa, especificando os endereços da fonte e do destino, portas e protocolos.

Permitir Acesso

Esta seção mostra como permitir acesso específico.

Permitir IP Específico

sudo ufw allow from <endereço ip>

Exemplo: permitir pacotes de 207.46.232.182:

sudo ufw allow from 207.46.232.182

Permitir Sub-rede Específica

Você pode usar uma máscara de sub-rede:

sudo ufw allow from 192.168.1.0/24

Permitir por Porta e IP Específicos

sudo ufw allow from <endereço IP> to <protocolo> port <número da porta>

Exemplo: permitir acesso do endereço IP 192.168.0.4 à porta 22 para todos os protocolos:

sudo ufw allow from 192.168.0.4 to any port 22

Permitir por Porta, Endereço IP e Protocolo Específico

sudo ufw allow from <endereço ip> to <protocolo> port <número da porta> proto <nome do protocolo>

Exemplo: permitir acesso do endereço 192.168.0.4 à porta 22 usando TCP:

sudo ufw allow from 192.168.0.4 to any port 22 proto tcp

Habilitar PING

Nota: Segurança por obscuridade talvez seja de um benefício real muito pequeno com os scripts cracker modernos. Por padrão, o UFW permite requisições ping. Você talvez deseje deixar requisições ping (icmp) habilitadas para diagnosticar problemas de rede.

Para desabilitar requisições ping (icmp), você precisa editar /etc/ufw/before.rules e remover as seguintes linhas:

# 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

ou mudar "ACCEPT" para "DROP"

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

Negar Acesso

Negar por IP Específico

sudo ufw deny from <ip address>

Exemplo: para bloquear pacotes de 207.46.232.182:

sudo ufw deny from 207.46.232.182

Negar por portas e endereço IP específicos

sudo ufw deny from <endereço ip> to <protocolo> port <número da porta>

Exemplo: negar endereço ip 192.168.0.1 de acessar a porta 22 para todos os protocolos:

sudo ufw deny from 192.168.0.1 to any port 22

Trabalhando com regras numeradas

Listando regras com um número de referência

Para mostrar a ordem e o número de identificação das regras, você pode utilizar o seguinte comando:

sudo ufw status numbered

Editando regras numeradas

Apagando regras numeradas

Você pode então apagar regras utilizando o número. Isto apagará a primeira regra, as demais serão deslocadas para cima para preencher a lista.

sudo ufw delete 1

Inserir regra numerada

sudo ufw insert 1 allow from <endereço ip>

Exemplo Avançado

Cenário: Você quer bloquear acesso à porta 22 dos IPs 192.168.0.1 e 192.168.0.7 mas permitir todos os outros 192.168.0.x IPs para ter acesso à porta 22 usando tcp:

sudo ufw deny from 192.168.0.1 to any port 22
sudo ufw deny from 192.168.0.7 to any port 22
sudo ufw allow from 192.168.0.0/24 to any port 22 proto tcp

Isso coloca as regras específicas em primeiro e as genéricas em segundo plano. Uma vez uma regra é correspondida, as outras não irão ser validadas (veja manual abaixo). Portanto, você deve colocar as regras específicas primeiro.Conforme as regras mudam, você talvez precise apagar regras antigas para garantir que estas novas regras estão colocadas na ordem apropriada.

Para verificar a ordem das suas regras você pode verificar o estado; para o cenário, a saída abaixo é a saída desejada para que as regras funcionem apropriadamente:

sudo ufw status

Firewall loaded

To                         Action  From
--                         ------  ----
22:tcp                     DENY    192.168.0.1
22:udp                     DENY    192.168.0.1
22:tcp                     DENY    192.168.0.7
22:udp                     DENY    192.168.0.7
22:tcp                     ALLOW   192.168.0.0/24

Mudança de cenário: Você quer bloquear acesso à porta 22 para 192.168.0.3, 192.168.0.1 e 192.168.0.7:

sudo ufw delete allow from 192.168.0.0/24 to any port 22

sudo ufw status

Firewall loaded

To                         Action  From
--                         ------  ----
22:tcp                     DENY    192.168.0.1
22:udp                     DENY    192.168.0.1
22:tcp                     DENY    192.168.0.7
22:udp                     DENY    192.168.0.7

sudo ufw deny 192.168.0.3 to any port 22

sudo ufw allow 192.168.0.0/24 to any port 22 proto tcp

sudo ufw status

Firewall loaded

To                         Action  From
--                         ------  ----
22:tcp                     DENY    192.168.0.1
22:udp                     DENY    192.168.0.1
22:tcp                     DENY    192.168.0.7
22:udp                     DENY    192.168.0.7
22:tcp                     DENY    192.168.0.3
22:udp                     DENY    192.168.0.3
22:tcp                     ALLOW   192.168.0.0/24

Outros Recursos

  • Para instruções de utilização do ufw, primeiramente veja guia para servidores oficial.

  • A sintaxe e o manual mais recente podem ser obtidos através do comando:

man ufw
  • Firewall - wiki homepage for firewall related documentation.

  • Iptables - interface to the netfilter subsystem in the Linux kernel.

  • Gufw - Graphic User Interface for UFW.

UFW (last edited 2013-10-24 10:43:02 by rudineiw)