slides iptables

Upload: erickson-azalim

Post on 10-Oct-2015

37 views

Category:

Documents


0 download

TRANSCRIPT

  • Firewall

    Prof. Juliana Cristina [email protected]

  • Iptables O IPTables uma ferramenta de edio da tabela de filtragem

    de pacotes Com ele voc capaz de analisar o cabealho dos pacotes e tomar

    decises sobre os seus destinos No a nica soluo existente para controle desta filtragem, temos

    ainda as antigas ipfwadm e ipchains, dentre outros.

    A filtragem de pacotes est implementada no ncleo do SO No h instalao

    O iptables um firewall com estado (stateful). Os anteriores eram stateless. Modo de filtragem Stateless: trata cada pacote roteado pelo firewall

    como um pacote individual. mais simples de implementar e possui melhor desempenho

    Modo de filtragem Stateful: cria um poderoso sistema de firewall que se "lembra" das conexes entrantes, tratando de forma mais inteligente as atividades da rede.

  • Processamento de pacotes no Linux

  • Ganchos do iptables

  • Regras do IPTables

  • Tabelas, chains e regras O Iptables trabalha com Tabelas, Chains e Regras

    Existem 3 tabelas possveis de serem utilizadas:

    mangle: tem o objetivo de prover QoS (raramente usada)

    filter: a tabela padro, utilizada nos trfegos de dados comuns

    nat: usada quando h ocorrncia de NAT

    Chains:

    Atravs delas podemos especificar quando os pacotes so processados, seja qual for a tabela utilizada

    PREROUTING

    POSTROUTING

    INPUT

    OUTPUT

    FORWARD

  • Entendendo as regras As regras bsicas so formadas por:

    Tabela (-t) Se nenhuma tabela indicada, utiliza-se a filter

    Opo (-A, -I, -D, -R, -P) adio, insero, remoo, substituio, poltica

    Chain Informa a que chain a opo se aplica

    Dados (-s, -d, -i, -o, -m, -p) Normalmente caracterizam a que pacote a regra se

    aplica

    Ao (-j) O que fazer com o pacote que se enquadre na regra

  • Entendendo os argumentos Opes

    -A Adiciona ao final das regras de uma certa chain

    -D ou -D Remove uma regra de uma chain especificando a regra completa

    ou a posio da regra naquela chain (a primeira regra a 1 e a numerao segue crescente)

    -R Substitui a regra indicada de uma certa chain pela nova regra

    fornecida

    -I Insere uma nova regra na posio indicada da chain

    -P Define uma ao padro para a chain

    Caso nenhuma regra sirva para um pacote, a ao padro executada

  • Entendendo os argumentos Aes

    -j ACCEPT Aceita o pacote e ele segue o fluxo normal

    -j DROP Descarta o pacote silenciosamente

    -j REJECT Descarta o pacote e envia uma mensagem ICMP

    origem informando sobre o descarte

    -j LOG Registra a passagem do pacote

    Trata-se da nica ao que se for executada no interrompe o processamento das regras, ou seja, o pacote continua sendo avaliado pelas regras seguintes

  • Ententendo os argumentos Dados

    -s ou -s ou -s / Verifica a origem do pacote (source)

    Ex: -s 192.168.113.42 -s www.faesa.br -s 192.168.113.0/24

    -d ou -d ou -d / Verifica o destino do pacote

    Ex: -d 192.168.113.42 -d www.faesa.br -d 192.168.113.0/24

    -i Verifica a interface por onde o pacote chegou (input)

    Ex: -i eth0

    -o Verifica a interface por onde o pacote sair (output)

    Ex: -o eth1

    -p Verifica o protocolo de transporte utilizado (tcp, udp ou icmp)

    Ex: -p tcp

    -m Mdulo utilizado pela regra (state, mac etc)

  • Funcionamento bsico Lista de regras que so interpretadas em

    seqncia para cada pacote recebido/gerado pela mquina

    Se a regra atender, aplicada e para-se por a (as regras seguintes no so avaliadas)

    Ex: iptables A INPUT s 192.168.1.23 j ACCEPT

    iptables A INPUT s 192.168.1.0/24 j REJECT

    Aceita receber pacotes que venham de 192.168.1.23 e

    recusa pacotes das demais mquinas da rede 192.168.1.0

  • Dados adicionais Caso o protocolo seja TCP ou UDP, pode-se indicar a porta de

    origem ou destino -p tcp --sport 80 -p tcp --sport 80:100 -p udp --dport 53 -p udp --dport 53:65

    Para se indicar mltiplas portas em uma regra -p tcp -m multiport --sport 80,90,100,110

    Para se indicar o endereo MAC -m mac --mac-source 0A:00:AB:3F:00:0E

    S pode ser usado em PREROUTING, FORWARD e INPUT

    Para criar uma regra baseada em estados -m state --state RELATED,ESTABLISHED

    ESTABLISHED: pacote pertencente a conexo j estabelecida RELATED: pacote de uma nova conexo relacionada com uma j existente INVALID: pacote pertencente a conexo inexistente que deve possuir

    dados ou cabealho com problemas NEW: estabelecer nova conexo ou pertence a conexo desconhecida

    Os mdulos de kernel ip_conntrack_* devem ser carregados modprobe ip_conntrack_*

  • Exemplos Regras:

    iptables -A INPUT -s 200.241.13.0/24 -j DROP Descarta pacotes destinados a esta mquina que venham da rede

    200.241.13.0/24

    iptables -A FORWARD -d 18.0.0.0/8 -j REJECT Descarta pacotes que sejam encaminhados por esta mquina e

    cujo destino seja a rede 18.0.0.0/8 e envia ICMP para origem do pacote informando sobre descarte

    iptables -A OUTPUT -p icmp -j ACCEPT Deixa passar todos os pacotes ICMP gerados pela mquina

    iptables -A FORWARD -p tcp --dport 80:100 -j ACCEPT Deixa passar todos os pacotes encaminhados por esta mquina

    que sejam destinados s portas TCP de 80 a 100

    iptables -A INPUT -p udp --sport 53 -j DROP Descarta todos os pacotes destinados a esta mquina que tenham

    vindo de um servidor DNS (porta 53 UDP)

  • Exemplos Regras:

    iptables -A INPUT -i eth0 -j DROP Descarta todos os pacotes destinados a esta mquina que

    cheguem pela eth0

    iptables A INPUT -i !eth0 -j DROP Descarta todos os pacotes destinados a esta mquina exceto os

    que cheguem pela eth0

    iptables -A FORWARD -i eth0 -s 192.168.113.0/24 -p tcp -m multiport --dports 22,53,80 -j ACCEPT Aceita todos os pacotes que sejam encaminhados por esta

    mquina e que tenham vindo da rede 192.168.113.0/24, a partir da interface eth0 e que sejam destinados a servidores SSH, DNS ou Web

    iptables -P FORWARD DROP Caso um pacote que ser encaminhado por esta mquina no se

    encaixe em nenhuma regra, ser descartado

  • Exemplos Regras:

    iptables -A FORWARD -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT Aceita pacotes que sero encaminhados, que chegaram pela eth0 e que

    esto relacionados com conexes pr-estabelecidas

    iptables -A OUTPUT -p tcp -d www.google.com -j DROP Descarta pacotes TCP que esta mquina gere com destino a

    www.google.com

    iptables -L -n Lista todas as regras de todas as chains sem resolver nomes

    iptables -L INPUT -n -v Lista todas as regras da chain INPUT sem resolver nomes com estatsticas

    de uso das regras

    iptables -F Remove todas as regras de todas as chains

    iptables -F OUTPUT Remove todas as regras da chain OUTPUT

  • Para salvar/recuperar as regras Para salvar as regras

    iptables-save > arquivo_com_regras

    Para recuperar as regras

    iptables-restore < arquivo_com_regras

    Para ativar as regras a cada boot:

    Editar o arquivo /etc/network/interfaces: auto eth0

    iface eth0 inet dhcp

    pre-up iptables-restore < /etc/iptables.up.rules