Você está na página 1de 33

Iptables

24 de novembro de 2006

Sumrio
I Sobre essa apostila 3 5 10
11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 12 12 12 12 12 12 13 13 13 14 14 14 15 15 17 17 18 19 20 20 20 20 22 23

II Informaes Bsicas III Iptables


1 O que o Iptables 2 Plano de ensino 2.1 Objetivo . . . 2.2 Pblico Alvo . 2.3 Pr-requisitos 2.4 Descrio . . 2.5 Metodologia . 2.6 Cronograma 2.7 Programa . . 2.8 Avaliao . . 2.9 Bibliograa .

3 Histrico 3.1 Introduo ao Netlter/Iptables . 3.1.1 Firewall Filtro de Pacotes 3.1.2 Firewall NAT . . . . . . . 3.1.3 Netlter/Iptables . . . . .

4 Tabelas 4.1 Tabela Filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 Tabela NAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3 Tabela Mangle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Sintaxe de Uso 5.1 Antes de comear . . . . 5.2 Sintaxe de Uso . . . . . . 5.2.1 Comandos . . . . 5.3 Especicao das regras 5.4 Alvos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF 25 25 25 25 26 26 27 27 27 28 28 29 29 29 30 30 31 32

6 Aplicaes da tabela nat 6.1 Consideraes Iniciais . . . . . . . . . 6.2 SNAT . . . . . . . . . . . . . . . . . . 6.3 DNAT . . . . . . . . . . . . . . . . . . 6.4 Proxy Transparente . . . . . . . . . . . 6.5 Compartilhamento de internet via NAT 7 Aplicaes da tabela mangle 7.1 TOS . . . . . . . . . . . . . 7.2 Aplicando TOS . . . . . . . 7.3 TOS no trfego de entrada 7.4 TOS no trfego de sada . . 8 Modulos 8.1 Limit . . 8.2 State . . 8.3 Mac . . 8.4 Multiport 8.5 String . 8.6 Owner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

Parte I

Sobre essa apostila

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

Contedo
O contedo dessa apostila fruto da compilao de diversos materiais livres publicados na internet, disponveis em diversos sites ou originalmente produzido no CDTC em http://www.cdtc.org.br. O formato original deste material bem como sua atualizao est disponvel dentro da licena GNU Free Documentation License, cujo teor integral encontra-se aqui reproduzido na seo de mesmo nome, tendo inclusive uma verso traduzida (no ocial). A reviso e alterao vem sendo realizada pelo CDTC (suporte@cdtc.org.br), desde outubro de 2006. Criticas e sugestes construtivas so bem-vindas a qualquer tempo.

Autores
A autoria deste contedo, atividades e avaliaes de responsabilidade de Waldemar Silva Junior (waldemar@cdtc.org.br) . O texto original faz parte do projeto Centro de Difuso de Tecnolgia e Conhecimento, que vem sendo realizado pelo ITI em conjunto com outros parceiros institucionais, atuando em conjunto com as universidades federais brasileiras que tem produzido e utilizado Software Livre, apoiando inclusive a comunidade Free Software junto a outras entidades no pas. Informaes adicionais podem ser obtidas atrves do email ouvidoria@cdtc.org.br, ou da home page da entidade, atrves da URL http://www.cdtc.org.br.

Garantias
O material contido nesta apostila isento de garantias e o seu uso de inteira responsabilidade do usurio/leitor. Os autores, bem como o ITI e seus parceiros, no se responsabilizam direta ou indiretamente por qualquer prejuzo oriundo da utilizao do material aqui contido.

Licena
Copyright 2006,Waldemar Silva Junior (waldemar@cdtc.org.br) . Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with the Invariant Chapter being SOBRE ESSA APOSTILA. A copy of the license is included in the section entitled GNU Free Documentation License.

Parte II

Informaes Bsicas

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

Sobre o CDTC
Objetivo Geral O Projeto CDTC visa a promoo e o desenvolvimento de aes que incentivem a disseminao de solues que utilizem padres abertos e no proprietrios de tecnologia, em proveito do desenvolvimento social, cultural, poltico, tecnolgico e econmico da sociedade brasileira. Objetivo Especco Auxiliar o Governo Federal na implantao do plano nacional de software no-proprietrio e de cdigo fonte aberto, identicando e mobilizando grupos de formadores de opinio dentre os servidores pblicos e agentes polticos da Unio Federal, estimulando e incentivando o mercado nacional a adotar novos modelos de negcio da tecnologia da informao e de novos negcios de comunicao com base em software no-proprietrio e de cdigo fonte aberto, oferecendo treinamento especco para tcnicos, prossionais de suporte e funcionrios pblicos usurios, criando grupos de funcionrios pblicos que iro treinar outros funcionrios pblicos e atuar como incentivadores e defensores de produtos de software no proprietrios e cdigo fonte aberto, oferecendo contedo tcnico on-line para servios de suporte, ferramentas para desenvolvimento de produtos de software no proprietrios e de seu cdigo fonte livre, articulando redes de terceiros (dentro e fora do governo) fornecedoras de educao, pesquisa, desenvolvimento e teste de produtos de software livre.

