ACLs Access Control Lists para IP



Documentos relacionados
Firewalls em Linux. Tutorial Básico. André Luiz Rodrigues Ferreira

Gestão de Sistemas e Redes

Iptables. Adailton Saraiva Sérgio Nery Simões

Administração de Redes 2014/15. Network Address Translation (NAT)

Segurança em Sistemas de Informação

Capítulo 4 TCP/IP FIREWALLS.

Administração de Sistemas

Arquitectura de Redes

Uso do iptables como ferramenta de firewall.

Instalação e Configuração Iptables ( Firewall)

Packet Tracer - Configurando ACLs Estendidas - Cenário 1

Segurança de Redes. Firewall. Filipe Raulino

Prof. Samuel Henrique Bucke Brito

Aula 08. Firewall. Prof. Roitier Campos Gonçalves


comando parâmetro alternativo parâmetro REGRA função iptables -t tabela -N --new chain cria uma nova chain. iptables -t tabela -E --rename-chain

Curso de extensão em Administração de sistemas GNU/Linux: redes e serviços

Obs: Endereços de Rede. Firewall em Linux Kernel 2.4 em diante. Obs: Padrões em Intranet. Instalando Interface de Rede.

Elaboração de Script de Firewall de Fácil administração

Firewalls, um pouco sobre...

IPTABLES. Helder Nunes

01 - Entendendo um Firewall. Prof. Armando Martins de Souza armandomartins.souza@gmail.com

ADMINISTRAÇÃO DE REDES I LINUX. Firewall. Frederico Madeira LPIC 1, CCNA fred@madeira.eng.br

Firewall Iptables. Professor: João Paulo de Brito Gonçalves. Campus - Cachoeiro Curso Técnico de Informática

Segurança com Iptables

O que é uma firewall? É um router entre uma rede privada e uma rede pública que filtra o tráfego com base num conjunto de regras.

Firewall. Tutorial Firewall em Linux Acadêmicos: Felipe Zottis e Cleber Pivetta

Professor Claudio Silva

Autor: Armando Martins de Souza <armandomartins.souza at gmail.com> Data: 12/04/2010

CCNA 2 Conceitos Básicos de Roteadores e Roteamento

Listas de Controlo de Acesso (ACLs)

I Workshop do POP MG. Firewall IPTABLES. Fernando Resende Coelho mg.rnp.br

Capítulo 9: Listas de Controle de Acesso

Projeto e Instalação de Servidores Servidores Linux Aula 6 Firewall e Proxy

Firewall - IPTABLES. Conceitos e Prática. Tópicos em Sistemas de Computação Prof. Dr. Adriano Mauro Cansian adriano@acmesecurity.

Tipos de Firewalls. porta de origem/destino, endereço de origem/destino, estado da conexão, e outros parâmetros do pacote.

Introdução a Firewalls no Linux (Netfilter/Iptables)

PROJETO DE IMPLEMENTAÇÃO DE UM SERVIDOR FIREWALL LIVRE UTILIZANDO IPTABLES

Os protocolos de encaminhamento têm como objectivo a construção e manutenção automática das tabelas de encaminhamento.

Linux Network Servers

Netfilter e Iptables

Oficina de ferramentas de Gerência para Redes em Linux

FIREWALL COM IPTABLES. by João Eriberto Mota Filho 3. TABELAS. Tabela Filter ESQUEMA DA TABELA FILTER

Curso Firewall. Sobre o Curso de Firewall. Conteúdo do Curso

Compartilhamento da internet, firewall

III WTR do POP-BA III Workshop de Tecnologias de Redes Ponto de Presença da RNP na Bahia Instrutor: Ibirisol Fontes Monitor: Jundaí Abdon.

Redes IP. M. Sc. Isac Ferreira Telecomunicações e Redes de Computadores: Tecnologias Convergentes

Handson Policy Based Routing

Firewall e Proxy. Relatório do Trabalho Prático nº 2. Segurança em Sistemas de Comunicação

Segurança de redes com Linux. Everson Scherrer Borges Willen Borges de Deus

** Distance Vector - Trabalha com a métrica de Salto(HOP),. O protocolo que implementa o Distance Vector é o RIP.!

Administração de Redes Firewall IPTables

Prof. Roberto Franciscatto 4º Semestre - TSI - CAFW. Free Powerpoint Templates Page 1

Orientador de Curso: Rodrigo Caetano Filgueira

Segurança de Redes de Computadores

Formação IPv6 Maputo Moçambique 26 Agosto 29 Agosto 08

Trabalho 3 Firewalls

BRUNO PEREIRA PONTES

Criptografia e Segurança das Comunicações. Firewalls

Tema do Minicurso: Firewall IPTABLES. Carga horária 3h

