Segurana de Rede Firewall Introduo ao Netfilter iptables
Segurança de Rede Firewall – Introdução ao Netfilter (iptables) Prof. Sales Filho <salesfilho@cefetrn. br>
Objetivos n Apresentar um firewall de filtro de pacotes Net. Filter Iptables n Estrutura n Modelo de funcionamento n Tratamento de filtro stateful n n Exercício prático Montagem de firewall básico n Montagem de firewall intermediário n 2
Introdução Os kernels Linux têm tido filtros de pacotes desde a série 1. 1 1ª Geração n Ipfw (Migrado do BSD) n Linux 2. 0 n Ipfwadm 2ª Geração n Linux 2. 2 n Ipchains 3ª Geração n Linux 2. 4 n iptables 4ª Geração n 3
iptables O iptables, assim como a maioria (ou todos) dos filtros de pacotes, baseia-se em ACL´s (Access Control List), que servem para representar a política de segurança desejada n As ACL´s do iptables possuem várias peculiaridades, porque vários elementos sofisticados são utilizados para formar uma regra dentro do contexto da política desejada n O iptables utiliza os conceitos de n Cadeias (chains) n Tabelas (Tables) n Regras (rules) n 4
iptables n Cadeias (Chains) n n Regras (Rules) n n Podem ser classificadas como estruturas para comportar regras (rules) São as regras aplicadas/configuradas nas cadeias Tabelas n Selecionam os níveis/tipos de atuação das regras Chain 1 Rule 1 Table 1 Rule 2 Rule 3 Table 2 5
iptables n Cadeias padrão (Chains) n PREROUTING n n INPUT n n Tráfego passante pela máquina OUTPUT n n Tráfego que tem como destino a própria máquina FORWARD n n Tráfego ingressante na máquina (incluindo tráfego gerado localmente com destino local) Tráfego gerado localmente (tanto com destino local como remoto) POSTROUTING n Todo tráfego que "sai" da máquina (incluindo tráfego gerado localmente com destino local) 6
iptables 7
iptables n Criação de cadeias (user-chain) n iptables n –N <OP> -N Create a new chain -X Delete an EMPTY chain -P Change the Policy for a built-in chain -L Lists the chain rules -F Flushes the rules of a chain -Z Sets the counters to zero on all the rules in a chain n iptables –N allow n iptables –L allow 8
iptables n Tabelas padrão n Raw n n Filter n n nesta tabela cabem as regras responsáveis pela filtragem de pacotes Nat n n onde são feitas algumas alterações em mais baixo nível nos pacotes mudanças nos cabeçalhos dos pacotes (incluindo NAT e IP Masquerade) Mangle n usada para alterações específicas nos pacotes 9
iptables n Tabela filter 10
iptables n Tabela nat n Mascaramento (masquerading) n SNAT n Redirecionamento de portas (port forwarding ou PAT) n Redirecionamento de servidores (forwarding) n As chains PREROUTING e OUTPUT fazem DNAT. n O redirecionamento de porta n O redirecionamento de servidor 11
iptables n Tabela nat 12
iptables n Tabela nat n Mascaramento 1º Cliente solicita 2º Servidor responde SNAT: alterar o endereço de origem do pacote (Somente a chain POSTROUTING) Mascaramento é um exemplo de SNAT 13
iptables n Criação de cadeias (user-chain) n iptables n –N <OP> -N Create a new chain -X Delete an EMPTY chain -P Change the Policy for a built-in chain -L Lists the chain rules -F Flushes the rules of a chain -Z Sets the counters to zero on all the rules in a chain n iptables –N allow n iptables –L allow 14
iptables n Target (Alvo) n São os destinos dados ao pacote quando o pacote coincide com a regra n Target padrão n ACCEPT n DROP n REJECT n LOG n Target personalizada n Implementado com chains personalizadas 15
iptables n Rules (regras) n Implementam, n na prática, as ACL´s iptables -t TABLE -A CADEIA REGRAS -j ALVO n Opções n -j Specify the target (--jump) -i Specify the input interface (--in-interface) -o Specify the output interface (--out-interface) -p Specify the protocol (--proto) -s Specify the source (--source) -d Specify the destination (--destination) ! Specifies an inversion (match addresses NOT equal to) 16
iptables n Exemplos de configuração n Bloqueando a entrada para a porta 80 n n Liberando o acesso a internet n n iptables -A INPUT --dport 80 -j DROP iptables -t nat -A POSTROUTING –o eth 0 -j MASQUERADE Redirecionando a porta 666 para a porta 80 n iptables -t nat -A PREROUTING -s 10. 0/8 -p tcp --dport 666 -j REDIRECT --to-port 80 17
iptables n Ordem de aplicação das regras n São avaliadas na ordem em que são inseridas, seqüencialmente n Após avaliadas todas as regras, sem ocorrência de ‘match’, a política padrão será aplicada 18
iptables -P -A -A -A INPUT DROP -s 10. 0. 0. 1 -j DROP -s 10. 0. 0. 2 -p tcp --dport 80 -j ACCEPT -s 172. 20. 0. 0/16 -j ACCEPT
iptables -P iptables -A -j ACCEPT iptables -A INPUT DROP INPUT -s 10. 0. 0. 1 -j DROP INPUT -s 10. 0. 0. 2 -p tcp --dport 80 INPUT -s 172. 20. 0. 0/16 -j ACCEPT
iptables n Stateful filtering (TCP) n Estados reconhecidos n New n ESTABLISHED n RELATED n CLOSE pelo iptables 21
iptables n Stateful filtering (TCP) n Estados reconhecidos pelo n State New / ESTABLISHED iptables 22
iptables n Stateful filtering (TCP) n Estados reconhecidos pelo n ESTABLISHED / CLOSED iptables 23
iptables n Stateful filtering (TCP/UDP) n Estados reconhecidos n NEW/ RELATED pelo iptables 24
iptables n Stateful filtering (TCP/UDP) n Exemplos iptables -A -A de configuração INPUT -m state --state RELATED, ESTABLISHED -j ACCEPT FORWARD -i eth 0 -m state --state RELATED, ESTABLISHED -j ACCEPT FORWARD -i eth 1 -m state --state NEW, RELATED, ESTABLISHED -j ACCEPT OUTPUT -m state --state NEW, RELATED, ESTABLISHED -j ACCEPT 25
Bibliografias [Stallings 2008] Stallings, William. Criptografia e segurança de redes, 4. Ed. São Paulo: Pearson Prentice Hall, 2008. n [Minasi 2003] Minasi, Mark et al. Dominando o Windows Server 2003 - a bíblia. Pearson, 2003. n [ESR] Segurança de Redes e Sistemas n http: //www. eriberto. pro. br/iptables/ n
- Slides: 26