Guia do aluno
Neste guia, voc ter reunidas uma srie de informaes importantes para que voc comece seu curso. So elas: Licenas para cpia de material disponvel Os 10 mandamentos do aluno de Educao a Distncia Como participar dos foruns e da wikipdia Primeiros passos muito importante que voc entre em contato com TODAS estas informaes, seguindo o roteiro acima.

Licena
Copyright 2006, Waldemar Silva Junior (waldemar@cdtc.org.br) . dada permisso para copiar, distribuir e/ou modicar este documento sob os termos da Licena de Documentao Livre GNU, Verso 1.1 ou qualquer verso posterior 6

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

pblicada pela Free Software Foundation; com o Capitulo Invariante SOBRE ESSA APOSTILA. Uma cpia da licena est inclusa na seo entitulada "Licena de Documentao Livre GNU".

Os 10 mandamentos do aluno de educao online


1. Acesso Internet: ter endereo eletrnico, um provedor e um equipamento adequado pr-requisito para a participao nos cursos a distncia. 2. Habilidade e disposio para operar programas: ter conhecimentos bsicos de Informtica necessrio para poder executar as tarefas. 3. Vontade para aprender colaborativamente: interagir, ser participativo no ensino a distncia conta muitos pontos, pois ir colaborar para o processo ensino-aprendizagem pessoal, dos colegas e dos professores. 4. Comportamentos compatveis com a etiqueta: mostrar-se interessado em conhecer seus colegas de turma respeitando-os e fazendo ser respeitado pelo mesmo. 5. Organizao pessoal: planejar e organizar tudo fundamental para facilitar a sua reviso e a sua recuperao de materiais. 6. Vontade para realizar as atividades no tempo correto: anotar todas as suas obrigaes e realiz-las em tempo real. 7. Curiosidade e abertura para inovaes: aceitar novas idias e inovar sempre. 8. Flexibilidade e adaptao: requisitos necessrio mudana tecnolgica, aprendizagens e descobertas. 9. Objetividade em sua comunicao: comunicar-se de forma clara, breve e transparente ponto - chave na comunicao pela Internet. 10. Responsabilidade: ser responsvel por seu prprio aprendizado. O ambiente virtual no controla a sua dedicao, mas reete os resultados do seu esforo e da sua colaborao.

Como participar dos fruns e Wikipdia


Voc tem um problema e precisa de ajuda? Podemos te ajudar de 2 formas: A primeira o uso dos fruns de notcias e de dvidas gerais que se distinguem pelo uso: . O frum de notcias tem por objetivo disponibilizar um meio de acesso rpido a informaes que sejam pertinentes ao curso (avisos, notcias). As mensagens postadas nele so enviadas a todos participantes. Assim, se o monitor ou algum outro participante tiver uma informao que interesse ao grupo, favor post-la aqui. Porm, se o que voc deseja resolver alguma dvida ou discutir algum tpico especco do curso. recomendado que voc faa uso do Forum de dvidas gerais que lhe d recursos mais 7

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

efetivos para esta prtica. . O frum de dvidas gerais tem por objetivo disponibilizar um meio fcil, rpido e interativo para solucionar suas dvidas e trocar experincias. As mensagens postadas nele so enviadas a todos participantes do curso. Assim, ca muito mais fcil obter respostas, j que todos podem ajudar. Se voc receber uma mensagem com algum tpico que saiba responder, no se preocupe com a formalizao ou a gramtica. Responda! E no se esquea de que antes de abrir um novo tpico recomendvel ver se a sua pergunta j foi feita por outro participante. A segunda forma se d pelas Wikis: . Uma wiki uma pgina web que pode ser editada colaborativamente, ou seja, qualquer participante pode inserir, editar, apagar textos. As verses antigas vo sendo arquivadas e podem ser recuperadas a qualquer momento que um dos participantes o desejar. Assim, ela oferece um timo suporte a processos de aprendizagem colaborativa. A maior wiki na web o site "Wikipdia", uma experincia grandiosa de construo de uma enciclopdia de forma colaborativa, por pessoas de todas as partes do mundo. Acesse-a em portugus pelos links: Pgina principal da Wiki - http://pt.wikipedia.org/wiki/ Agradecemos antecipadamente a sua colaborao com a aprendizagem do grupo!

Primeiros Passos
Para uma melhor aprendizagem recomendvel que voc siga os seguintes passos: Ler o Plano de Ensino e entender a que seu curso se dispe a ensinar; Ler a Ambientao do Moodle para aprender a navegar neste ambiente e se utilizar das ferramentas bsicas do mesmo; Entrar nas lies seguindo a seqncia descrita no Plano de Ensino; Qualquer dvida, reporte ao Frum de Dvidas Gerais.

Perl do Tutor
Segue-se uma descrio do tutor ideal, baseada no feedback de alunos e de tutores. O tutor ideal um modelo de excelncia: consistente, justo e prossional nos respectivos valores e atitudes, incentiva mas honesto, imparcial, amvel, positivo, respeitador, aceita as idias dos estudantes, paciente, pessoal, tolerante, apreciativo, compreensivo e pronto a ajudar. A classicao por um tutor desta natureza proporciona o melhor feedback possvel, crucial, e, para a maior parte dos alunos, constitui o ponto central do processo de aprendizagem. Este tutor ou instrutor: fornece explicaes claras acerca do que ele espera, e do estilo de classicao que ir utilizar;

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