Segurança Informática e nas Organizações. Guiões das Aulas Práticas

FireWall no Linux FIREWALL COM IPTABLES. by João Eriberto Mota Filho

Atividade PT 5.3.4: Configurando ACLs estendidas Diagrama de topologia

Componentes de um sistema de firewall - I

Administração de Sistemas Operacionais

TuxFrw 3.0 MSPF Modular Stateful Packet Filter

Listas de Acesso (ACL).

Configurando Interface de Rede. IPTABLES Firewall em Linux Kernel 2.4 em diante. Regras do Iptables. Iptables. Regras do Iptables. Comandos Principais

EN-3611 Segurança de Redes Aula 07 Firewalls Prof. João Henrique Kleinschmidt

Firewall IPTables e Exemplo de Implementação no Ambiente Corporativo.

Protocolos em Redes de Dados Ficha de Laboratório Número 4 BGP

Firewall iptables e criação de regras.

IP - endereçamento. Endereço IP. Ex.: Identificador de 32 bits para interfaces de roteadores e hospedeiros

genérico proteção de rede filtragem dos pacotes Sem estado (stateless) no próprio pacote. Com estado (stateful) outros pacotes

Lab 4 Análise de Pacotes utilizando o TCPDUMP

Firewalls. Prática de Laboratório. Maxwell Anderson INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DA PARAÍBA

Entendendo como funciona o NAT

Relató rió. Gestão de equipamento activo de rede

ICMP Internet Control Message Protocol

Teleprocessamento e Redes (MAB-510) Gabarito da Segunda Lista de Exercícios 01/2010

A camada de rede. A camada de rede. A camada de rede. 4.1 Introdução. 4.2 O que há dentro de um roteador

ICORLI. INSTALAÇÃO, CONFIGURAÇÃO e OPERAÇÃO EM REDES LOCAIS e INTERNET

Redes de Computadores

INSTITUTO SUPERIOR DE ENGENHARIA DE LISBOA

Relatório do 2º Guião Laboratorial de Avaliação: Encaminhamento de pacotes. Licenciatura: ETI Turma : ETC1 Grupo : rd2_t3_02 Data: 30/10/2009

Guia Foca GNU/Linux - Firewall iptables

IPTABLES. Universidade Federal de Minas Gerais Departamento de Ciência da Computação Laboratório de Software Livre. 4 de fevereiro de 2010

Suporte de NAT para conjuntos múltiplos utilizando mapas de rota

Arquitetura TCP/IP. Parte VI Entrega de pacotes sem conexão (IP) Fabrízzio Alphonsus A. M. N. Soares

Redes de Computadores 2008 Primeiro Trabalho Analisador de Redes

Prática NAT/Proxy. Edgard Jamhour. Esses exercícios devem ser executados através do servidor de máquinas virtuais: espec.ppgia.pucpr.

Firewall Iptables - Impasses

Transcrição:

ACLs Access Control Lists para IP

O que são as ACLs Regras organizadas em lista Cada regra é designada de ACE, Access Control Entry Cada ACE é composta por: Conjunto de verificações a realizar Acção a realizar em caso de sucesso nas verificações Regras são avaliadas por ordem até verdadeiro ou fim da lista Só executam acções quando aplicadas em determinado ponto de intercepção 24-05-2013 ISEL/DEETC/SRT 2

Aplicações típicas das ACLs Filtragem de pacotes Em trânsito Com origem ou destino local Filtragem de rotas em protocolos de encaminhamento Manipulação de rotas em protocolos de encaminhamento Validação no acesso a serviços de rede Ao nível da camada 3 e 4 Manipulação de pacotes Para classificação e implementação de QoS Para aplicação condicional de mecanismos de NAT Para ajuste de campos dos cabeçalhos dos protocolos 24-05-2013 ISEL/DEETC/SRT 3

Algoritmo básico de avaliação Validação inicia-se na cabeça da lista Validadas as condições indicadas na ACE Sobre diversos campos do cabeçalho do datagrama Sobre outras condições externas Se todas as validações da ACE sucedem, executar a acção indicada na ACE e terminar Se não, e se a lista ainda não terminou, passar para a regra seguinte Executar a acção default 24-05-2013 ISEL/DEETC/SRT 4

Cisco IOS ACLs tipo Standard Duas acções possíveis accept (aceitar) deny (negar) Opção de registar o evento com log Só permite a verificação do endereço origem do datagrama Usa o par IP / WILDCARD IP Endereço base a verificar WILDCARD Em formato de endereço IP mas indicando com os bits activos os bits que serão para ignorar na validação A acção por omissão é deny Nota: Os datagramas negados geram um ICMP Communication Administratively Prohibited (3/13) de volta a não ser que se tenha activado o no ip unrechables na interface onde está aplicada a ACL. 24-05-2013 ISEL/DEETC/SRT 5

