Você está na página 1de 39

Material didático ESR

Sessão de aprendizagem 1
Modelo de conteúdo do material didático
Segurança de redes e sistemas

Capítulo 3

Firewall – Conceitos e Implementação


Tópicos abordados

Introdução
Firewall
Netfilter (Iptables)
Implementação do Netfilter
Modo de Operação do Netfilter
Controle Perimetral
Tradução de IP (NAT)
3 35
Segurança de redes e sistemas – Capítulo 3 (Implentação de firewalls)
Firewall

Propósitos de um Firewall
Restringir a entrada Impedir que Controlar quais
de tráfego em um atacantes consigam pacotes podem
ponto único e chegar em suas trafegar para fora e
controlado. defesas mais para dentro da rede.
internas.

Definição
Combinação de componentes para proteger informações entre uma
rede privada e a internet ou outras redes.
4 35
Segurança de redes e sistemas – Capítulo 3 (Implentação de firewalls)
Topologias e tecnologias de Firewall

Dual-Homed

Figura 3.2 Topologia dual-homed


5 35
Segurança de redes e sistemas – Capítulo 3 (Implentação de firewalls)
Topologias e tecnologias de Firewall

DMZ

Figura 3.3 Rede DMZ protegida por dois roteadores


6 35
Segurança de redes e sistemas – Capítulo 3 (Implentação de firewalls)
Topologias e tecnologias de Firewall

Variações
Multiplos Bastion Hosts
Junção dos roteadores internos e externos
Junção dos Bastion Hosts e o roteador externo
Múltiplos perímetros
Firewalls internos

7 35
Segurança de redes e sistemas – Capítulo 3 (Implentação de firewalls)
Topologias e tecnologias de Firewall

Montando um topologia complexa

Figura 3.4 Exemplo de topologia complexa


8 35
Segurança de redes e sistemas – Capítulo 3 (Implentação de firewalls)
Implementação de Firewalls

Ferramentas
Netfilter (IPTables)

IPFilter (IPF)

IP Firewall (IPFW)

Packet Filter (PF)

9 35
Segurança de redes e sistemas – Capítulo 3 (Implentação de firewalls)
Netfilter (Iptables)

Principais características:
Stateless packet filtering (IPv4 e IPv6);
Stateful packet filtering (IPv4 e IPv6);
Tradução de endereço e portas (IPv4):
Desenvolvido para ser flexível e extensível;
API de várias camadas para implementação de complementos
de terceiros;
Grande número de software adicionais (plugins) e módulos
mantidos no repositório do netfilter.
10 35
Segurança de redes e sistemas – Capítulo 3 (Implentação de firewalls)
Netfilter

Regras Estados

Conceitos
Chains Tabelas

11 35
Segurança de redes e sistemas – Capítulo 3 (Implentação de firewalls)
Netfilter

Regras

O que fazer, com que tipo de pacote e onde fazer

Padrões de Campos de cabeçalho


Possui um padrão de casamento (match) Estados de conexões
casamento (match) e
um alvo (target) Aceitar, rejeitar, ignorar,
Alvos (target) modificar, logar, chains

12 35
Segurança de redes e sistemas – Capítulo 3 (Implentação de firewalls)
Netfilter

Estados >> Relação do pacote com um fluxo

NEW
Netfilter
reconhece os ESTABLISHED
seguintes RELATED
estados
INVALID

13 35
Segurança de redes e sistemas – Capítulo 3 (Implentação de firewalls)
Netfilter

Chains >> Conjuntos (cadeias) de regras

Chains do sistema estão ligadas a


Chains do pontos especiais que os pacotes
sistema x percorrem no kernel
Chains do
Regras nas chains do sistema podem
usuário
ter como alvo as chains do usuário

14 35
Segurança de redes e sistemas – Capítulo 3 (Implentação de firewalls)
Netfilter

Chains do sistema

Figura 7.1 - Chains do sistema.


15 35
Segurança de redes e sistemas – Capítulo 3 (Implentação de firewalls)
Netfilter

Tabelas

Estruturas onde são Possuem funções


armazenadas as chains específicas

Filter – filtra pacotes (obs.: único


tipo a ser estudado aqui)

Há três tipos
Mangle – altera e “marca” pacotes
de tabelas

Nat – traduz endereços de rede

16 35
Segurança de redes e sistemas – Capítulo 3 (Implentação de firewalls)
Configuração do firewall

O que filtrar?

Política padrão Política padrão


DROP e regras ACCEPT e regras
Duas
específicas para para bloquear
abordagens
os serviços serviços
permitidos específicos

17 35
Segurança de redes e sistemas – Capítulo 3 (Implentação de firewalls)
Configuração do firewall