gosta que lhe faam perguntas adicionais; identica as nossas falhas, mas corrige-as amavelmente, diz um estudante, e explica porque motivo a classicao foi ou no foi atribuda; tece comentrios completos e construtivos, mas de forma agradvel (em contraste com um reparo de um estudante: os comentrios deixam-nos com uma sensao de crtica, de ameaa e de nervossismo) d uma ajuda complementar para encorajar um estudante em diculdade; esclarece pontos que no foram entendidos, ou corretamente aprendidos anteriormente; ajuda o estudante a alcanar os seus objetivos; exvel quando necessrio; mostra um interesse genuno em motivar os alunos (mesmo os principiantes e, por isso, talvez numa fase menos interessante para o tutor); escreve todas as correes de forma legvel e com um nvel de pormenorizao adequado; acima de tudo, devolve os trabalhos rapidamente;

Parte III

Iptables

10

Captulo 1

O que o Iptables

O Iptables uma ferramenta a nvel de usurio que manipula tabelas do Netlter atravs de comparao de regras para saber se um pacote tem ou no permisso de passar, tambm pode ser utilizado para modicar e monitorar o trfego da rede, fazer NAT (Masquerading, Source NAT, Destination NAT), redirecionamento de pacotes que chegam e saem do sistema, contagem de bytes, dividir o trfego entre mquinas , criar protees e outras potencialidades.

O curso, com base na distribuio Debian, comea na Segunda-Feira e termina no Domingo. Todo o contedo do curso estar visvel somente a partir da data de incio. Para comear o curso voc deve ler o Guia do aluno a seguir.

11

Captulo 2

Plano de ensino
2.1 Objetivo
Qualicar tcnicos implementarem a ltragem de pacotes utilizando iptables em GNU/Linux.

2.2 Pblico Alvo


Tcnicos da rea de segurana de redes e administradores de rede em geral

2.3 Pr-requisitos
Os usurios devero ser, necessariamente, indicados por empresas pblicas e ter conhecimentos bsicos de redes TCP/IP.

2.4 Descrio
O curso de Iptables ser realizado na modalidade EAD e utilizar a plataforma Moodle como ferramenta de aprendizagem. Ele composto de um mdulo de aprendizado e um mdulo de avaliao que sero dados em uma semana. O material didtico estar disponvel on-line de acordo com as datas pr-estabelecidas no calendrio. A verso utilizada para o Iptables ser a 1.2.11.

2.5 Metodologia
O curso est dividido da seguinte maneira:

2.6 Cronograma
Durao 1 Semana Descrio do mdulo Introduo, Filtragem de pacotes

12

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

Todo o material est no formato de lio, e estar disponvel ao longo do curso. As lies podero ser acessadas quantas vezes forem necessrias. Aconselhamos a leitura de "Ambientao do Moodle", para que voc conhea o produto de Ensino a Distncia, evitando diculdades advindas do "desconhecimento"sobre o mesmo. Ao nal da semana do curso ser disponibilizada a prova referente ao mdulo estudado anteriormente que tambm conter perguntas sobre os textos indicados. Utilize o material e os exemplos disponibilizados para se preparar para prova. Os instrutores estaro a sua disposio ao longo de todo curso. Qualquer dvida deve ser disponibilizada no frum ou enviada por e-mail. Diariamente os monitores daro respostas e esclarecimentos.

2.7 Programa
Semana 1 Introduo Portas dos servios bem-conhecidos (well-known) O que um ltro de pacotes? Utilizando o Iptables Guia ultra rpido para ltragem de pacotes

2.8 Avaliao
Toda a avaliao ser feita on-line. instrumentos de avaliao: Avaliaes dentro das lies Avaliao ao nal do curso. Ao nal do curso, o participante far a avaliao nal referente a todo o contedo do curso. Para a aprovao e obteno do certicado o participante dever obter nota nal maior ou igual a 6.0 de acordo com a frmula abaixo:

Nota Final = ((ML x 7) + (AF x 3)) / 10 ML= Mdia aritmtica das lies. AF = Avaliao nal

2.9 Bibliograa
Site ofcial: http://www.netlter.org

13

Captulo 3

Histrico
O projeto Netlter/Iptables foi iniciado em 1998 por Rusty Russel, que tambm autor o projeto predecessor, Ipchains. Com o crescimento do projeto ele fundou o Netlter Core Team (ou simplesmente coreteam) em 1999. O software criado por eles foi licenciado sob os termos da GPL (GNU Public License) e incorporado ao kernel do Linux em maro do ano 2000. O Firewall um programa que como objetivo proteger a mquina contra acessos indesejados, trfego indesejado, proteger servios que estejam rodando na mquina e bloquear a passagem de coisas que voc no deseja receber (como conexes vindas da Internet para sua segura rede local, evitando acesso aos dados corporativos de uma empresa ou a seus dados pessoais). Antes do Iptables, o software predominante para a criao de rewalls no Linux era o Ipchains nos kernels do Linux da srie 2.2 e o Ipfwadm nos da srie 2.0, que por sua vez foi baseado no Ipfw dos BSDs.

3.1 Introduo ao Netlter/Iptables