Cisco IOS ACLs tipo Standard - Exemplo ACL de exemplo: access-list 10 permit 192.168.146.0 0.0.1.255 access-list 10 permit 192.168.148.0 0.0.1.255 access-list 10 deny 0.0.0.0 255.255.255.255 log Nome da lista é 10 As acções são permit ou deny A última regra está a registar o evento (log) A primeira regra aceita datagramas com endereço origem 192.168.146.XXX ou 192.168.147.XXX A WILDCARD diz para a validação ignorar os últimos 9 bit! 0.0.1.255 => 00000000.00000000.0000 0001.11111111 (binário) 24-05-2013 ISEL/DEETC/SRT 6

Pergunta? Se a ACL for aplicada numa interface com o código abaixo, qual a acção executada quando: Tentar entrar um datagrama na interface com endereços A) 192.168.150.100 (origem) => 192.168.146.201 (destino) B) 192.168.149.255 (origem) => 192.0.1.1 (destino) Tentar sair um datagrama na interface com endereços C) 192.168.146.1 (origem) => 192.168.147.1 (destino) access-list 10 permit 192.168.146.0 0.0.1.255 access-list 10 permit 192.168.148.0 0.0.1.255 access-list 10 deny 0.0.0.0 255.255.255.255 log interface GigabitEthernet3/16 ip access-group 10 in exit 24-05-2013 ISEL/DEETC/SRT 7

Solução! A) 192.168.150.100 (origem) => 192.168.146.201 (destino) Negado com registo (logging) pela 3ª regra B) 192.168.149.255 (origem) => 192.0.1.1 (destino) Aceite pela 2ª regra C) 192.168.146.1 (origem) => 192.168.147.1 (destino) Não se sabe, esta ACL não está aplicada à saída! access-list 10 permit 192.168.146.0 0.0.1.255 access-list 10 permit 192.168.148.0 0.0.1.255 access-list 10 deny 0.0.0.0 255.255.255.255 log interface GigabitEthernet3/16 ip access-group 10 in exit 24-05-2013 ISEL/DEETC/SRT 8

Cisco IOS ACLs - Simplificações Validação de endereços 0.0.0.0 255.255.255.255 pode ser escrito como any A.B.C.D 0.0.0.0 pode ser escrito como host A.B.C.D Na introdução da regras Bits activos na WILDCARD ficam automaticamente inactivos (a zero) no endereço para evitar ambiguidade Regras com validações iguais são ignoradas (mantida apenas 1ª) Actualmente as ACL podem ser identificadas por nomes em vez de números (para a maioria das funções) Sintaxe exemplo: ip access-list extended XPTO Aplicável para todos os tipos de ACLs 24-05-2013 ISEL/DEETC/SRT 9

Cisco IOS ACLs Restrições/Limitações Não é possível mudar a acção default Mas pode-se colocar uma regra à cauda que faça o que queremos Quando numeradas Standard : 1 a 99 ou 1300 a 1399 Extended : 100 a 199 ou 2000 a 2699 Só por si não formam firewalls com validação de estado (Statefull packet inspection SPI) SPI só com Cisco CBAC (Context Based Access Control) 24-05-2013 ISEL/DEETC/SRT 10

Cisco IOS ACLs tipo Extended (1) As mesmas duas acções (accept/deny) que as Standard Possibilidade de registo mais detalhado com log-input Validação de mais campos do cabeçalho IP Endereço destino Protocolo da camada acima (nome, número ou ip para todos) Se é fragmento que não o 1º (fragments) Valor de ToS/DSCP/Precedence (dscp/tos/precedence) Valor de TTL (ttl) Opção IP (extensões de cabeçalho) 24-05-2013 ISEL/DEETC/SRT 11

Cisco IOS ACLs tipo Extended (2) Validação de campos específicos para os protocolos nível 4 Portos TCP/UDP eq, gt, lt, neq, range, portos indicados por nome (ex. www = 80) ou número Exemplo: deny tcp any any eq 445 Flags do TCP syn, ack, rst, fin, urg, psh, established (não syn isolado!) Exemplo: permit tcp any gt 1023 any neq 0 established Type/Code do ICMP Numericamente ou baseado em nomes (ex. echo-request = type 8, code 0) Exemplo: permit icmp any any packet-too-big Tipo de mensagem IGMP host-query, v1host-report, v2host-report, v3-host-report, v2-leave-group, pim 24-05-2013 ISEL/DEETC/SRT 12