Manipulação de regras/chains Feita com o comando iptables

Cada tipo de regra admite opções diferentes

Sintaxe para criação / # iptables -[AID] CHAIN [N] [-t


remoção de regras TABLE] MATCH -j TARGET

18 35
Segurança de redes e sistemas – Capítulo 3 (Implentação de firewalls)
Configuração do firewall

Opções para criação e remoção de regras

-A “Append” adiciona regras ao final da chain

“Insert” insere a regra na posição N; se não for indicada a posição, insere


-I
no começo da chain
“Delete” remove uma regra. Há dois modos:
 Indicando o número da regra
-D
 Usando as mesmas opções (padrão e alvo) com as quais a regra
foi criada
Admite as tabelas filter, mangle e nat. Caso a tabela não seja definida, o
-t
iptables considera que a escolhida é a filter.
19 35
Segurança de redes e sistemas – Capítulo 3 (Implentação de firewalls)
Configuração do firewall

-s ou --src <IP>[/bits] = -d ou --dst <IP>[/bits] =


casa com a origem do pacote casa com o destino do pacote

Padrões de casamento

-o ou --out-interface <interface> = -i ou --in-interface <interface> =


interface de saída interface de entrada

Dica: use “!” para negar uma opção


 iptables -A INPUT -i eth0 ! -s 192.168.0.1 –j\ ALVO

20 35
Segurança de redes e sistemas – Capítulo 3 (Implentação de firewalls)
Configuração do firewall

-p ou –protocol <tcp,udp,icmp> = protocolo do pacote


Padrões de
casamento

--sport ou --source-port <porta>[:porta] = porta(s) de origem do datagrama

--dport ou --destination-port <porta>[:porta] = porta(s) de destino do datagrama

Exemplo
 iptables -A FORWARD -p tcp --dst 192.168.0.1 --dport 80 -j ALVO

21 35
Segurança de redes e sistemas – Capítulo 3 (Implentação de firewalls)
Configuração do firewall

Padrões de casamento

-m ou --match <módulo> = habilita novas opções

Ex.: -m state: carrega o módulo de estados.

-m state --state <NEW, ESTABLISHED, RELATED,INVALID> = casa


com o estado da conexão

22 35
Segurança de redes e sistemas – Capítulo 3 (Implentação de firewalls)
Configuração do firewall

Padrões de casamento

--tcp-flags <mask, flags> = examina as flags definidas em “mask”


e casa com flags ligadas (bit 1)

Ex.: iptables -A FORWARD -p tcp --tcp-flags SYN,ACK SYN -j ALVO

Examina as flags SYN e ACK. A flag SYN deve estar “ligada”

23 35
Segurança de redes e sistemas – Capítulo 3 (Implentação de firewalls)
Configuração do firewall

Definição de alvo de uma regra (exemplo tabela filter)

 ACCEPT = Aceita um pacote.


 REJECT = Rejeita um pacote e, opcionalmente, envia um ICMP
tipo <type> para a origem do pacote.
 DROP = Descarta silenciosamente os pacotes.
 LOG = Registra o pacote.
 RETURN = Reenvia o pacote para a sua chain de origem.

24 35
Segurança de redes e sistemas – Capítulo 3 (Implentação de firewalls)
Configuração do firewall

Listagem de regras

Formato: # iptables -L [ CHAIN ] [ -t table]

 # iptables –L
Exemplos:  # iptables -L -t mangle
 # iptables -L FORWARD -t filter

25 35
Segurança de redes e sistemas – Capítulo 3 (Implentação de firewalls)
Configuração do firewall

Manipulação de chains

Ajuste da política padrão de uma


chain (o que fazer caso nenhuma # iptables -t filter -P FORWARD DROP
regra se aplique ao pacote)

Criar e remover chains # iptables -t filter -N servicos_tcp

Utilizar chains de usuário # iptables -A INPUT -p tcp --dport 80 -j servicos_tcp

Limpar chains # iptables -t table -F <chain>


26 35
Segurança de redes e sistemas – Capítulo 3 (Implentação de firewalls)
Tradução de endereços de redes

Network Address Translation (NAT)

Também conhecido como Permite alterar campos do


IP-Masquerading cabeçalho IP

Frequentemente usado Viabiliza a conexão de toda


quando não há endereços uma rede à internet com
“públicos” para todos os apenas um endereço
hosts de uma rede “público”

27 35
Segurança de redes e sistemas – Capítulo 3 (Implentação de firewalls)
Tradução de endereços de redes

Tipos de NAT (dois tipos básicos)

Também chamado de “NAT estático”