3.1.1 Firewall Filtro de Pacotes
Esta classe de rewall responsvel por ltrar todo o trfego direcionado ao prprio host Firewall ou rede que este isola, tal como todos os pacotes emitidos por ele ou por sua rede. Ocorre mediante anlise de regras previamente inseridas pelo administrador do mesmo. O Firewall ltro de pacotes possui a capacidade de analisar cabealhos (headers) de pacotes enquanto os mesmos trafegam. Mediante esta anlise, que fruto de uma extensa comparao de regras previamente adicionadas, pode decidir o destino de um pacote como um todo. A ltragem pode, ento, deixar tal pacote trafegar livremente pela rede ou simplesmente parar sua trajetria, ignorando-o por completo. O mesmo , sem dvida, a classe mais utilizada de Firewall e no aplicar seus conceitos deixar as portas abertas e permitir a livre circulao de pacotes no conveis por sua rede. Um Firewall ltro de pacotes em sua rede lhe fornecer controle, segurana e vigilncia.

14

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

3.1.2 Firewall NAT


Um rewall aplicado classe NAT, a princpio, possui o objetivo de manipular a rota padro de pacotes que atravessam o kernel do host Firewall aplicando-lhes o que conhecemos por "traduo de endereamento". Isso lhe agrega diversas funcionalidades dentro deste resumido conceito como, por exemplo, a de manipular o endereamento de origem (SNAT) e destino (DNAT) dos pacotes, tal como realizar o que conhecemos como "mascaramento"(Masqueranding) sobre conexes PPP, entre outras potencialidades. Um rewall NAT pode, por exemplo, realizar o trabalho de um proxy de forma simples e eciente, independentemente do IP. Veremos estas potencialidades citadas, com mais detalhes, posteriormente.

3.1.3 Netlter/Iptables
O Netlter um conjunto de situaes de uxo de dados agredadas ao kernel do linux e dividido em tabelas. Sob uma tica mais prtica, podemos ver o Netlter como um grande banco de dados que contm em sua estrutura 3 tabelas padres: Filter, Nat e Mangle. Cada uma destas tabelas contm regras direcionadas a seus objetivos bsicos. A tabela Filter, por exemplo, guarda todas as regras aplicadas a um Firewall ltro de pacotes; a tabela Nat as regras direcionadas a um Firewall Nat e a Mangle funes mais complexas de tratamento de pacote como o TOS. Todas as tabelas possuem situaes de uxo (entrada, sada, redirecionamento, etc.) que lhes proporcionam a realizao de seus objetivos. O Iptables trata-se, na verdade, de uma ferramenta a nvel de usurio para a manipulao das tabelas do Netlter, embora o mesmo seja frequentemente confundido com um Firewall por si s. Ele uma verso mais robusta, completa e estvel que seus antecessores Ipfwadm e Ipchains, dos kernels do Linux 2.0 e 2.2 respectivamente. Como principais caractersticas, o Iptables (alm de realizar suas tarefas de forma veloz, ecaz e econmica, tanto no aspecto nanceiro quanto no de requerimento de hardware) nos d um amplo leque de possibilidades tais como a implementao desde ltros de pacotes, utilizando a tabela Filter, a NAT via tabela NAT e mais controles avanados como o desenvolvimento de QOS sobre o trfego, suporte SNAT e DNAT, redirecionamento de endereamento e portas, mascaramento de conexes, deteco de fragmentos, monitoramento de trfego, TOS, bloqueio de ataques, scanners ocultos, pings da morte e muito mais. E alm disso tudo, ainda podemos utilizar mdulos externos ampliando ainda mais o nosso leque de funcionalidades. Os requerimentos bsicos para o funcionamento do Iptables so um computador sobre a arquitetura 386 com, no mnimo, 4MB de RAM e obviamente, um kernel da srie 2.4 ou superior. O Iptables composto dos seguintes aplicativos: Iptables: Aplicativo principal do pacote iptables para protocolos ipv4. Ip6tables: Aplicativo principal do pacote iptables para protocolos ipv6. Iptables-save: Aplicativo que salva todas as regras, para protocolos ipv4, inseridas na sesso 15

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

ativa e tambm em um determinado arquivo informado pelo administrador do Firewall. Ip6tables-save: Aplicativo que salva todas as regras, para protocolos ipv6, inseridas na sesso ativa e tambm em um determinado arquivo informado pelo administrador do Firewall. Iptables-restore: Aplicativo que restaura todas as regras, para protocolos ipv4, salvas pelo software Iptables-save. Ip6tables-restore: Aplicativo que restaura todas as regras, para protocolos ipv6, salvas pelo software Ip6tables-save.

16

Captulo 4

Tabelas
4.1 Tabela Filter
A tabela Filter a tabela padro do Netlter/Iptables e trata das situaes (chains) implementadas por um Firewall ltro de pacotes. Estas situaes so: INPUT: Todos os pacotes que entram no host. FORWARD: Todos os pacotes que entram no host, mas que devem ser redirecionados um host secundrio ou outra interface de rede. OUTPUT: Todos os pacotes que saem do host.

17

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

4.2 Tabela NAT


A tabela NAT a tabela que implementa funes de NAT (Network Address Translation) ao host Firewall. O Nat por sua vez, possui diversas utilidades, conforme abordado anteriormente. Suas situaes (chains) so: PREROUTING: utilizada quando h necessidade de se fazer alteraes em pacotes antes que os mesmos sejam roteados. OUTPUT: Trata os pacotes emitidos pelo host Firewall. POSTROUTING: Utilizado quando h necessidade de se fazer alteraes em pacotes aps o tratamento de roteamento.