Cisco IOS ACLs tipo Extended (3) Condições externas ao datagrama avaliado Intervalos temporais (time-range)! Exemplo! Definição do período temporal em que a condição é verdadeira time-range horaupdate periodic Tuesday Wednesday 2:00 to 4:00! Definição da ACL com a validação do período de actividade ip access-list extended redemaissegura permit tcp 10.10.0.0 0.0.255.255 gt 1023 any eq 80 time-range horaupdate deny tcp 10.10.0.0 0.0.255.255 any eq 80 permit ip any any exit Contexto (evaluate/reflect) ACLs reflexivas (ver slide adiante) 24-05-2013 ISEL/DEETC/SRT 13

Cisco IOS fragmentos IP e ACLs Assumindo que as condições validáveis (L3 e/ou L4) sucedem Primeiro fragmento (tem cabeçalho L4 incluído) Se ACE contém validações L4, executar acção indicada Se ACE só contém validações L3 e não tem keyword fragments, executar acção indicada Fragmentos restantes (sem cabeçalho L4!) Se ACE contém validações L4 e acção PERMIT, executar Se ACE só contém validações L3, executar acção indicada 24-05-2013 ISEL/DEETC/SRT 14

Cisco IOS ACLs Tomada de decisão em ACEs, tendo em conta a possível fragmentação. Imagem em: http://www.cisco.com/application/pdf/paws/8014/acl_wp.pdf ISEL/DEETC/SRT 15

Cisco IOS ACLs reflexivas Extensão às ACLs Extended para manter uma informação de estado básica Apenas contexto de IPs e portos envolvidos Expiração de entradas por timeout Quando um datagrama é aceite por uma regra que inclua a acção reflect Gerada uma entrada temporária na ACL reflexiva Com os valores de IP/portos necessários para receber o tráfego de volta Na ACL usada no sentido contrário do tráfego pode-se evocar a ACL reflexiva com a regra evaluate <lista reflexiva> ip access-list extended parainternet permit tcp any any eq 80 reflect trafegoweb ip access-list extended dainternet evaluate trafegoweb 24-05-2013 ISEL/DEETC/SRT 16

Cisco IOS ACLs - Particularidades O resultado da avaliação das ACLs é sempre consistente com a ordem das regras Algumas plataformas não processam as ACEs pela ordem da lista Optimização de cálculo/pesquisa/validações Hardware dedicado (ternary content addressable memory TCAM) Plataformas com optimização hardware têm recursos limitados Típico dos Multi-Layer Switch - MLS Se as regras não couberem na TCAM o processo é realizado em software Muito ineficiente Analisar documentação da plataforma Rearranjar as regras para minimizar o consumo dos recursos escassos da TCAM Ajustar ACLs para reutilização em múltiplas interfaces 24-05-2013 ISEL/DEETC/SRT 17

Sugestões de boas práticas em ACLs ACLs reflexivas Evitar que cresçam demasiado Optimizar listas Conhecer dentro do possível a implementação do avaliador Regras muito usadas não devem gerar log Gerar log de tráfego fora do comum Terminar as ACLs com uma regra deny ip any any log Detectar situações inesperadas Analisar periodicamente os registos (log) Regras deny devem ser o mais genéricas possível Regras permit devem ser o mais específicas possível 24-05-2013 ISEL/DEETC/SRT 18

Optimização/Simplificação Juntar regras que sejam agregáveis Ex. de blocos de endereçamento contíguos e de igual dimensão Mover para a cabeça da lista Regras que lidem com mais tráfego, que sejam mais simples ou que só evoquem campos do cabeçalho IP Aceitar o tráfego TCP de ligações aceites/estabelecidas com regras established próximas da cabeça das listas Evitar ACLs reflexivas para geradores de muitas comunicações distintas Ex. Para aceitar as respostas aos pedidos DNS ao exterior, preferível usar ACLs estáticas Associar timeout razoável às acções reflect Remover regras não usadas ou com sombra de outras 24-05-2013 ISEL/DEETC/SRT 19

Reordenação de ACEs Nem sempre com resultados visíveis IOS tem frequentemente um optimizador Com melhores resultados em plataformas não MLS Há que garantir que o resultado final da avaliação se mantém Podem-se trocar regras consecutivas com acção igual Podem-se trocar regras que não se intersectem 24-05-2013 ISEL/DEETC/SRT 20

