Download - Apresentação Firewall Iptables

Transcript
  • Orientador:

    Mirla Rocha de Oliveira Ferreira

    Bacharel em Engenharia da Computao

    Orientadora do Curso de Formao Profissional em

    Redes de Computadores - SENAC

  • Tema do Minicurso:

    Firewall IPTABLES

    Carga horria 3h

  • Linux - Reviso

    Sistema Operacional operante desde de 1991,criado por Linus Torvalds, na de Helsinki na

    Finlndia.

    Possui cdigo aberto (open source), liberado comosoftware livre (free software).

  • Linux - Reviso

    Cdigo aberto X software livre:

    A diferena est nos objetivos, filosofia e modo de agir,

    no nos softwares ou licenas.

    O cdigo aberto regido pela organizao

    Open Source Initiative (OSI).

    O software livre caracterizado pelo

    movimento Free Software Foundation (FSF).

  • Linux - Reviso

    Cdigo aberto: Distribuio livre;

    Acesso ao cdigo-fonte;

    Permisso para criao de trabalhos derivados;

    Integridade do autor do cdigo-fonte;

    No discriminao contra pessoas ou grupos;

    No discriminao contra reas de atuao;

    Distribuio da licena;

    Licena no especfica a um produto;

    Licena no restritiva a outros programas;

    Licena neutra em relao tecnologia.

  • Linux - Reviso

    Software livre: liberdade de executar o programa, para qualquer

    propsito (liberdade 0);

    liberdade de estudar como o programa funciona eadapt-lo s suas necessidades (liberdade 1), sendo o

    acesso ao cdigo-fonte um pr-requisito para esta

    aspecto;

    liberdade de distribuir cpias de forma que voc possaajudar ao seu prximo (liberdade 2);

    liberdade de melhorar o programa e liberar os seusaperfeioamentos, de modo que toda a comunidade se

    beneficie (liberdade 3). Novamente, aqui o acesso ao

    cdigo-fonte um pr-requisito.

  • Linux - Reviso

    Sendo assim, tem-se maior estabilidade,velocidade e novos recursos adicionados ao

    sistema.

  • Linux - Reviso

    O LINUX NO VULNERVEL A VRUS!

    H maior dificuldade de ao de vrus devido srestries de acesso ao sistema de arquivos e

    execuo, onde a separao de privilgios entre

    processos rigorosa e as recomendaes do

    padro de poltica de segurana so respeitadas.

  • Arquivos de Log

    Encontram-se em /var/log

    Registram tudo o que acontecem com o kernel,com os daemons e utilitrios do sistema.

    Kernel: o ncleo do sistema operacional. Controla todo o hardwaredo computador. a interface entre os programas e o hardware,

    permitindo a execuo dos processos e compartilhamento da

    memria.

    Daemons: programa que no precisa do controle do usurio pararodar no sistema. Funciona em background, ou seja, em segundo

    plano, junto com o sistema. Normalmente, so iniciados no

    processo de boot e lidam com requisies diversas, como de rede,

    servios e atividades do hardware.

    ).

  • Firewall

    Programa que aplica uma poltica de seguranaimpedindo a recepo de dados no autorizados

    em uma rede/computador.

    Atua como uma defesa, controlando o acesso aosistema por meio de regras e a filtragem de dados.

    O Iptables o firewall do Linux.

  • Firewall - Iptables

    Regras:

    Comandos passados realizar uma determinada ao (como

    bloquear ou deixar passar um pacote) de acordo com o

    endereo/porta de origem/destino, interface de origem/destino, etc.

    So armazenadas dentro dos chains e processadas na ordem que

    so inseridas.

    Como as regras se perdem a cada vez que o computador for

    reiniciado, devem-se ser gravadas em um arquivo para serem

    carregadas a cada inicializao.

    Um exemplo de regra:

    iptables -A INPUT -s 192.168.102.15 -j DROP

  • Firewall - Iptables

    Chains:

    Locais onde as regras so armazenadas para operao

    do firewall.

    Existem dois tipos de chains: os embutidos (como os

    chains INPUT, OUTPUT e FORWARD) e os criados pelo

    usurio. Os nomes dos chains embutidos devem ser

    especificados sempre em maisculas (chain input

    completamente diferente de INPUT).

  • Firewall - Iptables

    Tabela:

    Locais usados para armazenar os chains e conjunto de

    regras com uma determinada caracterstica em comum.

    As tabelas podem ser referenciadas com a opo -t

    tabela. Para facilitar o funcionamento e a gerncia, o

    iptables divide as ACLs em tabelas, cada qual com um

    funo especfica.

    Existem 3 tabelas disponveis no iptables: filter, nat e

    mangle.

    Daremos enfoque tabela filter.

  • Firewall - Iptables

    Tabela filter

    Tabela padro do Iptables, composto por 3 chains:

    INPUT - Consultado para dados que chegam mquina.

    OUTPUT - Consultado para dados que saem da mquina.

    FORWARD - Consultado para dados que so redirecionados

    para outra mquina

  • Firewall IPTABLES

    Introduo

    O Iptables um firewall em nvel de pacotes efunciona baseado no endereo/porta de

    origem/destino do pacote, prioridade, etc. Nvel de pacotes: muito utilizado em redes pequenas ou de

    porte mdio. Por meio de um conjunto de regras estabelecidas,

    determina que endereos IPs e dados podem estabelecer

    comunicao e/ou transmitir/receber dados. Sendo assim, pode

    negar o pacote (DROP) ou deix-lo passar (ACCEPT).

    Nvel de aplicao usado em computadores servidores e nopermite comunicao direta entre a rede e a Internet. Analisam o

    contedo do pacote para tomar suas decises de filtragem.

  • Firewall IPTABLES

    Introduo

    Funciona atravs da comparao de regras para saberse um pacote tem ou no permisso para passar.

    Em firewalls mais restritivos, o pacote bloqueado eregistrado para que o administrador do sistema tenha

    conhecimento sobre o que est acontecendo em seu

    sistema.

    Totalmente implementado no kernel do sistemaoperacional, garantindo maior nvel de segurana na

    filtragem.

  • Firewall IPTABLES

    Introduo

    Pode ser usado para modificar e monitorar otrfego da rede, fazer NAT (masquerading, source

    nat, destination nat), redirecionamento de pacotes,

    marcao de pacotes, modificar a prioridade de

    pacotes que chegam/saem do seu sistema,

    contagem de bytes, dividir trfego entre mquinas,

    criar protees anti-spoofing, contra syn flood,

    DoS, etc.

  • Firewall IPTABLES

    Introduo

    IP Masquerading: permite usar o computador como um roteadorpara redes de pequeno porte.

    SNAT (Source Network Address Translation): reescreve a fonte e/ ou destino de pacotes IP quando passam por um routeador ou

    firewall.

    DNAT (Destination Network Address Translation): muda o IP dedestino de um pacote em rota para outro IP. Usada para publicar

    um servio a partir de uma rede interna de um IP acessvel ao

    pblico.

  • Firewall IPTABLES

    Introduo

    O trfego vindo de mquinas desconhecidas darede pode ser bloqueado/registrado atravs do uso

    de simples regras.

    O iptables garante grande flexibilidade namanipulao das regras de acesso ao sistema,

    precisando apenas conhecer quais interfaces o

    sistema possui, o que deseja bloquear, o que tem

    acesso garantido, quais servios devem estar

    acessveis para cada rede.

  • Firewall IPTABLES

    Introduo

    Para o bom funcionamento, necessrioconhecimentos bsicos de rede tcp/ip, roteamento

    e portas, para criar as regras que faro a

    segurana do sistema. A segurana depende do

    controle das regras que sero criadas.

    importante lembrar que as falhas humanas so

    garantia de mais de 95% de sucesso nas invases.

  • Firewall IPTABLES

    O que proteger?

    preciso ter conhecimento de quais serviosdevem ter acesso garantido a usurios externos e

    quais sero bloqueados a todas/determinadas

    mquinas recomendvel bloquear o acesso a

    todas portas menores que 1024, por executarem

    servios que rodam com privilgio de usurio root,

    e autorizar somente o acesso as portas que

    realmente deseja.

  • Firewall IPTABLES

    O que proteger?

    Servios com autenticao em texto plano epotencialmente inseguros como rlogin, telnet, ftp,

    NFS, DNS, LDAP, SMTP RCP, X-Window so

    servios que devem ser ter acesso garantido

    somente para mquinas/redes que voc confia.

    Estes servios podem ser usados para tentativa de

    acesso ao seu sistema e tambm como mscara

    de ataques a outros sistemas.

  • Firewall IPTABLES

    O que proteger?

    A configurao do firewall ajuda a impedir o enviode pacotes mesmo quando um servio estiver mal

    configurado. Se, por exemplo, uma mquina

    Windows da rede for infectada por um trojan, o

    firewall poder estar configurado para bloquear

    qualquer tentativa de conexo vinda da internet

    (cracker) para as mquinas da rede.

  • Firewall IPTABLES

    O que proteger?

    Deve-se saber quais mquinas tero acesso livre equais sero restritas.

    Deve-se saber quais servios devero terprioridade no processamento.

    Deve-se saber quais mquinas/redes NUNCAdevero ter acesso a certas/todas mquinas.

  • Firewall IPTABLES

    O que proteger?

    Deve-se saber o volume de trfego que o servidormanipular. Atravs disso, pode-se balancear o

    trfego entre outras mquinas, configurar

    protees contra DoS, syn flood, etc.

    Deve-se saber o que tem permisso de passar deuma rede para outra (em mquinas que atuam

    como roteadores/gateways de uma rede interna).

    Etc.

  • Firewall IPTABLES

    Prtica

    Para a manipulao das regras armazenadas nas suastabelas, o iptables fornece os seguintes comandos:

    -A : adiciona uma nova regra no final da lista de regras de uma dadatabela;

    -L : lista todas as regras de uma determinada tabela;

    -P : define a poltica padro uma tabela, ou seja a regra padro queser aplicada a um fluxo quando ele passar por todas as demais;

    -F : remove todas as regras de uma tabela sem alterar sua polticapadro;

    -N : cria nova nova chain na tabela especificada;

    -X : apaga todas as chains de uma determinada tabela;

  • Firewall IPTABLES

    Prtica

    Aes do iptables

    As aes permitem categorizar melhor as regras, fornecendo umtratamento mais detalhado sobre quais pacotes devero ser

    manipulados. As principais aes fornecidas pelo iptables so

    listadas abaixo:

    -p : especifica qual protocolo ser manipulado (TCP, UDP ICMP, etc..);

    -i : especifica a interface pela qual o pacote deve entrar (eth0, eth1, ppp0, ppp+);

    -o : especifica a interface pela qual o pacote deve sair (eth0, eth1, ppp0, ppp+);

    -s : informa a origem do pacote.

    sport : informa a porta a partir da qual o pacote ser enviado, porta de origem;

    -d : informa o destino do pacote;

    dport : informa a porta de destino do pacote;

    -j : informa o de deve ser feito com o pacote, ou seja o alvo da regra

  • Firewall IPTABLES

    Prtica

    Alvos da regras

    Aes referentes ao enquadramento dos fluxos por uma regra. ACCEPT : permite a entrada ou a sada ou o forward do pacote;

    DROP : descarta o pacote, sem comunicar a origem que o mesmo foi rejeitado,ideal para ocultar a existncia do firewall;

    REJECT : descarta o pacote informando a origem que ele foi rejeitado pelodestino;

    LOG : registra o pacote em um arquivo de log que pode ser especificado atravsdos nveis de log do sistema, mas por default as mensagens so enviadas para o

    arquivo /var/log/messages;

    SNAT : altera o endereo de origem do pacote que atendeu as caractersticasespecificadas;

    DNAT : altera o endereo de destino do pacote;

    REDIRECT : redireciona o pacote para uma porta diferente.

  • Firewall IPTABLES

    Prtica

    Adicionando regras - A

    Como exemplo vamos criar uma regra que bloqueia o acesso a nosso prpria mquina

    (127.0.0.1 - loopback). Primeiro daremos um ping para verificar seu funcionamento:

    #ping 127.0.0.1

    PING 127.0.0.1 (127.0.0.1): 56 data bytes

    64 bytes from 127.0.0.1: icmp_seq=0 ttl=255 time=0.6 ms

    64 bytes from 127.0.0.1: icmp_seq=1 ttl=255 time=0.5 ms

    --- 127.0.0.1 ping statistics ---

    2 packets transmitted, 2 packets received, 0% packet loss

    A mquina responde! Agora vamos incluir uma regra no chain INPUT (-A INPUT) que

    bloqueie (-j DROP) qualquer acesso indo (com destino) ao endereo 127.0.0.1 (-d

    127.0.0.1):

    iptables -t filter -A INPUT -d 127.0.0.1 -j DROP

    Agora verificamos um novo ping.

  • Firewall IPTABLES

    Prtica

    #ping 127.0.0.1

    PING 127.0.0.1 (127.0.0.1): 56 data bytes

    --- 127.0.0.1 ping statistics ---

    2 packets transmitted, 0 packets received, 100% packet loss

    Desta vez, a mquina 127.0.0.1 no respondeu, pois todos os pacotes com o destino

    127.0.0.1 (-d 127.0.0.1) so rejeitados (-j DROP). A opo -A usada para adicionar

    novas regras no final do chain. Alm de -j DROP que serve para rejeitar os pacotes,

    podemos tambm usar -j ACCEPT para aceitar pacotes. A opo -j chamada de alvo da

    regra, pois define o destino do pacote que atravessa a regra.

    Voc est na base de um sistema de firewall!

  • Firewall IPTABLES

    Prtica

    Listando regras - L

    A seguinte sintaxe usada para listar as regras criadas:

    iptables [-t tabela] -L [chain] [opes]

    Onde:

    tabela uma das tabelas usadas pelo iptables. Se a tabela no for especificada, a tabela

    filter ser usada como padro.

    chain Um dos chains disponveis na tabela acima ou criado pelo usurio. Caso o chain

    no seja especificado, todos os chains da tabela sero mostrados.

    opes As seguintes opes podem ser usadas para listar o contedo de chains:

    -v Exibe mais detalhes sobre as regras criadas nos chains.

    -n Exibe endereos de mquinas/portas como nmeros ao invs de tentar resoluo DNS.

    -x Exibe nmeros exatos ao invs de nmeros redondos. Tambm mostra a faixa de

    portas de uma regra de firewall.

    --line-numbers Exibe o nmero da posio da regra na primeira coluna da listagem.

  • Firewall IPTABLES

    Prtica

    Listando regras - L

    Para listar a regra criada anteriormente usamos o comando:

    #iptables -t filter -L INPUT

    Chain INPUT (policy ACCEPT)

    target prot opt source destination

    DROP all -- anywhere localhost

  • Firewall IPTABLES

    Prtica

    Listando regras - L

    #iptables -L INPUT -n

    Chain INPUT (policy ACCEPT)

    target prot opt source destination

    DROP all -- 0.0.0.0/0 127.0.0.1

    #iptables -L INPUT -n --line-numbers

    Chain INPUT (policy ACCEPT)

    num target prot opt source destination

    1 DROP all -- 0.0.0.0/0 127.0.0.1

    #iptables -L INPUT -n -v

    Chain INPUT (policy ACCEPT 78 packets, 5820 bytes)

    pkts bytes target prot opt in out source destination

    2 194 DROP icmp -- * * 0.0.0.0/0 127.0.0.1

  • Firewall IPTABLES

    Prtica

    Apagando uma regra D

    Usamos a mesma sintaxe para criar a regra no chain, mas trocamos -A por -D:

    iptables -t filter -D INPUT -d 127.0.0.1 -j DROP

    Ento, a regra correspondente no chain INPUT ser automaticamente apagada.

    Caso o chain possua vrias regras semelhantes, somente a primeira ser

    apagada.

  • Firewall IPTABLES

    Prtica

    Inserindo uma regra I

    Precisamos que o trfego vindo de 192.168.1.15 no seja rejeitado pelo nosso

    firewall. No podemos adicionar uma nova regra (-A) pois esta seria includa no

    final do chain e o trfego seria rejeitado pela primeira regra (nunca atingindo a

    segunda). A soluo inserir a nova regra antes da regra que bloqueia todo o

    trfego ao endereo 127.0.0.1 na posio 1:

    iptables -t filter -I INPUT 1 -s 192.168.1.15 -d 127.0.0.1 -j ACCEPT

    Aps este comando, temos a regra inserida na primeira posio do chain

    (repare no nmero 1 aps INPUT) e a antiga regra nmero 1 passa a ser a

    nmero 2. Desta forma a regra acima ser consultada, se a mquina de origem

    for 192.168.1.15 ento o trfego estar garantido, caso contrrio o trfego com

    o destino 127.0.0.1 ser bloqueado na regra seguinte.

  • Firewall IPTABLES

    Prtica

    Substituindo uma regra - R

    Aps criar nossa regra, percebemos que a nossa inteno era somente bloquear os pings

    com o destino 127.0.0.1 (pacotes ICMP) e no havia necessidade de bloquear todo o

    trfego da mquina. Existem duas alternativas: apagar a regra e inserir uma nova no lugar

    ou modificar diretamente a regra j criada sem afetar outras regras existentes e mantendo

    a sua ordem no chain (isso muito importante). Use o seguinte comando:

    iptables -R INPUT 2 -d 127.0.0.1 -p icmp -j DROP

    O nmero 2 o nmero da regra que ser substituda no chain INPUT e deve ser

    especificado. O comando acima substituir a regra 2 do chain INPUT (-R INPUT 2)

    bloqueando (-j DROP) qualquer pacote icmp (-p icmp) com o destino 127.0.0.1 (-d

    127.0.0.1).

  • Firewall IPTABLES

    Prtica

    ICMP - Internet Control Message Protocol - um protocolo que faz parte dapilha TCP/IP, enquadrando-se na camada de rede (nvel 3), a mesma

    camada do protocolo IP - Internet Protocol. O uso mais comum feito pelos

    utilitrios ping e traceroute. O ping evia pacotes ICMP para verificar se um

    determinado host est disponvel na rede. O traceroute faz uso do envio de

    diversos pacotes UDP ou ICMP e, atravs de um pequeno truque, determina

    a rota seguida para alcanar um host.

  • Firewall IPTABLES

    Prtica

    Criando um nova chain N

    O tamanho mximo de um nome de chain de 31 caracteres e podem conter tanto letras

    maisculas quanto minsculas.

    iptables [-t tabela] [-N novachain]

    Para criar o chain internet (que pode ser usado para agrupar as regras de internet)

    usamos o seguinte comando:

    iptables -t filter -N internet

  • Firewall IPTABLES

    Prtica

    Renomeando um chain criado pelo usurio E

    Se, por algum motivo, precisar renomear um chain criado por voc na tabela

    filter, nat ou mangle, poder usar a opo -E do iptables:

    iptables -t filter -E chain-antigo novo-chain

    No possvel renomear os chains defaults do iptables.

  • Firewall IPTABLES

    Prtica

    Limpando as regras de um chain - F

    Para limpar todas as regras de um chain, use a seguinte sintaxe:

    iptables [-t tabela] [-F chain]

    Onde:

    tabela Tabela que contm o chain que desejamos zerar.

    chain Chain que desejamos limpar. Caso um chain no seja especificado, todos

    os chains da tabela sero limpos.

    iptables -t filter -F INPUT

    iptables -t filter -F

  • Firewall IPTABLES

    Prtica

    Apagando um chain criado pelo usurio - X

    Para apagarmos um chain criado pelo usurio, usamos a seguinte sintaxe:

    iptables [-t tabela] [-X chain]

    Onde:

    tabela Nome da tabela que contm o chain que desejamos excluir.

    chain Nome do chain que desejamos apagar. Caso no seja especificado, todos os chains

    definidos pelo usurio na tabela especificada sero excludos.

    OBS: Chains embutidos nas tabelas no podem ser apagados pelo usurio.

    iptables -t filter -X internet

    iptables -X

  • Firewall IPTABLES

    Prtica

    Especificando a poltica padro de um chain - P

    A poltica padro determina o que acontecer com um pacote quando ele chegar ao final

    das regras contidas em um chain. A poltica padro do iptables "ACCEPT" mas isto pode

    ser alterado com o comando:

    iptables [-t tabela] [-P chain] [ACCEPT/DROP]

    Onde:

    ACCEPT/DROP ACCEPT aceita os pacotes caso nenhuma regra do chain conferir e

    DROP rejeita os pacotes caso nenhuma regra do chain conferir

    iptables -t filter -P INPUT DROP

    As polticas de acesso PERMISSIVAS (ACCEPT) normalmente so usadas em conjunto

    com regras restritivas, onde tudo bloqueado e o que sobrar liberado. As polticas

    RESTRITIVAS (DROP) so usadas em conjunto com regras permissivas, onde tudo

    liberado e o que sobrar bloqueado pela poltica padro.

  • Firewall IPTABLES

    Prtica

    Especificando um endereo de origem/destino

    As opes -s (ou --src/--source) e -d (ou --dst/--destination) servem para especificar

    endereos de origem e destino respectivamente. Pode-se usar um endereo IP completo

    (como 192.168.1.1), um hostname, um endereo fqdn (www.debian.org) ou um par

    rede/mscara (como 200.200.200.0/255.255.255.0 ou 200.200.200.0/24).

    Caso um endereo/mscara no sejam especificados, assumido 0/0 como padro

    (todos as mquinas de todas as redes). A interpretao dos endereos de origem/destino

    dependem do chain que est sendo especificado (como INPUT e OUTPUT por exemplo).

    OBS: Caso seja especificado um endereo fqdn e este resolver mais de um endereo IP,

    sero criadas vrias regras, cada uma se aplicando a este endereo IP especfico.

    recomendvel sempre que possvel a especificao de endereos IP's nas regras, pois

    alm de serem muito rpidos (no precisam de resoluo DNS), so mais seguros para

    evitar que firewall seja enganado por um ataque de IP spoofing.

  • Firewall IPTABLES

    Prtica

    # Bloqueia o trfego vindo da rede 200.200.200.*:

    iptables -A INPUT -s 200.200.200.0/24 -j DROP

    # Bloqueia conexes com o destino 10.1.2.3:

    iptables -A OUTPUT -d 10.1.2.3 -j DROP

    # Bloqueia o trfego da mquina www.meusite.com a rede 210.1.1.1

    iptables -A INPUT -s www.meusite.com -d 210.21.1.1 -j DROP

  • Firewall IPTABLES

    Prtica

    Especificando um protocolo

    A opo -p (ou --protocol) usada para especificar protocolos no iptables.

    Podem ser especificados os protocolos tcp, udp e icmp. Por exemplo, para

    rejeitar todos os pacotes UDP vindos de 200.200.200.200:

    iptables -A INPUT -s 200.200.200.200 -p udp -j DROP

  • Firewall IPTABLES

    Prtica

    Especificando portas de origem/destino

    As portas de origem/destino devem ser especificadas aps o protocolo e podem ser

    precedidas por uma das seguintes opes:

    --source-port ou --sport - Especifica uma porta ou faixa de portas de origem.

    --destination-port ou --dport - Especifica uma porta ou faixa de portas de destino.

    Uma faixa de portas pode ser especificada atravs de PortaOrigem:PortaDestino

    # Bloqueia qualquer pacote indo para 200.1.1.1 na faixa de portas 0 a 1023

    iptables -A OUTPUT -d 200.1.1.1 -p tcp --dport :1023 -j DROP

    Caso a PortaOrigem de uma faixa de portas no seja especificada, 0 assumida

    como padro.

    Caso a PortaDestino no seja especificada, 65535 assumida como padro.

  • Firewall IPTABLES

    Prtica

    A tabela nat (Network Address Translation) - fazendo nat

    A tabela nat serve para controlar a traduo dos endereos que

    atravessam o cdigo de roteamento da mquina, ou seja, responsvel

    pelo controle dos pacotes que passam pelo host, cuja origem ou destino

    no o mesmo. Existem 3 chains na tabela nat: PREROUTING,

    OUTPUT e POSTROUTING .

    A traduo de endereos tem inmeras utilidades, uma delas o

    Masquerading, onde mquinas de uma rede interna podem acessar a

    Internet atravs de uma mquina Linux. Nenhuma mquina da Internet

    poder ter acesso direto as mquinas da rede interna via SNAT .

  • Firewall IPTABLES

    Prtica

    Para ligar a rede na Internet existem duas opes:

    Voc possui uma conexo que lhe oferece um endereo IP dinmico(a cada conexo dado um endereo IP - como uma conexo PPP),

    ento precisamos do IP masquerading.

    Voc tem uma conexo que lhe oferece um endereo IP permanente(ADSL, por exemplo), ento precisamos do SNAT.

    Vamos dar enfoque a criao rpida de uma conexo IP masquerading,

    entendendo a traduo de endereos no iptables.

  • Firewall IPTABLES

    Prtica

    Fazendo IP masquerading

    O kernel dever ter suporte ao iptables. Com os dois comandos abaixo,

    habilitamos o masquerading para todas as mquinas da rede

    192.168.1.*:

    iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE

    Aps definir as regras de NAT, execute o comando seguinte para

    habilitar o suporte a redirecionamento de pacotes no kernel.

    echo "1" >/proc/sys/net/ipv4/ip_forward

  • Firewall IPTABLES

    Prtica

    A configurao do servidor Linux est completa. Agora, os

    clientes da rede precisaro ser configurados para usar o

    endereo IP do servidor Linux como gateway.

    recomendvel instalar um servidor proxy e DNS na

    mquina Linux para acelerar o desempenho das

    requisies/ resoluo de nomes das mquinas em rede.

  • Firewall IPTABLES

    Prtica

    Fazendo SNAT

    SNAT (source nat - nat no endereo de origem) consiste em modificar o

    endereo de origem das mquinas clientes antes dos pacotes serem

    enviados. A mquina roteadora inteligente o bastante para lembrar

    dos pacotes modificados e reescrever os endereos assim que obter a

    resposta da mquina de destino, direcionando os pacotes ao destino

    correto. necessrio especificar SNAT como alvo (-j SNAT) quando

    desejar que as mquinas de da rede interna tenha acesso a Internet

    atravs do IP fixo da mquina Linux. O parmetro --to IP:portas deve ser

    usado aps o alvo SNAT. Ele serve para especificar um endereo IP,

    faixa de endereos e opcionalmente uma porta ou faixa de portas que

    ser substituda.

  • Firewall IPTABLES

    Prtica

    Toda operao de SNAT feita no chain POSTROUTING.

    Modifica o endereo IP dos pacotes vindos da mquina 192.168.1.2 da

    rede interna, que tem como destino a interface eth1 para

    200.200.217.40 (que o nosso endereo IP da interface ligada a

    Internet).

    iptables -t nat -A POSTROUTING -s 192.168.1.2 -o eth1 -j SNAT --to

    200.200.217.40

  • Firewall IPTABLES

    Prtica

    Os pacotes indo para a Internet (a conexo feita via eth1, a interface externa)

    vindo do endereo 192.168.1.2, so substitudos por 200.241.200.40 e enviados

    para fora. Quando a resposta a requisio retornada, a mquina com iptables

    recebe os pacotes e faz a operao inversa, modificando o endereo

    200.241.200.40 novamente para 192.168.1.2 e enviando a resposta para a

    mquina da rede interna .

    Tambm possvel especificar faixas de endereos e portas que sero

    substitudas.

    Modifica o endereo IP de origem de todas as mquinas da rede 192.168.1.0/24

    que tem o destino a interface eth0 para 200.241.200.40 a 200.241.200.50. O

    endereo IP selecionado escolhido de acordo com o ltimo IP alocado.

    iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to

    200.2.217.40-200.2.217.50

  • Firewall IPTABLES

    Prtica

    Idntico ao anterior, mas faz somente substituies na faixa de portas de origem

    de 1 a 1023.

    iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to

    200.2.217.40-200.2.217.50:1-1023

    Faz o mapeamento para a faixa de portas 200.2.217.40 a 200.2.217.50 e de

    200.2.217.70 a 200.2.217.73.

    iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to

    200.2.217.40-200.2.217.50 --to 200.2.217.70-200.2.217.73

    OBS: Se por algum motivo no for possvel mapear uma conexo NAT, ela ser

    derrubada.

  • Firewall IPTABLES

    Prtica

    Fazendo DNAT

    DNAT (Destination nat - nat no endereo de destino) consiste em modificar o

    endereo de destino das mquinas clientes. O destination nat muito usado

    para fazer redirecionamento de pacotes, proxyes transparentes e

    balanceamento de carga. Toda operao de DNAT feita no chain

    PREROUTING.

    Modifica o endereo IP destino dos pacotes de 200.200.217.40 vindo da

    interface para 192.168.1.2.

    iptables -t nat -A PREROUTING -s 200.200.217.40 -i eth0 -j DNAT --to

    192.168.1.2

  • Firewall IPTABLES

    Prtica

    Tambm possvel especificar faixas de endereos e portas que sero substitudas no

    DNAT. Modifica o endereo IP de destino do trfego vindos da interface 192.168.1.0/24

    para um IP de 200.241.200.40 a 200.241.200.50. Este um excelente mtodo para fazer

    o balanceamento de carga entre servidores. O endereo IP selecionado escolhido de

    acordo com o ltimo IP alocado.

    iptables -t nat -A PREROUTING -i eth0 -s 192.168.1.0/24 -j DNAT --to 200.2.217.40-

    200.2.217.50

    Idntico ao anterior, mas faz somente substituies na faixa de portas de destino de 1024

    a 5000.

    iptables -t nat -A PREROUTING -i eth0 -s 192.168.1.0/24 -j DNAT --to 200.2.217.40-

    200.2.217.50:1024:5000

    No se esquea de conferir se o ip_forward est ajustado para 1: echo "1" >

    /proc/sys/net/ipv4/ip_forward.

  • Exemplos

    Scripts de Firewall

    Firewall para bloquear todo o fluxo de dados, s liberando ofluxo na interface lo

    # definindo as regras padro

    iptables -P INPUT DROP

    iptables -P OUTPUT DROP

    iptables -P FORWARD DROP

    # liberando a interface lo

    iptables -A INPUT -i lo -j ACCEPT

    iptables -A OUTPUT -o lo -j ACCEPT

  • Exemplos

    Scripts de Firewall

    Firewall para liberar o acesso servio http, para acessoexterno ( eth1) e acesso pela intranet (eth0) na porta 8080.

    # definindo as regras padro

    iptables -P INPUT DROP

    iptables -P OUTPUT ACCEPT

    iptables -P FORWARD DROP

    # definindo as regras de filtragem ao HTTP e HTTPS

    iptables -A INPUT -p tcp --dport 80 -i eth1 -j ACCEPT

    iptables -A INPUT -p tcp --dport 443 -i eth0 -j ACCEPT

  • Exemplos

    Scripts de Firewall

    Firewall para um servidor que hospeda os servios: http (80), https(443), imap (143), pop3 (110), smtp (25), ftp (21), ssh (22). Todos os

    servios podem ser acessados pela intranet (eth1) e os nicos servios

    que podem ser acessados pela internet (eth0) so o http e o https.

    # definindo as regras padro

    iptables -P INPUT DROP

    iptables -P OUTPUT ACCEPT

    iptables -P FORWARD DROP

    # liberando acesso pela internet (eth0)

    iptables -A INPUT -p tcp --dport 80 -i eth0 -j ACCEPT

    iptables -A INPUT -p tcp --dport 443 -i eth0 -j ACCEPT

  • Exemplos

    Scripts de Firewall

    # liberando acesso pela internet (eth1)

    iptables -A INPUT -p tcp --dport 80 -i eth1 -j ACCEPT

    iptables -A INPUT -p tcp --dport 443 -i eth1 -j ACCEPT

    iptables -A INPUT -p tcp --dport 143 -i eth1 -j ACCEPT

    iptables -A INPUT -p tcp --dport 110 -i eth1 -j ACCEPT

    iptables -A INPUT -p tcp --dport 25 -i eth1 -j ACCEPT

    iptables -A INPUT -p tcp --dport 21 -i eth1 -j ACCEPT

    iptables -A INPUT -p tcp --dport 22 -i eth1 -j ACCEPT

  • Exemplos

    Scripts de Firewall

    Firewall para um servidor que proiba qualquer pacote oriundo da LAN192.168.254.0/24 e possa ser direcionado ao site www.topfotos.com;permitir a entrada de pacotes oriundos do site www.orkut.com; todosos pacotes oriundos da interface eth1 do firewall devem serredirecionados para o computador 192.168.254.254; descarte todos os

    pacotes oriundos do ip 200.255.96.171 e destinado ao IP

    192.168.254.7; todos os pacotes destinados porta 23 devem ser

    registrados e posteriormente descartados.

    # poltica padro

    iptables -P INPUT DROP

    iptables -P OUTPUT ACCEPT

    iptables -P FORWARD DROP

  • Exemplos

    Scripts de Firewall

    # liberando o trfego na interface lo

    iptables -A INPUT -i lo -j ACCEPT

    iptables -A OUTPUT -o lo -j ACCEPT

    # pacotes que entram no firewall

    iptables -A INPUT -p tcp -dport 23 -j LOG [firewall] acesso ao servio de telnet

    iptables -A INPUT -p tcp -dport 23 -j DROP

    # regras de forward

    iptables -A FORWARD -s 192.168.254.0/24 -d www.topfotos.com -j DROP

    iptables -A FORWARD -d 192.168.254.0/24 -s www.orkut.com -j ACCEPT

    iptables -A FORWARD -s 200.255.96.171 -d 192.168.254.7 -j DROP

    iptables -A FORWARD -i ! eth1 -j DROP

    iptables -A FORWARD -o ! eth0 -j DROP

  • Exemplos

    Scripts de Firewall

    Firewall para compartilhamento do Acesso a Internet

    # libera forward no kernel

    echo 1 > /proc/sys/net/ipv4/ip_forward

    # Poltica padro

    iptables -P INPUT DROP

    iptables -P OUTPUT ACCEPT

    iptables -P FORWARD DROP

    # liberando acesso a interface lo

    iptables -A INPUT -i lo -J ACCEPT

  • Exemplos

    Scripts de Firewall

    # libera a entrada de conexes iniciadas pela mquina

    iptables -A INPUT -m state -state ESTABLISHED,RELATED -j ACCEPT

    # bloqueia entrada na rede de conexes invlidas

    iptables -A FORWARD -m state -state NEW,INVALID -j DROP

    # hablitando o macascaramento com ip dinmico

    iptables -t nat -A POSTROUTING -s 192.168.254.0/24 -o eth0 -j MASQUERADE

    # libera a entrada de conexes iniciadas pela rede

    iptables -A FORWARD -o eth0 -m state -state ESTABLISHED,RELATED -jACCEPT

    # habilita o forward vinda da rede interna

    iptables -A FORWARD -i eth1 -s 192.168.254.0/24 -J ACCEPT