18

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

4.3 Tabela Mangle


A tabela MANGLE implementa alteraes especiais em pacotes em um nvel mais complexo. A tabela mangle capaz, por exemplo, de alterar a prioridade de entrata e sada de um pacote baseado no tipo de servio (TOS) o qual o pacote se destinava. Suas situaes so: PREROUTING: Modica pacotes dando-lhes um tratamento especial antes que os mesmos sejam roteados. OUTPUT: Altera pacotes de forma especial gerados localmente antes que os mesmo sejam roteados.

19

Captulo 5

Sintaxe de Uso
5.1 Antes de comear
Antes de comear a utilizar o Iptables, precisamos nos certicar de que o ambiente est pronto. Cheque se o pacote iptables est instalado em seu sistema. Abra um terminal, como o gnome-terminal, e digite: # dpkg -l | grep iptables Caso este comando no retorne nada, signica que voc no o tem instalado e antes de dar sequncia ao nosso curso precisamos instal-lo com o seguinte comando: # apt-get install iptables

5.2 Sintaxe de Uso


O Iptables possui a seguinte sintaxe de uso, que pode variar um pouco dependendo da ao desejada mas que, em geral, pode ser representada por: iptables [-t tabela] -[comando] [situao (chain)] especicao-da-regra [alvo] Veremos adiante uma descrio mais detalhada de cada parte desta sintaxe de uso.

5.2.1 Comandos
Segue abaixo uma lista de comandos bsicos do Iptables com exemplos explicativos: -A: Adiciona uma nova entrada no m da lista de regras: Exemplo que adiciona uma nova regra no nal da lista referente a INPUT chain: # iptables -A INPUT

20

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

-D: Apaga uma regra especicada da lista: Exemplo que apaga a regra inserida anteriormente apenas trocando o comando -A por -D: #iptables -D INPUT Obs: O comando -D tambm permite apagar uma certa regra por seu nmero da lista de ocorrncias do Iptables Exemplo que apaga a regra de nmero 2 referente a FORWARD chain: # iptables -D FORWARD 2

-L: Lista as regras existentes na lista: Exemplo que mostra a lista das regras existentes: # iptables -L FORWARD

-P: Altera a poltica padro das chains. Inicialmente, todas as chains de um tabela esto setadas como ACCEPT, ou seja, aceitam todo e qualquer tipo de trfego. Exemplo que modica a poltica padro da chain FORWARD que ao invs de ser direcionada para o alvo ACCEPT, ser direcionada para o alvo DROP. Um pacote direcionado ao alvo DROP descartado pelo sistema: # iptables -P FORWARD DROP

-F: Este comando capaz de remover todas as entradas da lista de chains, sem alterar a poltica padro. Exemplo que remove todas as regras existentes: # iptables -F Exemplo que remove todas as regras existentes referentes a OUTPUT chain: # iptables -F OUTPUT

-I: Insere uma nova regra ao incio da lista de regras (Ao contrrio do comando -A, que insere ao nal da lista) # iptables -I OUTPUT 21

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

-R: Substitui uma regra j adiciona por outra: Exemplo que substitui a segunda regra referente FORWARD chain pela seguinte: -s 10.0.40.3 -d 10.0.30.0/8 -j DROP": # iptables -R FORWARD 2 -s 10.0.40.3 -d 10.0.30.0/8 -j DROP

-N: Este comando nos permite inserir/criar uma nova chain na tabela especicada. Exemplo que cria uma nova chain chamada internet na tabela lter: # iptables -t lter -N internet

-E: Renomeia uma nova chain (Que tenha sido criada pelo administrador do Firewall): Exemplo que renomeia a chain internet para INTERNET: # iptables -E internet INTERNET

-X: Apaga uma chain criada pelo administrador do Firewall Exemplo que remove a chain criada e renomeada anteriormente: # iptables -X INTERNET

5.3 Especicao das regras


A maioria dos comandos do Iptables requerem especicao para as regras a serem aplicadas. A especicao da regra tambm inclui um alvo que especica o que fazer com os pacotes que casam com a regra. As seguintes opes so as mais utilizadas na criao de especicaes para as regras: -j (jump) alvo: Especica o alvo dos pacotes que casarem com a regra. Exemplo: #iptables -t lter -A INPUT -i eth0 -p tcp dport 6881 -j ACCEPT

-p (protocol) : Casa pacotes cujo protocolo utilizado seja o especicado.

22

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

Exemplo: #iptables -t lter -A INPUT -i eth0 -p tcp dport 6881 -j ACCEPT

-s (source): Casa pacotes cuja origem seja o endereo especicado. Exemplo: #iptables -t lter -A INPUT -s 192.168.1.1/24 dport 6112 -j DROP

-d (destination): Casa pacotes cujo destino seja o especicado. Exemplo: #iptables -t lter -A INPUT -d 192.168.1.1/24 dport 6112 -j DROP

-dport (destination-port): Casa pacotes cuja porta de destino seja a especicada. Exemplo: #iptables -t lter -A INPUT -i eth0 -p tcp dport 6881 -j ACCEPT

-sport (source-port): Casa pacotes cuja porta de origem seja a especicada Exemplo: #iptables -t lter -A OUTPUT -o eth0 -p tcp sport 6881 -j DROP