Uso em Packet Filtering - Interfaces Criar as ACL, aplicar as ACL ao tráfego que entra na interface (in) ou sai (out) ip access-list extended vigilancia-in permit udp any eq bootpc host 255.255.255.255 eq bootps permit ip any 224.0.0.0 0.0.0.255 deny ip any 224.0.0.0 31.255.255.255 deny ip any 192.168.0.0 0.0.255.255 deny ip any 127.0.0.0 0.255.255.255 log-input deny icmp any any log-input fragments permit ip any 10.100.254.0 0.0.1.255 permit ip any 193.137.220.0 0.0.1.255 permit ip any 192.104.48.0 0.0.0.255 permit ip any 10.100.2.0 0.0.32.255 permit udp any 10.100.0.254 0.0.255.0 eq ntp permit icmp any 10.100.0.254 0.0.255.0 echo permit ip any 10.100.0.254 0.0.255.0 permit icmp 10.100.2.96 0.0.0.31 any echo permit tcp 10.100.2.96 0.0.0.31 any eq www permit tcp 10.100.2.96 0.0.0.31 any eq 443 permit ip 10.100.2.96 0.0.0.31 10.4.0.96 0.0.0.31 permit ip host 10.100.32.1 10.35.17.120 0.0.0.7 deny ip any any log-input ip access-list extended vigilancia-out permit ip 10.100.16.252 0.0.0.3 224.0.0.0 15.255.255.255 deny tcp any 10.2.0.0 0.0.255.255 eq telnet permit ip 10.100.254.0 0.0.1.255 any permit ip 193.137.220.0 0.0.1.255 any permit ip 192.104.48.0 0.0.0.255 any permit ip 10.100.2.0 0.0.32.255 any permit udp 10.100.0.254 0.0.255.0 any eq ntp permit icmp 10.100.0.254 0.0.255.0 any permit ip 10.100.0.254 0.0.255.0 any permit icmp any 10.100.2.96 0.0.0.31 echo-reply permit icmp any 10.100.2.96 0.0.0.31 unreachable permit icmp any 10.100.2.96 0.0.0.31 time-exceeded permit tcp any neq 0 10.100.2.96 0.0.0.31 gt 1023 established permit ip 10.4.0.96 0.0.0.31 10.100.2.96 0.0.0.31 permit ip 10.35.17.120 0.0.0.7 host 10.100.32.1 deny ip host 10.79.29.1 any deny ip any any log-input interface Vlan193 ip access-group vigilancia-in in ip access-group vigilancia-out out 24-05-2013 ISEL/DEETC/SRT 21

Uso no acesso a serviços do router Exemplos para acesso remoto de consola e para acesso SNMP ip access-list standard cantelnet permit 193.137.220.0 0.0.0.127 deny any log! line vty 0 4 access-class cantelnet in!! =======================================! access-list 1501 permit 193.137.220.0 0.0.0.127 access-list 1501 permit 10.100.254.0 0.0.1.255 access-list 1501 deny any log! snmp-server community ourpublic RO 1501 24-05-2013 ISEL/DEETC/SRT 22

Uso em NAT Selecciona que tráfego pode usar cada regra de NAT access-list 100 permit ip 192.168.4.0 0.0.1.255 any access-list 101 permit ip 192.168.0.0 0.0.3.255 any ip nat inside source list 100 interface FastEthernet0/0 overload ip nat pool xpto 10.62.74.0 10.62.74.15 prefix-length 1 ip nat inside source list 101 pool xpto 24-05-2013 ISEL/DEETC/SRT 23

Uso em encaminhamento No ajuste de atributos ou filtragem de rotas ip access-list standard netspi permit 192.104.48.0 0.0.0.255 permit 192.68.221.0 0.0.0.255 deny any! route-map bgp-out permit 10 match ip address netspi set metric 200! router bgp 34827 neighbor 193.136.5.4 route-map bgp-out out 24-05-2013 ISEL/DEETC/SRT 24

Em policy routing Forçar o tráfego a seguir um caminho e ignorar tabela de encaminhamento Marcar valores de precedence/dscp para uso em QoS ip access-list extended netsviaf permit ip 193.137.220.0 0.0.1.255 any permit ip 193.137.237.0 0.0.0.255 any deny ip any any route-map route-ctrl-red permit 20 match ip address netsviaf set ip precedence routine set ip next-hop 193.136.1.153! interface GigabitEthernet0/3 ip policy route-map route-ctrl-red 24-05-2013 ISEL/DEETC/SRT 25

Netfilter IPTables (Linux) Modelo de filtragem mais versátil Muitos pontos de intercepção Muitos módulos extra para comportamentos especiais Muitas variantes de NAT Com statefull packet inspection nativo conntrack Possibilidade de se criarem módulos personalizados para funções muito específicas Possibilidade de evocação entre ACLs (chamadas aqui de Chains) Componentes kernel-space e user-space 24-05-2013 ISEL/DEETC/SRT 26

Netfilter Recursão entre chains Permite maior eficiência se se organizar a avaliação em árvore Evita avaliar regras que nunca iriam suceder Permite desenvolvimento de grupos modulares de regras http://www.frozentux.net/iptables-tutorial/iptables-tutorial.html 24-05-2013 ISEL/DEETC/SRT 27