NAT
Faz a tradução 1:1 (de um endereço IP para outro)

Tradução de endereços e portas de rede

Usado quando mais de um host precisa utilizar um único endereço IP


NAPT
Também pode ser classificado Source NAT (SNAT)
em dois outros tipos Destination NAT (DNAT)
28 35
Segurança de redes e sistemas – Capítulo 3 (Implentação de firewalls)
Tradução de endereços de redes

Source NAT (SNAT)

Uso frequente para conectar redes/hosts à internet

Como uma rede com endereço privado acessa a internet?

Com endereço privado, o pacote geralmente não atinge o destino (filtros)

Se atingir, é impossível enviar uma resposta de volta

29 35
Segurança de redes e sistemas – Capítulo 3 (Implentação de firewalls)
Tradução de endereços de redes

Source NAT (SNAT)

Figura 8.1 - Source NAT (SNAT).


30 35
Segurança de redes e sistemas – Capítulo 3 (Implentação de firewalls)
Tradução de endereços de redes

Configuração do SNAT

No Linux,
As regras para
também é feita
SNAT são
pelo netfilter
aplicadas na
através do
chain
comando
POSTROUTING
iptables

31 35
Segurança de redes e sistemas – Capítulo 3 (Implentação de firewalls)
Tradução de endereços de redes

Configuração do SNAT

Exemplos de pacotes que deixam o host com a interface eth1


trocando a origem para 200.0.0.1

# iptables -t nat -A POSTROUTING -o eth1 –j\ SNAT --to-source 200.0.0.1

A opção --to-source aceita um intervalo de IP e porta

--to-source IP[-IP]:[porta-porta]

32 35
Segurança de redes e sistemas – Capítulo 3 (Implentação de firewalls)
Tradução de endereços de redes

Configuração do SNAT

Masquerade é um modo especial de SNAT


Usa o alvo MASQ e, automaticamente, o IP da interface de saída
# iptables -t nat -POSTROUTING -o ppp0 -j\ MASQ [--to-ports porta[-porta]]

Também é possível especificar padrões específicos


# iptables -t NAT -A POSTROUTING -p tcp --\ dport 80 -j SNAT --to-source 200.0.0.1

33 35
Segurança de redes e sistemas – Capítulo 3 (Implentação de firewalls)
Tradução de endereços de redes

Destination NAT (DNAT)

Manipula endereços e portas de destino

 Permitir que hosts na internet acessem hosts de


uma rede com endereços privados
Uso comum
 Balanceamento de serviços (balancear requisições
com destino à porta 80, por exemplo)

Cuidado: No Linux o DNAT altera os pacotes em apenas um único


sentido (ao contrário do SNAT)
34 35
Segurança de redes e sistemas – Capítulo 3 (Implentação de firewalls)
Tradução de endereços de redes

Destination NAT (DNAT)

Intranet com
Endereços Privados

Gateway
Internet

192.168.0.1 200.0.0.1

Figura 8.2
35 35
Segurança de redes e sistemas – Capítulo 3 (Implentação de firewalls)
Tradução de endereços de redes

Configuração do DNAT

As regras devem ser aplicadas


Análoga ao SNAT
na tabela PREROUTING

Exemplo de uso para trocar o destino de pacotes que chegam da


interface eth0, com o destino de 200.0.0.1 para 192.168.0.1
# iptables -t nat -A PREROUTING -i eth0 -d \ 200.0.0.1 -j DNAT --to-destination 192.168.0.1

36 35
Segurança de redes e sistemas – Capítulo 3 (Implentação de firewalls)
Tradução de endereços de redes

Configuração do DNAT

Exemplo de balanceamento da porta 80 para conexões vindas pela


interface ppp0, para os servidores de 192.168.0.3 a 192.168.0.5

# iptables -t nat -A PREROUTING -i ppp0 –p \ tcp --dport 80 -j DNAT --to-destination


\ 192.168.0.3-192.168.0.5

37 35
Segurança de redes e sistemas – Capítulo 3 (Implentação de firewalls)
Tradução de endereços de redes

Configuração do DNAT

Caso especial do DNAT usado para redirecionar pacotes com


destino de uma porta para uma porta local (por exemplo, para fazer
proxys transparentes)

Exemplo de proxy transparente redirecionando o tráfego com


destino da porta 80 para a porta 3128 local

# iptables -t nat -A PREROUTING -i eth1 -p \ tcp --dport 80 -j REDIRECT --to-ports


3128

38 35
Segurança de redes e sistemas – Capítulo 3 (Implentação de firewalls)
Segurança de redes e sistemas

Capítulo 3

Firewall – Conceitos e Implementação

Você também pode gostar