Obs: Para uma lista mais completa, consulte a pgina de manual do Iptables ($man iptables) .

5.4 Alvos
Segue abaixo um lista de algumas dps principais alvos para nossas regras: ACCEPT: Este alvo faz com que o Netlter aceite a passagem do pacote. O signicado prtico disto depende da situao (chain) em que feita esta aceitao. Por exemplo, um pacote que aceito numa situao de entrada (INPUT chain) ter permisso para ser recebido pelo host, j um pacote que aceito numa situao de sada (OUTPUT chain) ter permisso para ser enviado pelo host, assim como um pacote que aceito numa situao de encaminhamento (FORWARD chain) ter permisso para ser roteado atravs da rede.

23

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

DROP: Este alvo faz com que o Netlter descarte o pacote referenciado sem processamento prvio deste. Este pacote simplesmente desaparece sem nenhuma indicao do fato de ter sido descartado ao host ou aplicao que o enviou. Frequentemente enviada para o emissor de tal pacote uma indicao de tempo de comunicao esgotado (timeout), o que pode gerar uma certa confuso. QUEQUE: Este alvo faz com que o pacote seja enviado a uma la e aguarda at que uma aplicao o requira. Caso no exista nenhuma aplicalvo capaz de requerer tal pacote na la, esta alvo equivale a alvo DROP e o pacote descartado. REJECT: Este alvo tem o mesmo efeito da alvo DROP exceto pelo fato de que ela envia, ao remetente do pacote, um outro pacote de erro. LOG: Este alvo "loga"o trfego do pacote. Ou seja, cria um relatrio, no syslog, do seu percurso na rede. Pode ser usada para em qualquer situalvo (chain) e em qualquer tabela. Muito til para anlise de quais pacotes esto sendo descartados. SNAT: Este alvo faz com que o pacote tenha seu endereo de origem alterado. Utilizamos a ag --to-source"para indicar o novo endereo de origem do pacote. Este alvo s vlido para situalvos (chains) de POSTROUTING dentro da tabela NAT. DNAT: Este alvo faz com que o pacote tenha seu endereo de destino alterado. Utilizamos a ag --to-destination"para indicar o novo endero de destino do pacote. Esta alvo vlida apenas para situalvos (chains) de OUTPUT e PREROUTING dentro da tabela NAT. MASQUERADE: Este alvo uma forma especial restrita de SNAT para conexes com IPs dinmicos. Ao invs de ter que alterar a uma alvo SNAT toda vez que o IP for alterado, esta alvo calcula o endereo IP de origem para fazer o NAT analizando o endereo IP da interface de sada quando um pacote encontra esta regra. REDIRECT: Este alvo responsvel pelo redirecionamento de portas. Utilizamos a ag to-port para especicar a porta para a qual o trfego da regra ser redirecionado.

24

Captulo 6

Aplicaes da tabela nat


6.1 Consideraes Iniciais
Antes de iniciarmos a manipulao de qualquer regra que se utilize da tabela NAT, importante que habilitemos a funo de redirecionamento de pacotes (forward) em nosso kernel atravs do seguinte comando: #echo "1 procsysnetipvip_forward No se esquea de utilizar este comando antes de adicionar qualquer regra que envolva a tabela NAT. Outra observao importante que sempre que zermos um SNAT utilizaremos a situao (chain) POSTROUTING e sempre que zermos um DNAT utilizaremos a situao (chain) PREROUTING, por motivos obvios.

6.2 SNAT
bealho (header) dos pacotes que casarem com a regra criada. Exemplo: #iptables -t nat -A POSTROUTING -o eth0 -j SNAT to 192.168.1.223 Neste exemplo todos os pacotes que sairem pela interface de rede eth0 tero os endereos de origem alterados para 192.168.1.223.

6.3 DNAT
Com o DNAT possvel alterar o endereo de destino dos pacotes que casarem com a regra criada. Exemplo:

25

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

#iptables -t nat PREROUTING -i eth0 -j DNAT to 192.168.1.223 Neste exemplo todos os pacotes que entrarem pela interface de rede eth0 tero o endereo de destino alterados para 192.168.1.223.

6.4 Proxy Transparente


O proxy transparente a forma que a tabela NAT possui de realizar um redirecionamento de portas em um mesmo host de destino. Este mtodo comumente utilizado, por exemplo, pelo software Squid, pois este costuma disponibilizar acesso internet atravs da porta 3128 ao invs da porta padro, 80, para este tipo de acesso. Logo, conclumos que o Squid faz um redirecionamento das portas solicitadas por seus clientes, uma vez que estes solicitam conexo via porta 80 e so redirecionados porta 3128. Para esta nalidade utilizamos as situaes (chains) PREROUTING e OUTPUT da tabela NAT e o alvo REDIRECT. N o confunda proxy transparente com DNAT. A nica forma de se fazer redirecionamento de portas de destino em um mesmo host pelo alvo REDIRECT que caracteriza o modelo de proxy transparente. Exemplo: #iptables -t nat -A PREROUTING -i eth0 -p tcp dport 80 -j REDIRECT to-port 3128 Neste exemplo, os pacotes que entram pela interface eth0 com destino porta 80 sero redirecionados para a porta 3128.

6.5 Compartilhamento de internet via NAT