Netfilter Pontos e intercepção 4 tables filter (default) nat mangle raw 5 pontos de intercepção PREROUTING POSTROUTING INPUT OUTPUT FORWARDING http://www.frozentux.net/iptables-tutorial/iptables-tutorial.html 24-05-2013 ISEL/DEETC/SRT 28

Netfilter Tabela filter Modelo mais eficiente que o do IOS Tráfego só passa por um ponto de intercepção FORWARD Se apenas atravessa o router INPUT Se é destinado ao router OUTPUT Se gerado pelo router http://www.frozentux.net/iptables-tutorial/iptables-tutorial.html 24-05-2013 ISEL/DEETC/SRT 29

Netfilter Módulo de conntrack Mantém estado granular das ligações Detalhes de quando ocorre NAT Endereços, portos, protocolos Números de sequência do TCP Contadores de tráfego em bytes e datagramas tcp 6 110 SYN_SENT src=10.10.64.231 dst=209.197.6.226 sport=3843 dport=27031 packets=1 bytes=52 [UNREPLIED] src=209.197.6.226 dst=10.10.64.231 sport=27031 dport=3843 packets=0 bytes=0 mark=0 use=2 tcp 6 53 TIME_WAIT src=10.10.64.231 dst=75.101.142.9 sport=3770 dport=80 packets=5 bytes=873 src=75.101.142.9 dst=192.68.221.137 sport=80 dport=3770 packets=5 bytes=440 [ASSURED] mark=0 use=2 tcp 6 72513 ESTABLISHED src=192.68.221.105 dst=89.214.80.251 sport=443 dport=49626 packets=2 bytes=2920 [UNREPLIED] src=89.214.80.251 dst=192.68.221.105 sport=49626 dport=443 packets=0 bytes=0 mark=0 use=2 tcp 6 69486 ESTABLISHED src=200.163.2.238 dst=192.104.48.72 sport=3844 dport=80 packets=7 bytes=288 src=192.104.48.72 dst=200.163.2.238 sport=80 dport=3844 packets=1 bytes=48 [ASSURED] mark=0 use=2 tcp 6 368226 ESTABLISHED src=192.104.48.8 dst=125.163.103.161 sport=25 dport=16008 packets=1 bytes=110 [UNREPLIED] src=125.163.103.161 dst=192.104.48.8 sport=16008 dport=25 packets=0 bytes=0 mark=0 use=2 tcp 6 121414 ESTABLISHED src=10.44.17.29 dst=194.42.43.34 sport=1401 dport=443 packets=34 bytes=20295 src=194.42.43.34 dst=192.68.221.133 sport=443 dport=1401 packets=36 bytes=18254 [ASSURED] mark=0 use=2 tcp 6 293 ESTABLISHED src=10.64.10.50 dst=208.43.202.36 sport=50106 dport=80 packets=341 bytes=56504 src=208.43.202.36 dst=192.68.221.135 sport=80 dport=50106 packets=349 bytes=53395 [ASSURED] mark=0 use=2 tcp 6 48 SYN_SENT src=10.43.139.11 dst=190.200.87.76 sport=51546 dport=64694 packets=3 bytes=152 [UNREPLIED] src=190.200.87.76 dst=10.43.139.11 sport=64694 dport=51546 packets=0 bytes=0 mark=0 use=2 tcp 6 327582 ESTABLISHED src=192.68.221.105 dst=81.84.148.189 sport=443 dport=1609 packets=9 bytes=6205 [UNREPLIED] src=81.84.148.189 dst=192.68.221.105 sport=1609 dport=443 packets=0 bytes=0 mark=0 use=2 tcp 6 346597 ESTABLISHED src=213.22.248.19 dst=193.137.100.233 sport=49838 dport=80 packets=7 bytes=352 src=193.137.100.233 dst=213.22.248.19 sport=80 dport=49838 packets=1 bytes=52 [ASSURED] mark=0 use=2 24-05-2013 ISEL/DEETC/SRT 30

Netfilter Módulo de conntrack TCP (1) Estabelecimento de ligações http://www.frozentux.net/iptables-tutorial/iptables-tutorial.html Fecho de ligações 24-05-2013 ISEL/DEETC/SRT 31

Netfilter Módulo de conntrack TCP (2) Estabelecimento de ligações associadas pelo servidor (ex. FTP-DATA / modo activo) Estabelecimento de ligações associadas pelo cliente (ex. FTP-DATA / modo passivo) http://www.frozentux.net/iptables-tutorial/iptables-tutorial.html 24-05-2013 ISEL/DEETC/SRT 32

Netfilter Módulo de conntrack UDP e ICMP Associação entre pedidos/respostas sobre UDP http://www.frozentux.net/iptables-tutorial/iptables-tutorial.html Associação entre mensagens ICMP 24-05-2013 ISEL/DEETC/SRT 33

Netfilter Módulo de conntrack TCP/UDP Associação das mensagens de erro ICMP relacionadas Em TCP http://www.frozentux.net/iptables-tutorial/iptables-tutorial.html Em UDP 24-05-2013 ISEL/DEETC/SRT 34

Netfilter Manutenção das listas e regras (1) Uso da ferramenta iptables em scripts ou command shell Uso das ferramentas iptables-save / iptables-restore Possibilidade de adição, remoção, inserção, substituição e listagem de regras Incluindo listagem de pacotes e bytes processados por cada regra Verificações base similares às do Cisco IOS Possibilidade de negação das verificações prefixando-as de! Protocolo nível 4 (-p) IP origem (-s) no formato address/mask (clássica ou CIDR) IP destino (-d) formato igual ao do -s Interface de entrada (-i) Possibilidade de uso de wildcards (ex. eth+) Interface de saída (-o) Possibilidade de uso de wildcards (ex. ppp+) Tabela (-t) filter, nat, magle, raw 24-05-2013 ISEL/DEETC/SRT 35

Netfilter Manutenção das listas e regras (2) Acções Execução (-j) <chain> - Continua a avaliação noutra chain e retorna se chegar ao fim dela ACCEPT aceitar o datagrama e terminar DROP rejeitar o datagrama sem qualquer resposta e terminar REJECT rejeitar o datagrama e responder convenientemente ou com a mensagem indicada e terminar LOG registar os detalhes do datagrama tem opções para registo de detalhes específicos RETURN volta para a lista que evocou a actual Comutação de chains (-g) Salta para a chain indicada e não volta Módulo adicional de verificações (-m) Usado para carregar módulos especializados de verificação Por omissão (-P) define a acção por omissão da chain 24-05-2013 ISEL/DEETC/SRT 36

Netfilter Verificações extra para TCP Possibilidade da negação da verificação prefixando com! --tcp-flags mask comp Testa o campo de flags com uma operação (flags & mask == comp) --syn Equivalente a --tcp-flags SYN,RST,ACK,FIN SYN --sport port[:port] Gama de portos origem a validar --dport port[:port] Gama de portos destino a validar --tcp-option number Valida a existência de determinada extensão de cabeçalho TCP 24-05-2013 ISEL/DEETC/SRT 37

Netfilter Algumas verificações especializadas Adicionáveis à regra com m statistic dá verdadeiro baseado em condições estatísticas iptables -t nat -A POSTROUTING -m statistic -o eth0 -p udp -s 193.137.220.18! --sport 53 \! -d 193.137.220.0/23 --dport 53 --mode nth --every 2 --packet 0 -j SNAT --to-source 192.104.48.18 dscp verifica o valor do campo DSCP do cabeçalho IP iptables -A dscpclass -m dscp --dscp-class AF43 -j RETURN state consulta o estado conntrack associado ao datagrama iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT limit só retorna verdadeiro n vezes por período de tempo iptables -A INPUT -p icmp --icmp-type 8/0 -m limit --limit 1/s -j ACCEPT 24-05-2013 ISEL/DEETC/SRT 38

Netfilter - NAT Usar o iptables com a opção t nat Pontos de intercepção PREROUTING POSTROUTING OUTPUT Acções finais possíveis em regras de NAT SNAT - Alteração de endereço e/ou porto origem DNAT Alteração de endereço e/ou porto destino MASQUERADE forma especial de SNAT, similar ao Cisco NAT overload sobre IP da interface indicada na regra ACCEPT não fazer NAT Nota: Algumas combinações ponto de intercepção/acções não são válidas (ex. MASQUERADE em PREROUTING!) 24-05-2013 ISEL/DEETC/SRT 39

Netfilter O resto É impossível falar de todas as alternativas do Netfilter Mesmo grande parte do mencionado atrás tem variantes que tiveram de ficam por mencionar Site oficial: http://www.netfilter.org/ Inclui muita documentação a todos os níveis e referências para muitos outros locais com tutoriais e HOWTOs 24-05-2013 ISEL/DEETC/SRT 40