Podemos utilizar ainda a tabela NAT para realizar o compartilhamento do acesso internet. Isto til, por exemplo, quando desejamos que nossa rede local tenha acesso internet. Para tanto, utilizamos o alvo MASQUERADE para fazer o que conhecemos como "mascaramento". Exemplo: #iptables -t nat -A POSTROUTING -o lo -d 127.0.0.0/8 -j ACCEPT #iptables -t nat -P POSTROUTING -j DROP #iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE Neste exemplo, todos os IPs da rede 192.168.1.0 com mscara de rede 255.255.255.0 sero "mascarados".

26

Captulo 7

Aplicaes da tabela mangle


7.1 TOS
O TOS (Type of Service) nos permite ltrar pacotes que trafegam na nossa rede capturando informaes sobre o tipo de servio ao qual o pacote se destina. Estas informaes esto contidas no cabealho de cada pacote. O campo TOS foi criado especicamente para que pudessemos fazer tal ltragem. Para usufruirmos desta funcionalidade, ns utilizamos a tabela mangle do Netlter. O TOS um alvo (target) para o qual direcionamos os pacotes desejados referenciando-os em uma determinada regra. Compreenderemos o seu uso mais adiante.

7.2 Aplicando TOS


Para aplicar ltragem por TOS em nossa rede fazemos uso da tabela mangle e do alvo TOS seguido pelo parmento set-tos valor, em que os valores possveis so, em ordem descrescente de prioridade: Espera Mnima: especicado atravs de Minimize-Delay, 16 ou 0x10. Mximo Processamento: especicado atravs de Maximize-Throughput, 8, ou 0x08. Mxima Conana: especicado atravs de Maximize-Reliability, 4 ou 0x04. Custo mnimo: Especicado atravs de MinimizeCost, 2 ou 0x02. Prioridade Normal: Especicado atravs de Normal-Service, 0 ou 0x00. Por pado a prioridade dada todos os pacotes, a menos que voc especique outro, ser a prioridade normal. Exemplos: #iptables -t mangle -A OUTPUT -o eth0 -p tcp dport 5123 -j TOS set-tos 16 Este exemplo d prioridade de espera mnima todos os pacotes tcp que saem da rede pela interface de rede eth0 com porta de destino 5123. Ou seja, estes pacotes tero uma facilidade maior para trafegar na rede.

27

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

7.3 TOS no trfego de entrada


Esta operao realizada nas situaes (chains) INPUT ou PREROUTING. No faz muito sentido o uso desta chain (situao) dentro de uma rede pequena ou mdia, pois o trfego que recebermos ser priorizado pelo chain de sada de outras mquinas da internet ou de outras redes antes de chegar a nossa (desde que elas tambm estejam usando TOS). Exemplo: #iptables -t mangle -A PREROUTING -i eth0 -p tcp sport 6666-6668 -j TOS set-tos 0x10

7.4 TOS no trfego de sada


Esta operao pode ser realizada somente na situao (chain) OUTPUT e tem por objetivo controlar o trfego de sada em nossa rede. Exemplos: Para priorizar todo o trfego de IRC de nossa rede interna indo para a interface ppp0: #iptables -t mangle -A OUTPUT -o ppp0 -p tcp dport 6666-6668 -j TOS set-tos 16 O bit TOS ajustado para espera mnima e ser enviado antes dos pacotes com prioridade normal para fora. Para priorizar a transmisso de dados ftp saindo da rede: #iptables -t mangle -A OUTPUT -o ppp0 -p tcp dport 20 -j TOS set-tos 8 Para priorizaer o trfego de ICQ da rede: #iptables -t mangle -A OUTPUT -o ppp0 -p tcp dport 5190 -j TOS set-tos 16

28

Captulo 8

Modulos
Os mdulos do iptables so especicados com a opo -m mdulo ou match mdulo e permitem expandir a funcionalidade do rewall atravs de novas conferncias e recursos de ltragem adicionais, como limitar a conferncia de regras do rewall (um mtodo til de limitar ping oods, syn oods, etc).

8.1 Limit
Regras sob o mdulo limit especicam exatamente quantas vezes as mesmas devem ser executadas em um intervalo de tempo especco e, caso isto ocorra, ela automaticamente executar a regra seguinte. Trata-se de um mdulo muito til para conter ataques sosticados como ataques do tipo DOS (Denial Of Service) onde o cracker tenta enviar o mximo de requisies ICMP possveis em um menor intervalo de tempo, esperando que com isso cause uma negao de servios por parte de seu Firewall. Exemplo: #iptables -A INPUT -p icmp icmp-type echo-request -m limit limit 1/s -j ACCEPT Neste exemplo, temos que os pacotes de respostas de ICMP ( -p icmp ) sero aceitos somente se recebidos em um intervalo de tempo de 1 segundo ( -m limit limit 1/s -j ACCEPT ). Caso algum pacote ultrapasse este limite imposto pela regra, esta dever automaticamente executar a regra seguinte que dever ser algo como: #iptables -A INPUT -p icmp -j DROP Esta regra ir bloquear ( -j DROP ) qualquer pacote ICMP ( -p icmp ) que chegar ao FIrewall.

8.2 State
O mdulo state atribui regras mediante a anlise do estado da conexo de um pacote. Tais estados podem ser: 29

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