Netfilter Exemplo: OpenWRT de casa (1) [root@wave root]$ iptables -t filter -L -nv Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 242 26854 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 state INVALID 385K 35M ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 20988 1259K ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 state NEW 0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:52412 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpts:52413:52414 1 52 ACCEPT tcp -- * * 0.0.0.0/0 192.168.1.254 tcp dpt:23 12117 1109K ACCEPT all -- br0 * 0.0.0.0/0 0.0.0.0/0 state NEW 663K 241M ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp spt:67 dpt:68 0 0 ACCEPT tcp -- * * 0.0.0.0/0 192.168.1.254 tcp dpt:80 66 4192 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 31640 3631K DROP all -- * * 0.0.0.0/0 0.0.0.0/0 Chain FORWARD (policy ACCEPT 116K packets, 10M bytes) pkts bytes target prot opt in out source destination 11431 972K ACCEPT all -- br0 br0 0.0.0.0/0 0.0.0.0/0 0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 state INVALID 2 104 habbo tcp -- * vlan1 0.0.0.0/0 66.132.128.0/17 0 0 habbo tcp -- * vlan1 0.0.0.0/0 69.90.136.0/21 0 0 habbo tcp -- * vlan1 0.0.0.0/0 62.50.32.0/19 210 18562 ACCEPT all -- * vlan1 192.168.1.0/24 192.168.100.1 10 1182 ACCEPT all -- * vlan1 192.168.1.0/24 192.168.1.0/24 7 532 DROP all -- * vlan1 0.0.0.0/0 192.168.0.0/16 0 0 DROP all -- * vlan1 0.0.0.0/0 172.16.0.0/20 10 684 DROP all -- * vlan1 0.0.0.0/0 10.0.0.0/8 4911K 3378M ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 0 0 DROP all --!br0 vlan1 0.0.0.0/0 0.0.0.0/0 9940 942K ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate DNAT 24-05-2013 ISEL/DEETC/SRT 41

Netfilter Exemplo: OpenWRT de casa (2) Chain OUTPUT (policy ACCEPT 519K packets, 364M bytes) pkts bytes target prot opt in out source destination Chain SECURITY (0 references) pkts bytes target prot opt in out source destination 0 0 RETURN tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x16/0x02 limit: avg 1/sec burst 5 0 0 RETURN tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x17/0x04 limit: avg 1/sec burst 5 0 0 RETURN udp -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 5/sec burst 5 0 0 RETURN icmp -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 5/sec burst 5 0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 Chain habbo (3 references) pkts bytes target prot opt in out source destination 0 0 RETURN all -- * * 192.168.1.200 0.0.0.0/0 2 104 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-net-prohibited Chain logaccept (0 references) pkts bytes target prot opt in out source destination 0 0 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 state NEW LOG flags 7 level 4 prefix `ACCEPT ' 0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 Chain logdrop (0 references) pkts bytes target prot opt in out source destination 0 0 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 state NEW LOG flags 7 level 4 prefix `DROP ' 0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 24-05-2013 ISEL/DEETC/SRT 42

Netfilter Exemplo: OpenWRT de casa (3) [root@wave root]$ iptables -t nat -L -nv Chain PREROUTING (policy ACCEPT 159K packets, 19M bytes) pkts bytes target prot opt in out source destination 40906 4242K VSERVER all -- * * 0.0.0.0/0 84.90.114.234 Chain POSTROUTING (policy ACCEPT 29811 packets, 1884K bytes) pkts bytes target prot opt in out source destination 105K 9418K MASQUERADE all -- * vlan1!84.90.114.234 0.0.0.0/0 1991 210K MASQUERADE all -- * br0 192.168.1.128/25 192.168.1.128/25 Chain OUTPUT (policy ACCEPT 22615 packets, 1488K bytes) pkts bytes target prot opt in out source destination Chain VSERVER (1 references) pkts bytes target prot opt in out source destination 0 0 DNAT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:65530 to:192.168.1.200:65530 0 0 DNAT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:65530 to:192.168.1.200:65530 9187 606K DNAT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:65531 to:192.168.1.200:65531 0 0 DNAT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:5001 to:192.168.1.207:5001 0 0 DNAT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:5001 to:192.168.1.207:5001 0 0 DNAT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:6000 to:192.168.1.211:6000 24-05-2013 ISEL/DEETC/SRT 43

Referências Netfilter/IPTables The netfilter.org project http://www.netfilter.org/ The netfilter/iptables HOWTO's http://www.netfilter.org/documentation/index.html#documentation-howto (inclui documentação em Português) Iptables Tutorial 1.2.2 http://www.frozentux.net/iptables-tutorial/iptables-tutorial.html Cisco IOS Access Lists Configuring IP Access Lists http://www.cisco.com/en/us/products/sw/secursw/ps1018/products_tech_note09186a00800a5b9a.shtml Access Lists Introduction http://www.cisco.com/en/us/tech/tk648/tk361/tk821/tsd_technology_support_sub-protocol_home.html Cisco - Access Control Lists and IP Fragments http://www.cisco.com/application/pdf/paws/8014/acl_wp.pdf Understanding ACL on Catalyst 6500 Series Switches http://www.ciscosystems.or.at/en/us/products/hw/switches/ps708/products_white_paper09186a00800c9470.s html Secure IOS Template Version 6.2 01 FEB 2010 http://www.cymru.com/documents/secure-ios-template.html 24-05-2013 ISEL/DEETC/SRT 44