NEW: Indica que o pacote est criando uma nova conexo. ESTABLISHED: Informa que o pacote pertence uma conexo j existente, logo, trata-se de um pacote de resposta. RELATED: Referente pacotes que relacionam-se indiretamente com outro pacote, a exemplo das mensagens de erros de conexo. INVALID: Referente pacotes no identicados por algum motivo desconhecido. Aconselha-se que estes pacotes sejam descartados pelo Firewall. Exemplo: #iptables -A INPUT -m state state NEW -i eth0 -j DROP Este exemplo faz com que qualquer nova conexo que parta da interface eth0 seja rejeitada.

8.3 Mac
Mac (Media access control) a identicao de mais baixo nvel que um dispositivo de rede pode ter. O mdulo mac permite que seu Firewall atue neste nvel, independentemente de endereamento de rede. Logo, a checagem da regra no depende mais do endereo IP e sim do endereo Mac do dispositivo de rede. Exemplo: #iptables -A INPUT -m mac mac-source 00:0F:B0:C2:0C:5C -j DROP Este exemplo bloquearia qualquer pacote proveniente deste dispositivo de rede cujo endereo mac foi referenciado.

8.4 Multiport
O mdulo multiport permite que seja especicado mltiplas portas para um alvo. Podem ser especicadas at 15 portas em um nico parmetro e basta que uma porta conra para que a regra entre em ao, pois a comparao feita usando condies "or". O parmetro multiport deve ser acompanhado de um dos argumentos abaixo: source-port [porta1, porta2...] - Faz a regra conferirse se s porta de origem estiver presente entre as portas especicadas. destination-port [porta1, porta2...] - Faz a regra conferir se a porta de destino estiver presente entre as portas especicadas. -port [porta1, porta2...] - Faz a regra conferir caso a porta de origem ou destino esteja presente no parmetro.

30

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

Este mdulo pode eliminar muitas regras de rewall que fazem o mesmo tratamento de pacotes para diversas portas diferentes. Exemplo: #iptables -A INPUT -p tcp -i ppp0 -m multiport destination-port 21,23,25,80,110,113,6667 -j DROP Este exemplo bloqueia todos os pacotes vindo de ppp0 para as portas 21 (ftp), 23 (telnet), 25 (smtp), 80 (www), 110 (pop3), 113 (ident), 6667 (irc).

8.5 String
O mdulo string do Iptables permite a inspeo de contedo de um pacote e tomar uma ao se determinado tipo de trfego for encontrado em um pacote. Esta tcnica pode ser usada tanto para segurana como para economia de banda dentro da rede. Esta opo *NO* torna o Iptables como um rewall proxy, pois o proxy tem a habilidade de inspecionar o contedo, protocolo, comandos do pacote e decidir se o seu contedo nocivo ou no. O rewall em nvel de pacotes fazendo inspeo de contedo, chega a ser 3 a 10 vezes mais rpido do que um proxy, assim seu uso deve ser analisado dependendo do trfego que circula pelo link e da segurana dos dados que trafegam atravs dele. Uma boa prtica aliar esta opo a um IDS externo usando o alvo QUEUE e deixando o trabalho de inspeo de contedo para ele. Um exemplo de restrio direta o bloqueio do envio de qualquer informao condencial sigilosa para fora da rede interna (nmero de contas, tudo que conferir com CPF, CGC, endereos de e-mail, memorandos, etc). De qualquer forma, analise o trfego de sua rede antes de querer implementar qualquer soluo baseada neste mtodo sob o risco de afetar trfego legtimo. Outra utilidade eciente a diminuio de trfego, pois podemos barrar programas que sobrecarregam o link em uma rede com muitos usurios como, por exemplo, usando o Kazaa ou qualquer outro programa para cpia de arquivos via Internet. Veja alguns exemplos: Bloqueia qualquer tentativa de acesso ao programa Kazaa: #iptables -A INPUT -m string string "X-Kazaa-j DROP No permite que dados condenciais sejam enviados para fora da empresa e registra o ocorrido: #iptables -A OUTPUT -m string string "conta-j LOG log-prex "ALERTA: dados condencial "#iptables -A OUTPUT -m string string "conta-j DROP

31

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

Somente permite a passagem de pacotes que no contm ".exe"em seu contedo: #iptables -A INPUT -m string string ! ".exe-j ACCEPT

8.6 Owner
Este mdulo confere com o usurio que iniciou a conexo. somente vlido no chain OUTPUT da tabela lter. Os seguintes argumentos so vlidas para este mdulo: uid-owner UID - Confere se o pacote foi criado por um processo com o UID especicado. At o momento somente UID numricos so aceitos. gid-owner GID - Confere se o pacote foi criado por um usurio pertencente ao grupo GID. At o momento somente GID numricos so aceitos. pid-owner PID - Confere se o pacote foi criado por um processo com o PID especicado. sid-owner ID - Confere se o pacote foi criado por um processo no grupo de seo especicado. OBS: - Lembre-se que pacotes que no possuem detalhes sucientes de cabealho nunca sero conferidos! Exemplo: #iptables -A OUTPUT -m owner gid-owner 100 -p udp -j DROP Este exemplo rejeita um conexes indo para portas UDP de pacotes criados pelo usurios pertencentes ao grupo 100.

32

Você também pode gostar