iptables

42
Iptables Versão 1.0.0

Upload: jeferson

Post on 02-Dec-2015

212 views

Category:

Documents


0 download

DESCRIPTION

IpTables

TRANSCRIPT

IptablesVersão 1.0.0

Sumário

I Sobre essa Apostila 2

II Informações Básicas 4

III GNU Free Documentation License 9

IV Iptables 18

1 O que é o Iptables 19

2 Plano de ensino 202.1 Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202.2 Público Alvo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202.3 Pré-requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202.4 Descrição . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202.5 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202.6 Cronograma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202.7 Programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212.8 Avaliação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212.9 Bibliografia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

3 Histórico 223.1 Introdução ao Netfilter/Iptables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

3.1.1 Firewall Filtro de Pacotes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223.1.2 Firewall NAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233.1.3 Netfilter/Iptables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

4 Tabelas 254.1 Tabela Filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254.2 Tabela NAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264.3 Tabela Mangle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

5 Sintaxe de Uso 285.1 Antes de começar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285.2 Sintaxe de Uso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

5.2.1 Comandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285.3 Especificação das regras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

1

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

5.4 Alvos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

6 Aplicações da tabela nat 336.1 Considerações Iniciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336.2 SNAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336.3 DNAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336.4 Proxy Transparente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346.5 Compartilhamento de internet via NAT . . . . . . . . . . . . . . . . . . . . . . . . . . 34

7 Aplicações da tabela mangle 357.1 TOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357.2 Aplicando TOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357.3 TOS no tráfego de entrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367.4 TOS no tráfego de saída . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

8 Modulos 378.1 Limit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378.2 State . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378.3 Mac . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388.4 Multiport . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388.5 String . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398.6 Owner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

2

Parte I

Sobre essa Apostila

3

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

Conteúdo

O conteúdo dessa apostila é fruto da compilação de diversos materiais livres publicados na in-ternet, disponíveis em diversos sites ou originalmente produzido no CDTC (http://www.cdtc.org.br.)

O formato original deste material bem como sua atualização está disponível dentro da licençaGNU Free Documentation License, cujo teor integral encontra-se aqui reproduzido na seção demesmo nome, tendo inclusive uma versão traduzida (não oficial).

A revisão e alteração vem sendo realizada pelo CDTC ([email protected]) desde outubrode 2006. Críticas e sugestões construtivas serão bem-vindas a qualquer hora.

Autores

A autoria deste é de responsabilidade de Waldemar Silva Júnior ([email protected]).

O texto original faz parte do projeto Centro de Difusão de Tecnologia e Conhecimento quevêm sendo realizado pelo ITI (Instituto Nacional de Tecnologia da Informação) em conjunto comoutros parceiros institucionais, e com as universidades federais brasileiras que tem produzido eutilizado Software Livre apoiando inclusive a comunidade Free Software junto a outras entidadesno país.

Informações adicionais podem ser obtidas através do email [email protected], ou dahome page da entidade, através da URL http://www.cdtc.org.br.

Garantias

O material contido nesta apostila é isento de garantias e o seu uso é de inteira responsabi-lidade do usuário/leitor. Os autores, bem como o ITI e seus parceiros, não se responsabilizamdireta ou indiretamente por qualquer prejuízo oriundo da utilização do material aqui contido.

Licença

Copyright ©2006, Instituto Nacional de Tecnologia da Informação ([email protected]) .

Permission is granted to copy, distribute and/or modify this document under the termsof the GNU Free Documentation License, Version 1.1 or any later version published bythe Free Software Foundation; with the Invariant Chapter being SOBRE ESSA APOS-TILA. A copy of the license is included in the section entitled GNU Free DocumentationLicense.

4

Parte II

Informações Básicas

5

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

Sobre o CDTC

Objetivo Geral

O Projeto CDTC visa a promoção e o desenvolvimento de ações que incentivem a dissemina-ção de soluções que utilizem padrões abertos e não proprietários de tecnologia, em proveito dodesenvolvimento social, cultural, político, tecnológico e econômico da sociedade brasileira.

Objetivo Específico

Auxiliar o Governo Federal na implantação do plano nacional de software não-proprietário ede código fonte aberto, identificando e mobilizando grupos de formadores de opinião dentre osservidores públicos e agentes políticos da União Federal, estimulando e incentivando o mercadonacional a adotar novos modelos de negócio da tecnologia da informação e de novos negóciosde comunicação com base em software não-proprietário e de código fonte aberto, oferecendotreinamento específico para técnicos, profissionais de suporte e funcionários públicos usuários,criando grupos de funcionários públicos que irão treinar outros funcionários públicos e atuar comoincentivadores e defensores dos produtos de software não proprietários e código fonte aberto, ofe-recendo conteúdo técnico on-line para serviços de suporte, ferramentas para desenvolvimento deprodutos de software não proprietários e do seu código fonte livre, articulando redes de terceiros(dentro e fora do governo) fornecedoras de educação, pesquisa, desenvolvimento e teste de pro-dutos de software livre.

Guia do aluno

Neste guia, você terá reunidas uma série de informações importantes para que você comeceseu curso. São elas:

• Licenças para cópia de material disponível;

• Os 10 mandamentos do aluno de Educação a Distância;

• Como participar dos foruns e da wikipédia;

• Primeiros passos.

É muito importante que você entre em contato com TODAS estas informações, seguindo oroteiro acima.

Licença

Copyright ©2006, Instituto Nacional de Tecnologia da Informação ([email protected]).

6

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

É dada permissão para copiar, distribuir e/ou modificar este documento sob os termosda Licença de Documentação Livre GNU, Versão 1.1 ou qualquer versão posteriorpúblicada pela Free Software Foundation; com o Capitulo Invariante SOBRE ESSAAPOSTILA. Uma cópia da licença está inclusa na seção entitulada "Licença de Docu-mentação Livre GNU".

Os 10 mandamentos do aluno de educação online

• 1. Acesso à Internet: ter endereço eletrônico, um provedor e um equipamento adequado épré-requisito para a participação nos cursos a distância;

• 2. Habilidade e disposição para operar programas: ter conhecimentos básicos de Informá-tica é necessário para poder executar as tarefas;

• 3. Vontade para aprender colaborativamente: interagir, ser participativo no ensino a distân-cia conta muitos pontos, pois irá colaborar para o processo ensino-aprendizagem pessoal,dos colegas e dos professores;

• 4. Comportamentos compatíveis com a etiqueta: mostrar-se interessado em conhecer seuscolegas de turma respeitando-os e se fazendo ser respeitado pelos mesmos;

• 5. Organização pessoal: planejar e organizar tudo é fundamental para facilitar a sua revisãoe a sua recuperação de materiais;

• 6. Vontade para realizar as atividades no tempo correto: anotar todas as suas obrigações erealizá-las em tempo real;

• 7. Curiosidade e abertura para inovações: aceitar novas idéias e inovar sempre;

• 8. Flexibilidade e adaptação: requisitos necessário à mudança tecnológica, aprendizagense descobertas;

• 9. Objetividade em sua comunicação: comunicar-se de forma clara, breve e transparente éponto - chave na comunicação pela Internet;

• 10. Responsabilidade: ser responsável por seu próprio aprendizado. O ambiente virtual nãocontrola a sua dedicação, mas reflete os resultados do seu esforço e da sua colaboração.

Como participar dos fóruns e Wikipédia

Você tem um problema e precisa de ajuda?

Podemos te ajudar de 2 formas:

A primeira é o uso dos fóruns de notícias e de dúvidas gerais que se distinguem pelo uso:

. O fórum de notícias tem por objetivo disponibilizar um meio de acesso rápido a informaçõesque sejam pertinentes ao curso (avisos, notícias). As mensagens postadas nele são enviadas a

7

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

todos participantes. Assim, se o monitor ou algum outro participante tiver uma informação queinteresse ao grupo, favor postá-la aqui.Porém, se o que você deseja é resolver alguma dúvida ou discutir algum tópico específico docurso. É recomendado que você faça uso do Fórum de dúvidas gerais que lhe dá recursos maisefetivos para esta prática.

. O fórum de dúvidas gerais tem por objetivo disponibilizar um meio fácil, rápido e interativopara solucionar suas dúvidas e trocar experiências. As mensagens postadas nele são enviadasa todos participantes do curso. Assim, fica muito mais fácil obter respostas, já que todos podemajudar.Se você receber uma mensagem com algum tópico que saiba responder, não se preocupe com aformalização ou a gramática. Responda! E não se esqueça de que antes de abrir um novo tópicoé recomendável ver se a sua pergunta já foi feita por outro participante.

A segunda forma se dá pelas Wikis:

. Uma wiki é uma página web que pode ser editada colaborativamente, ou seja, qualquer par-ticipante pode inserir, editar, apagar textos. As versões antigas vão sendo arquivadas e podemser 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 "Wikipé-dia", uma experiência grandiosa de construção de uma enciclopédia de forma colaborativa, porpessoas de todas as partes do mundo. Acesse-a em português pelos links:

• Página principal da Wiki - http://pt.wikipedia.org/wiki/

Agradecemos antecipadamente a sua colaboração com a aprendizagem do grupo!

Primeiros Passos

Para uma melhor aprendizagem é recomendável que você siga os seguintes passos:

• Ler o Plano de Ensino e entender a que seu curso se dispõe a ensinar;

• Ler a Ambientação do Moodle para aprender a navegar neste ambiente e se utilizar dasferramentas básicas do mesmo;

• Entrar nas lições seguindo a seqüência descrita no Plano de Ensino;

• Qualquer dúvida, reporte ao Fórum de Dúvidas Gerais.

Perfil do Tutor

Segue-se uma descrição do tutor ideal, baseada no feedback de alunos e de tutores.

O tutor ideal é um modelo de excelência: é consistente, justo e profissional nos respectivosvalores e atitudes, incentiva mas é honesto, imparcial, amável, positivo, respeitador, aceita asidéias dos estudantes, é paciente, pessoal, tolerante, apreciativo, compreensivo e pronto a ajudar.

8

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

A classificação por um tutor desta natureza proporciona o melhor feedback possível, é crucial, e,para a maior parte dos alunos, constitui o ponto central do processo de aprendizagem.’ Este tutorou instrutor:

• fornece explicações claras acerca do que ele espera e do estilo de classificação que iráutilizar;

• gosta que lhe façam perguntas adicionais;

• identifica as nossas falhas, mas corrige-as amavelmente’, diz um estudante, ’e explica por-que motivo a classificação foi ou não foi atribuída’;

• tece comentários completos e construtivos, mas de forma agradável (em contraste com umreparo de um estudante: ’os comentários deixam-nos com uma sensação de crítica, deameaça e de nervossismo’)

• dá uma ajuda complementar para encorajar um estudante em dificuldade;

• esclarece pontos que não foram entendidos, ou corretamente aprendidos anteriormente;

• ajuda o estudante a alcançar os seus objetivos;

• é flexível quando necessário;

• mostra um interesse genuíno em motivar os alunos (mesmo os principiantes e, por isso,talvez numa fase menos interessante para o tutor);

• escreve todas as correções de forma legível e com um nível de pormenorização adequado;

• acima de tudo, devolve os trabalhos rapidamente;

9

Parte III

GNU Free Documentation License

10

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

(Traduzido pelo João S. O. Bueno através do CIPSGA em 2001)Esta é uma tradução não oficial da Licença de Documentação Livre GNU em Português Brasi-

leiro. Ela não é publicada pela Free Software Foundation, e não se aplica legalmente a distribuiçãode textos que usem a GFDL - apenas o texto original em Inglês da GNU FDL faz isso. Entretanto,nós esperamos que esta tradução ajude falantes de português a entenderem melhor a GFDL.

This is an unofficial translation of the GNU General Documentation License into Brazilian Por-tuguese. It was not published by the Free Software Foundation, and does not legally state thedistribution terms for software that uses the GFDL–only the original English text of the GFDL doesthat. However, we hope that this translation will help Portuguese speakers understand the GFDLbetter.

Licença de Documentação Livre GNU Versão 1.1, Março de 2000

Copyright (C) 2000 Free Software Foundation, Inc.59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

É permitido a qualquer um copiar e distribuir cópias exatas deste documento de licença, masnão é permitido alterá-lo.

INTRODUÇÃO

O propósito desta Licença é deixar um manual, livro-texto ou outro documento escrito "livre"nosentido de liberdade: assegurar a qualquer um a efetiva liberdade de copiá-lo ou redistribui-lo,com ou sem modificações, comercialmente ou não. Secundariamente, esta Licença mantémpara o autor e editor uma forma de ter crédito por seu trabalho, sem ser considerado responsávelpelas modificações feitas por terceiros.

Esta Licença é um tipo de "copyleft"("direitos revertidos"), o que significa que derivações dodocumento precisam ser livres no mesmo sentido. Ela complementa a GNU Licença Pública Ge-ral (GNU GPL), que é um copyleft para software livre.

Nós fizemos esta Licença para que seja usada em manuais de software livre, por que softwarelivre precisa de documentação livre: um programa livre deve ser acompanhado de manuais queprovenham as mesmas liberdades que o software possui. Mas esta Licença não está restrita amanuais de software; ela pode ser usada para qualquer trabalho em texto, independentementedo assunto ou se ele é publicado como um livro impresso. Nós recomendamos esta Licença prin-cipalmente para trabalhos cujo propósito seja de introdução ou referência.

APLICABILIDADE E DEFINIÇÕES

Esta Licença se aplica a qualquer manual ou outro texto que contenha uma nota colocada pelodetentor dos direitos autorais dizendo que ele pode ser distribuído sob os termos desta Licença.O "Documento"abaixo se refere a qualquer manual ou texto. Qualquer pessoa do público é um

11

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

licenciado e é referida como "você".

Uma "Versão Modificada"do Documento se refere a qualquer trabalho contendo o documentoou uma parte dele, quer copiada exatamente, quer com modificações e/ou traduzida em outralíngua.

Uma "Seção Secundária"é um apêndice ou uma seção inicial do Documento que trata ex-clusivamente da relação dos editores ou dos autores do Documento com o assunto geral doDocumento (ou assuntos relacionados) e não contém nada que poderia ser incluído diretamentenesse assunto geral (Por exemplo, se o Documento é em parte um livro texto de matemática, aSeção Secundária pode não explicar nada de matemática).

Essa relação poderia ser uma questão de ligação histórica com o assunto, ou matérias relaci-onadas, ou de posições legais, comerciais, filosóficas, éticas ou políticas relacionadas ao mesmo.

As "Seções Invariantes"são certas Seções Secundárias cujos títulos são designados, comosendo de Seções Invariantes, na nota que diz que o Documento é publicado sob esta Licença.

Os "Textos de Capa"são certos trechos curtos de texto que são listados, como Textos de CapaFrontal ou Textos da Quarta Capa, na nota que diz que o texto é publicado sob esta Licença.

Uma cópia "Transparente"do Documento significa uma cópia que pode ser lida automatica-mente, representada num formato cuja especificação esteja disponível ao público geral, cujosconteúdos possam ser vistos e editados diretamente e sem mecanismos especiais com editoresde texto genéricos ou (para imagens compostas de pixels) programas de pintura genéricos ou(para desenhos) por algum editor de desenhos grandemente difundido, e que seja passível deservir como entrada a formatadores de texto ou para tradução automática para uma variedadede formatos que sirvam de entrada para formatadores de texto. Uma cópia feita em um formatode arquivo outrossim Transparente cuja constituição tenha sido projetada para atrapalhar ou de-sencorajar modificações subsequentes pelos leitores não é Transparente. Uma cópia que não é"Transparente"é chamada de "Opaca".

Exemplos de formatos que podem ser usados para cópias Transparentes incluem ASCII sim-ples sem marcações, formato de entrada do Texinfo, formato de entrada do LaTex, SGML ou XMLusando uma DTD disponibilizada publicamente, e HTML simples, compatível com os padrões, eprojetado para ser modificado por pessoas. Formatos opacos incluem PostScript, PDF, formatosproprietários que podem ser lidos e editados apenas com processadores de texto proprietários,SGML ou XML para os quais a DTD e/ou ferramentas de processamento e edição não estejamdisponíveis para o público, e HTML gerado automaticamente por alguns editores de texto comfinalidade apenas de saída.

A "Página do Título"significa, para um livro impresso, a página do título propriamente dita,mais quaisquer páginas subsequentes quantas forem necessárias para conter, de forma legível,o material que esta Licença requer que apareça na página do título. Para trabalhos que nãotenham uma página do título, "Página do Título"significa o texto próximo da aparição mais proe-minente do título do trabalho, precedendo o início do corpo do texto.

12

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

FAZENDO CÓPIAS EXATAS

Você pode copiar e distribuir o Documento em qualquer meio, de forma comercial ou nãocomercial, desde que esta Licença, as notas de copyright, e a nota de licença dizendo que estaLicença se aplica ao documento estejam reproduzidas em todas as cópias, e que você não acres-cente nenhuma outra condição, quaisquer que sejam, às desta Licença.

Você não pode usar medidas técnicas para obstruir ou controlar a leitura ou confecção decópias subsequentes das cópias que você fizer ou distribuir. Entretanto, você pode aceitar com-pensação em troca de cópias. Se você distribuir uma quantidade grande o suficiente de cópias,você também precisa respeitar as condições da seção 3.

Você também pode emprestar cópias, sob as mesmas condições colocadas acima, e tambémpode exibir cópias publicamente.

FAZENDO CÓPIAS EM QUANTIDADE

Se você publicar cópias do Documento em número maior que 100, e a nota de licença doDocumento obrigar Textos de Capa, você precisará incluir as cópias em capas que tragam, clarae legivelmente, todos esses Textos de Capa: Textos de Capa da Frente na capa da frente, eTextos da Quarta Capa na capa de trás. Ambas as capas também precisam identificar clara elegivelmente você como o editor dessas cópias. A capa da frente precisa apresentar o título com-pleto com todas as palavras do título igualmente proeminentes e visíveis. Você pode adicionaroutros materiais às capas. Fazer cópias com modificações limitadas às capas, tanto quanto estaspreservem o título do documento e satisfaçam a essas condições, pode ser tratado como cópiaexata em outros aspectos.

Se os textos requeridos em qualquer das capas for muito volumoso para caber de formalegível, você deve colocar os primeiros (tantos quantos couberem de forma razoável) na capaverdadeira, e continuar os outros nas páginas adjacentes.

Se você publicar ou distribuir cópias Opacas do Documento em número maior que 100, vocêprecisa ou incluir uma cópia Transparente que possa ser lida automaticamente com cada cópiaOpaca, ou informar, em ou com, cada cópia Opaca a localização de uma cópia Transparentecompleta do Documento acessível publicamente em uma rede de computadores, à qual o públicousuário de redes tenha acesso a download gratuito e anônimo utilizando padrões públicos deprotocolos de rede. Se você utilizar o segundo método, você precisará tomar cuidados razoavel-mente prudentes, quando iniciar a distribuição de cópias Opacas em quantidade, para assegurarque esta cópia Transparente vai permanecer acessível desta forma na localização especificadapor pelo menos um ano depois da última vez em que você distribuir uma cópia Opaca (direta-mente ou através de seus agentes ou distribuidores) daquela edição para o público.

É pedido, mas não é obrigatório, que você contate os autores do Documento bem antes deredistribuir qualquer grande número de cópias, para lhes dar uma oportunidade de prover vocêcom uma versão atualizada do Documento.

13

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

MODIFICAÇÕES

Você pode copiar e distribuir uma Versão Modificada do Documento sob as condições das se-ções 2 e 3 acima, desde que você publique a Versão Modificada estritamente sob esta Licença,com a Versão Modificada tomando o papel do Documento, de forma a licenciar a distribuiçãoe modificação da Versão Modificada para quem quer que possua uma cópia da mesma. Alémdisso, você precisa fazer o seguinte na versão modificada:

A. Usar na Página de Título (e nas capas, se houver alguma) um título distinto daquele do Do-cumento, e daqueles de versões anteriores (que deveriam, se houvesse algum, estarem listadosna seção "Histórico do Documento"). Você pode usar o mesmo título de uma versão anterior seo editor original daquela versão lhe der permissão;

B. Listar na Página de Título, como autores, uma ou mais das pessoas ou entidades responsá-veis pela autoria das modificações na Versão Modificada, conjuntamente com pelo menos cincodos autores principais do Documento (todos os seus autores principais, se ele tiver menos quecinco);

C. Colocar na Página de Título o nome do editor da Versão Modificada, como o editor;

D. Preservar todas as notas de copyright do Documento;

E. Adicionar uma nota de copyright apropriada para suas próprias modificações adjacente àsoutras notas de copyright;

F. Incluir, imediatamente depois das notas de copyright, uma nota de licença dando ao públicoo direito de usar a Versão Modificada sob os termos desta Licença, na forma mostrada no tópicoabaixo;

G. Preservar nessa nota de licença as listas completas das Seções Invariantes e os Textos deCapa requeridos dados na nota de licença do Documento;

H. Incluir uma cópia inalterada desta Licença;

I. Preservar a seção entitulada "Histórico", e seu título, e adicionar à mesma um item dizendopelo menos o título, ano, novos autores e editor da Versão Modificada como dados na Página deTítulo. Se não houver uma sessão denominada "Histórico"no Documento, criar uma dizendo otítulo, ano, autores, e editor do Documento como dados em sua Página de Título, então adicionarum item descrevendo a Versão Modificada, tal como descrito na sentença anterior;

J. Preservar o endereço de rede, se algum, dado no Documento para acesso público a umacópia Transparente do Documento, e da mesma forma, as localizações de rede dadas no Docu-mento para as versões anteriores em que ele foi baseado. Elas podem ser colocadas na seção"Histórico". Você pode omitir uma localização na rede para um trabalho que tenha sido publicadopelo menos quatro anos antes do Documento, ou se o editor original da versão a que ela se refirader sua permissão;

K. Em qualquer seção entitulada "Agradecimentos"ou "Dedicatórias", preservar o título da

14

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

seção e preservar a seção em toda substância e fim de cada um dos agradecimentos de contri-buidores e/ou dedicatórias dados;

L. Preservar todas as Seções Invariantes do Documento, inalteradas em seus textos ou emseus títulos. Números de seção ou equivalentes não são considerados parte dos títulos da seção;

M. Apagar qualquer seção entitulada "Endossos". Tal sessão não pode ser incluída na VersãoModificada;

N. Não reentitular qualquer seção existente com o título "Endossos"ou com qualquer outrotítulo dado a uma Seção Invariante.

Se a Versão Modificada incluir novas seções iniciais ou apêndices que se qualifiquem comoSeções Secundárias e não contenham nenhum material copiado do Documento, você pode optarpor designar alguma ou todas aquelas seções como invariantes. Para fazer isso, adicione seustítulos à lista de Seções Invariantes na nota de licença da Versão Modificada. Esses títulos preci-sam ser diferentes de qualquer outro título de seção.

Você pode adicionar uma seção entitulada "Endossos", desde que ela não contenha qual-quer coisa além de endossos da sua Versão Modificada por várias pessoas ou entidades - porexemplo, declarações de revisores ou de que o texto foi aprovado por uma organização como adefinição oficial de um padrão.

Você pode adicionar uma passagem de até cinco palavras como um Texto de Capa da Frente, e uma passagem de até 25 palavras como um Texto de Quarta Capa, ao final da lista de Textosde Capa na Versão Modificada. Somente uma passagem de Texto da Capa da Frente e uma deTexto da Quarta Capa podem ser adicionados por (ou por acordos feitos por) qualquer entidade.Se o Documento já incluir um texto de capa para a mesma capa, adicionado previamente porvocê ou por acordo feito com alguma entidade para a qual você esteja agindo, você não podeadicionar um outro; mas você pode trocar o antigo, com permissão explícita do editor anterior queadicionou a passagem antiga.

O(s) autor(es) e editor(es) do Documento não dão permissão por esta Licença para que seusnomes sejam usados para publicidade ou para assegurar ou implicar endossamento de qualquerVersão Modificada.

COMBINANDO DOCUMENTOS

Você pode combinar o Documento com outros documentos publicados sob esta Licença, sobos termos definidos na seção 4 acima para versões modificadas, desde que você inclua na com-binação todas as Seções Invariantes de todos os documentos originais, sem modificações, e listetodas elas como Seções Invariantes de seu trabalho combinado em sua nota de licença.

O trabalho combinado precisa conter apenas uma cópia desta Licença, e Seções InvariantesIdênticas com multiplas ocorrências podem ser substituídas por apenas uma cópia. Se houvermúltiplas Seções Invariantes com o mesmo nome mas com conteúdos distintos, faça o título de

15

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

cada seção único adicionando ao final do mesmo, em parênteses, o nome do autor ou editororigianl daquela seção, se for conhecido, ou um número que seja único. Faça o mesmo ajustenos títulos de seção na lista de Seções Invariantes nota de licença do trabalho combinado.

Na combinação, você precisa combinar quaisquer seções entituladas "Histórico"dos diver-sos documentos originais, formando uma seção entitulada "Histórico"; da mesma forma combinequaisquer seções entituladas "Agradecimentos", ou "Dedicatórias". Você precisa apagar todas asseções entituladas como "Endosso".

COLETÂNEAS DE DOCUMENTOS

Você pode fazer uma coletânea consitindo do Documento e outros documentos publicadossob esta Licença, e substituir as cópias individuais desta Licença nos vários documentos comuma única cópia incluida na coletânea, desde que você siga as regras desta Licença para cópiaexata de cada um dos Documentos em todos os outros aspectos.

Você pode extrair um único documento de tal coletânea, e distribuí-lo individualmente sobesta Licença, desde que você insira uma cópia desta Licença no documento extraído, e siga estaLicença em todos os outros aspectos relacionados à cópia exata daquele documento.

AGREGAÇÃO COM TRABALHOS INDEPENDENTES

Uma compilação do Documento ou derivados dele com outros trabalhos ou documentos se-parados e independentes, em um volume ou mídia de distribuição, não conta como uma Ver-são Modificada do Documento, desde que nenhum copyright de compilação seja reclamado pelacompilação. Tal compilação é chamada um "agregado", e esta Licença não se aplica aos outrostrabalhos auto-contidos compilados junto com o Documento, só por conta de terem sido assimcompilados, e eles não são trabalhos derivados do Documento.

Se o requerido para o Texto de Capa na seção 3 for aplicável a essas cópias do Documento,então, se o Documento constituir menos de um quarto de todo o agregado, os Textos de Capado Documento podem ser colocados em capas adjacentes ao Documento dentro do agregado.Senão eles precisarão aparecer nas capas de todo o agregado.

TRADUÇÃO

Tradução é considerada como um tipo de modificação, então você pode distribuir traduçõesdo Documento sob os termos da seção 4. A substituição de Seções Invariantes por traduçõesrequer uma permissão especial dos detentores do copyright das mesmas, mas você pode incluirtraduções de algumas ou de todas as Seções Invariantes em adição às versões orignais dessasSeções Invariantes. Você pode incluir uma tradução desta Licença desde que você também in-clua a versão original em Inglês desta Licença. No caso de discordância entre a tradução e a

16

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

versão original em Inglês desta Licença, a versão original em Inglês prevalecerá.

TÉRMINO

Você não pode copiar, modificar, sublicenciar, ou distribuir o Documento exceto como expres-samente especificado sob esta Licença. Qualquer outra tentativa de copiar, modificar, sublicen-ciar, ou distribuir o Documento é nula, e resultará automaticamente no término de seus direitossob esta Licença. Entretanto, terceiros que tenham recebido cópias, ou direitos de você sob estaLicença não terão suas licenças terminadas, tanto quanto esses terceiros permaneçam em totalacordo com esta Licença.

REVISÕES FUTURAS DESTA LICENÇA

A Free Software Foundation pode publicar novas versões revisadas da Licença de Documen-tação Livre GNU de tempos em tempos. Tais novas versões serão similares em espirito à versãopresente, mas podem diferir em detalhes ao abordarem novos porblemas e preocupações. Vejahttp://www.gnu.org/copyleft/.

A cada versão da Licença é dado um número de versão distinto. Se o Documento especificarque uma versão particular desta Licença "ou qualquer versão posterior"se aplica ao mesmo, vocêtem a opção de seguir os termos e condições daquela versão específica, ou de qualquer versãoposterior que tenha sido publicada (não como rascunho) pela Free Software Foundation. Se oDocumento não especificar um número de Versão desta Licença, você pode escolher qualquerversão já publicada (não como rascunho) pela Free Software Foundation.

ADENDO: Como usar esta Licença para seus documentos

Para usar esta Licença num documento que você escreveu, inclua uma cópia desta Licençano documento e ponha as seguintes notas de copyright e licenças logo após a página de título:

Copyright (c) ANO SEU NOME.É dada permissão para copiar, distribuir e/ou modificar este documento sob os termos da Licençade Documentação Livre GNU, Versão 1.1 ou qualquer versão posterior publicada pela Free Soft-ware Foundation; com as Seções Invariantes sendo LISTE SEUS TÍTULOS, com os Textos daCapa da Frente sendo LISTE, e com os Textos da Quarta-Capa sendo LISTE. Uma cópia da li-cença está inclusa na seção entitulada "Licença de Documentação Livre GNU".

Se você não tiver nenhuma Seção Invariante, escreva "sem Seções Invariantes"ao invés dedizer quais são invariantes. Se você não tiver Textos de Capa da Frente, escreva "sem Textos deCapa da Frente"ao invés de "com os Textos de Capa da Frente sendo LISTE"; o mesmo para osTextos da Quarta Capa.

Se o seu documento contiver exemplos não triviais de código de programas, nós recomenda-mos a publicação desses exemplos em paralelo sob a sua escolha de licença de software livre,

17

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

tal como a GNU General Public License, para permitir o seu uso em software livre.

18

Parte IV

Iptables

19

Capítulo 1

O que é o Iptables

O Iptables é uma ferramenta a nível de usuário que manipula tabelas do Netfilter através decomparação de regras para saber se um pacote tem ou não permissão de passar, também podeser utilizado para modificar e monitorar o tráfego da rede, fazer NAT (Masquerading, Source NAT,Destination NAT), redirecionamento de pacotes que chegam e saem do sistema, contagem debytes, dividir o tráfego entre máquinas , criar proteções e outras potencialidades.

O curso, com base na distribuição Debian, possui uma semana, começa na segunda-feira etermina no domingo. Todo o conteúdo do curso estará visível somente a partir da data de início.Para começar o curso, você deve ler o Guia do aluno a seguir.

20

Capítulo 2

Plano de ensino

2.1 Objetivo

Qualificar técnicos à implementarem a filtragem de pacotes utilizando iptables em GNU/Linux.

2.2 Público Alvo

Técnicos da área de segurança de redes e administradores de rede em geral

2.3 Pré-requisitos

Os usuários deverão ser, necessariamente, indicados por empresas públicas e ter conheci-mentos básicos de redes TCP/IP.

2.4 Descrição

O curso de Iptables será realizado na modalidade EAD e utilizará a plataforma Moodle comoferramenta de aprendizagem. Ele é composto de um módulo de aprendizado e um módulo deavaliação que serão dados em uma semana. O material didático estará disponível on-line deacordo com as datas pré-estabelecidas no calendário. A versão utilizada para o Iptables será a1.2.11.

2.5 Metodologia

O curso está dividido da seguinte maneira:

2.6 Cronograma

Duração Descrição do módulo1 Semana Introdução, Filtragem de pacotes

21

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

Todo o material está no formato de lição, e estará disponível ao longo do curso. As liçõespoderão ser acessadas quantas vezes forem necessárias. Aconselhamos a leitura de "Ambien-tação do Moodle", para que você conheça o produto de Ensino a Distância, evitando dificuldadesadvindas do "desconhecimento"sobre o mesmo.Ao final da semana do curso será disponibilizada a prova referente ao módulo estudado anterior-mente que também conterá perguntas sobre os textos indicados. Utilize o material e os exemplosdisponibilizados para se preparar para prova.Os instrutores estarão a sua disposição ao longo de todo curso. Qualquer dúvida deve ser dispo-nibilizada no fórum ou enviada por e-mail. Diariamente os monitores darão respostas e esclare-cimentos.

2.7 Programa

• Semana 1

– Introdução;

– Portas dos serviços bem-conhecidos (well-known);

– O que é um filtro de pacotes?;

– Utilizando o Iptables;

– Guia ultra rápido para filtragem de pacotes.

2.8 Avaliação

Toda a avaliação será feita on-line.instrumentos de avaliação:

• Avaliações dentro das lições

• Avaliação ao final do curso.

Ao final do curso, o participante fará a avaliação final referente a todo o conteúdo do curso. Paraa aprovação e obtenção do certificado o participante deverá obter nota final maior ou igual a 6.0de acordo com a fórmula abaixo:

Nota Final = ((ML x 7) + (AF x 3)) / 10

ML= Média aritmética das lições.AF = Avaliação final

2.9 Bibliografia

• Site official: http://www.netfilter.org

22

Capítulo 3

Histórico

O projeto Netfilter/Iptables foi iniciado em 1998 por Rusty Russel, que também é autor o pro-jeto predecessor, Ipchains. Com o crescimento do projeto ele fundou o Netfilter Core Team (ousimplesmente coreteam) em 1999. O software criado por eles foi licenciado sob os termos daGPL (GNU Public License) e incorporado ao kernel do Linux em março do ano 2000.

O Firewall é um programa que tem como objetivo proteger a máquina contra acessos indesejados,tráfego indesejado, proteger serviços que estejam rodando na máquina e bloquear a passagemde coisas que você não deseja receber (como conexões vindas da Internet para sua segura redelocal, evitando acesso aos dados corporativos de uma empresa ou a seus dados pessoais).

Antes do Iptables, o software predominante para a criação de firewalls no Linux era o Ipchainsnos kernels do Linux da série 2.2 e o Ipfwadm da série 2.0, que por sua vez foi baseado no Ipfwdos BSDs.

3.1 Introdução ao Netfilter/Iptables

3.1.1 Firewall Filtro de Pacotes

Esta classe de firewall é responsável por filtrar todo o tráfego direcionado ao próprio hostFirewall ou à rede que este isola, tal como todos os pacotes emitidos por ele ou por sua rede.Ocorre mediante análise de regras previamente inseridas pelo administrador do mesmo.

O Firewall filtro de pacotes possui a capacidade de analisar cabeçalhos (headers) de pacotesenquanto os mesmos trafegam. Mediante esta análise, que é fruto de uma extensa comparaçãode regras previamente adicionadas, pode decidir o destino de um pacote como um todo.

A filtragem pode, então, deixar tal pacote trafegar livremente pela rede ou simplesmente pararsua trajetória, ignorando-o por completo. O mesmo é, sem dúvida, a classe mais utilizada deFirewall e não aplicar seus conceitos é deixar as portas abertas e permitir a livre circulação depacotes não confiáveis por sua rede.

Um Firewall filtro de pacotes em sua rede lhe fornecerá controle, segurança e vigilância.

23

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

3.1.2 Firewall NAT

Um firewall aplicado à classe NAT, a princípio, possui o objetivo de manipular a rota padrãode pacotes que atravessam o kernel do host Firewall aplicando-lhes o que conhecemos por "tra-dução de endereçamento". Isso lhe agrega diversas funcionalidades dentro deste resumido con-ceito como, por exemplo, a de manipular o endereçamento de origem (SNAT) e destino (DNAT)dos pacotes, tal como realizar o que conhecemos como "mascaramento"(Masqueranding) sobreconexões PPP, entre outras potencialidades.

Um firewall NAT pode, por exemplo, realizar o trabalho de um proxy de forma simples e efi-ciente, independentemente do IP. Veremos estas potencialidades citadas, com mais detalhes,posteriormente.

3.1.3 Netfilter/Iptables

O Netfilter é um conjunto de situações de fluxo de dados agregados ao kernel do linux e divi-dido em tabelas. Sob uma ótica mais prática, podemos ver o Netfilter como um grande banco dedados que contém em sua estrutura 3 tabelas padrões: Filter, Nat e Mangle. Cada uma destastabelas contém regras direcionadas a seus objetivos básicos. A tabela Filter, por exemplo, guardatodas as regras aplicadas a um Firewall filtro de pacotes; a tabela Nat as regras direcionadas aum Firewall Nat e a Mangle à funções mais complexas de tratamento de pacote como o TOS.Todas as tabelas possuem situações de fluxo (entrada, saída, redirecionamento, etc.) que lhesproporcionam a realização de seus objetivos.

O Iptables trata-se, na verdade, de uma ferramenta a nível de usuário para a manipulação dastabelas do Netfilter, embora o mesmo seja freqüentemente confundido com um Firewall por si só.Ele é uma versão mais robusta, completa e estável que seus antecessores Ipfwadm e Ipchains,dos kernels do Linux 2.0 e 2.2 , respectivamente.

Como principais características, o Iptables (além de realizar suas tarefas de forma veloz, efi-caz e econômica, tanto no aspecto financeiro quanto no de requerimento de hardware) nos dáum amplo leque de possibilidades tais como a implementação desde filtros de pacotes, utilizandoa tabela Filter, a NAT via tabela NAT e mais controles avançados como o desenvolvimento deQOS sobre o tráfego, suporte à SNAT e DNAT, redirecionamento de endereçamento e portas,mascaramento de conexões, detecção de fragmentos, monitoramento de tráfego, TOS, bloqueiode ataques, scanners ocultos, pings da morte e muito mais. E além disso tudo, ainda podemosutilizar módulos externos ampliando ainda mais o nosso leque de funcionalidades.

Os requerimentos básicos para o funcionamento do Iptables são um computador sobre a ar-quitetura 386 com, no mínimo, 4MB de RAM e obviamente, um kernel da série 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 seção

24

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

ativa e também em um determinado arquivo informado pelo administrador do Firewall;

Ip6tables-save: Aplicativo que salva todas as regras, para protocolos ipv6, inseridas na seçãoativa e também em um determinado arquivo informado pelo administrador do Firewall;

Iptables-restore: Aplicativo que restaura todas as regras, para protocolos ipv4, salvas pelo soft-ware Iptables-save;

Ip6tables-restore: Aplicativo que restaura todas as regras, para protocolos ipv6, salvas pelosoftware Ip6tables-save.

25

Capítulo 4

Tabelas

4.1 Tabela Filter

A tabela Filter é a tabela padrão do Netfilter/Iptables e trata das situações (chains) implemen-tadas por um Firewall filtro de pacotes.

Estas situações são:

INPUT: Todos os pacotes que entram no host;FORWARD: Todos os pacotes que entram no host, mas que devem ser redirecionados à um hostsecundário ou outra interface de rede;OUTPUT: Todos os pacotes que saem do host.

26

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

4.2 Tabela NAT

A tabela NAT é a tabela que implementa funções de NAT (Network Address Translation) aohost Firewall. O Nat por sua vez, possui diversas utilidades, conforme abordado anteriormente.

Suas situações (chains) são:

PREROUTING: É utilizada quando há necessidade de se fazer alterações em pacotes antesque os mesmos sejam roteados;OUTPUT: Trata os pacotes emitidos pelo host Firewall;POSTROUTING: Utilizado quando há necessidade de se fazer alterações em pacotes após otratamento de roteamento.

27

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

4.3 Tabela Mangle

A tabela MANGLE implementa alterações especiais em pacotes em um nível mais complexo.A tabela mangle é capaz, por exemplo, de alterar a prioridade de entrada e saída de um pacotebaseado no tipo de serviço (TOS) o qual o pacote se destinava.

Suas situações são:

PREROUTING: Modifica pacotes dando-lhes um tratamento especial antes que os mesmos se-jam roteados.OUTPUT: Altera pacotes de forma especial gerados localmente antes que os mesmo sejam rote-ados.

28

Capítulo 5

Sintaxe de Uso

5.1 Antes de começar

Antes de começar a utilizar o Iptables, precisamos nos certificar 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 não retorne nada, significa que você não o tem instalado e antes de darseqüência 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 açãodesejada, mas que, em geral, pode ser representada por:

iptables [-t tabela] -[comando] [situação (chain)] especificação-da-regra [alvo]

Veremos adiante uma descrição mais detalhada de cada parte desta sintaxe de uso.

5.2.1 Comandos

Segue abaixo uma lista de comandos básicos do Iptables com exemplos explicativos:

-A: Adiciona uma nova entrada no fim da lista de regras:

Exemplo que adiciona uma nova regra no final da lista referente a INPUT chain:

# iptables -A INPUT

29

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

-D: Apaga uma regra especificada da lista:

Exemplo que apaga a regra inserida anteriormente apenas trocando o comando -A por -D:

#iptables -D INPUT

Obs: O comando -D também permite apagar uma certa regra por seu número da lista de ocor-rências do Iptables.

Exemplo que apaga a regra de número 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 política padrão das chains. Inicialmente, todas as chains de um tabela estão se-tadas como ACCEPT, ou seja, aceitam todo e qualquer tipo de tráfego.

Exemplo que modifica a política padrão da chain FORWARD que ao invés de ser direcionadapara 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 po-lítica padrão.

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 início da lista de regras (Ao contrário do comando -A, que insereao final da lista)

30

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

# iptables -I OUTPUT

-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 especificada.

Exemplo que cria uma nova chain chamada internet na tabela filter:

# iptables -t filter -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 Especificação das regras

A maioria dos comandos do Iptables requerem especificação para as regras a serem aplica-das. A especificação da regra também inclui um alvo que especifica o que fazer com os pacotesque casam com a regra.

As seguintes opções são as mais utilizadas na criação de especificações para as regras:

-j (–jump) alvo: Especifica o alvo dos pacotes que casarem com a regra.

Exemplo:

#iptables -t filter -A INPUT -i eth0 -p tcp –dport 6881 -j ACCEPT

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

31

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

Exemplo:

#iptables -t filter -A INPUT -i eth0 -p tcp –dport 6881 -j ACCEPT

-s (–source): Casa pacotes cuja origem seja o endereço especificado.

Exemplo:

#iptables -t filter -A INPUT -s 192.168.1.1/24 –dport 6112 -j DROP

-d (–destination): Casa pacotes cujo destino seja o especificado.

Exemplo:

#iptables -t filter -A INPUT -d 192.168.1.1/24 –dport 6112 -j DROP

-dport (–destination-port): Casa pacotes cuja porta de destino seja a especificada.

Exemplo:

#iptables -t filter -A INPUT -i eth0 -p tcp –dport 6881 -j ACCEPT

-sport (–source-port): Casa pacotes cuja porta de origem seja a especificada

Exemplo:

#iptables -t filter -A OUTPUT -o eth0 -p tcp –sport 6881 -j DROP

Obs: Para uma lista mais completa, consulte a página 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 Netfilter aceite a passagem do pacote. O significado prá-tico disto depende da situação (chain) em que é feita esta aceitação. Por exemplo, um pacote queé aceito numa situação de entrada (INPUT chain) terá permissão para ser recebido pelo host, jáum pacote que é aceito numa situação de saída (OUTPUT chain) terá permissão para ser enviadopelo host, assim como um pacote que é aceito numa situação de encaminhamento (FORWARDchain) terá permissão para ser roteado através da rede;

32

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

DROP: Este alvo faz com que o Netfilter descarte o pacote referenciado sem processamentoprévio deste. Este pacote simplesmente desaparece sem nenhuma indicação do fato de ter sidodescartado ao host ou aplicação que o enviou. Freqüentemente é enviada para o emissor de talpacote uma indicação de tempo de comunicação esgotado (timeout), o que pode gerar uma certaconfusão;

QUEQUE: Este alvo faz com que o pacote seja enviado a uma fila e aguarda até que uma apli-cação o requeira. Caso não exista nenhuma aplicalvo capaz de requerer tal pacote na fila, estaalvo equivale a alvo DROP e o pacote é descartado;

REJECT: Este alvo tem o mesmo efeito do alvo DROP exceto pelo fato de que ele envia, aoremetente do pacote, um outro pacote de erro;

LOG: Este alvo "loga"o tráfego do pacote. Ou seja, cria um relatório, no syslog, do seu per-curso na rede. Pode ser usada em qualquer situação alvo (chain) e em qualquer tabela. Muito útilpara análise de quais pacotes estão sendo descartados;

SNAT: Este alvo faz com que o pacote tenha seu endereço de origem alterado. Utilizamos aflag --to-source"para indicar o novo endereço de origem do pacote. Este alvo só é válido parasitualvos (chains) de POSTROUTING dentro da tabela NAT.

DNAT: Este alvo faz com que o pacote tenha seu endereço de destino alterado. Utilizamos aflag --to-destination"para indicar o novo enderço de destino do pacote. Esta alvo é válida apenaspara situações alvos (chains) de OUTPUT e PREROUTING dentro da tabela NAT;

MASQUERADE:Este alvo é uma forma especial restrita de SNAT para conexões com IP’s di-nâmicos. Ao invés de ter que alterar a um alvo SNAT toda vez que o IP for alterado, este alvocalcula o endereço IP de origem para fazer o NAT analizando o endereço IP da interface de saídaquando um pacote encontra esta regra;

REDIRECT: Este alvo é responsável pelo redirecionamento de portas. Utilizamos a flag –to-portpara especificar a porta para a qual o tráfego da regra será redirecionado.

33

Capítulo 6

Aplicações da tabela nat

6.1 Considerações Iniciais

Antes de iniciarmos a manipulação de qualquer regra que se utilize da tabela NAT, é impor-tante que habilitemos a função de redirecionamento de pacotes (forward) em nosso kernel atravésdo seguinte comando:

#echo "1» procsysnetipvip_forward

Não se esqueça de utilizar este comando antes de adicionar qualquer regra que envolva a ta-bela NAT.

Outra observação importante é que sempre que fizermos um SNAT utilizaremos a situação (chain)POSTROUTING e sempre que fizermos um DNAT utilizaremos a situação (chain) PREROUTING,por motivos obvios.

6.2 SNAT

beçalho (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 saírem pela interface de rede eth0 terão os endereçosde origem alterados para 192.168.1.223.

6.3 DNAT

Com o DNAT é possível alterar o endereço de destino dos pacotes que casarem com a regracriada.

Exemplo:

34

CDTC Centro de Difusão 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 terão o endereçode 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 deportas em um mesmo host de destino. Este método é comumente utilizado, por exemplo, pelosoftware Squid, pois este costuma disponibilizar acesso à internet através da porta 3128 ao invésda porta padrão, 80, para este tipo de acesso.

Logo, concluímos que o Squid faz um redirecionamento das portas solicitadas por seus clien-tes, uma vez que estes solicitam conexão via porta 80 e são redirecionados à porta 3128. Paraesta finalidade utilizamos as situações (chains) PREROUTING e OUTPUT da tabela NAT e o alvoREDIRECT.

Nã o confunda proxy transparente com DNAT. A única forma de se fazer redirecionamento deportas de destino em um mesmo host é pelo alvo REDIRECT que caracteriza o modelo de proxytransparente.

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 serão redi-recionados 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. Paratanto, 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 IP’s da rede 192.168.1.0 com máscara de rede 255.255.255.0 serão"mascarados".

35

Capítulo 7

Aplicações da tabela mangle

7.1 TOS

O TOS (Type of Service) nos permite filtrar pacotes que trafegam na nossa rede capturando in-formações sobre o tipo de serviço ao qual o pacote se destina. Estas informações estão contidasno cabeçalho de cada pacote. O campo TOS foi criado especificamente para que pudéssemosfazer tal filtragem.

Para usufruirmos desta funcionalidade, nós utilizamos a tabela mangle do Netfilter. O TOS éum alvo (target) para o qual direcionamos os pacotes desejados referenciando-os em uma deter-minada regra. Compreenderemos o seu uso mais adiante.

7.2 Aplicando TOS

Para aplicar filtragem por TOS em nossa rede fazemos uso da tabela mangle e do alvo TOSseguido pelo parâmento –set-tos valor, em que os valores possíveis são, em ordem descrescentede prioridade:

Espera Mínima: É especificado através de Minimize-Delay, 16 ou 0x10; Máximo Processamento:É especificado através de Maximize-Throughput, 8, ou 0x08; Máxima Confiança: É especificadoatravés de Maximize-Reliability, 4 ou 0x04; Custo mínimo: Especificado através de Minimize-Cost,2 ou 0x02; Prioridade Normal: Especificado através de Normal-Service, 0 ou 0x00.

Por padão, a prioridade dada à todos os pacotes, a menos que você especifique outro, será aprioridade normal.

Exemplos:

#iptables -t mangle -A OUTPUT -o eth0 -p tcp –dport 5123 -j TOS –set-tos 16

Este exemplo dá prioridade de espera mínima à todos os pacotes tcp que saem da rede pelainterface de rede eth0 com porta de destino 5123. Ou seja, estes pacotes terão uma facilidademaior para trafegar na rede.

36

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

7.3 TOS no tráfego de entrada

Esta operação é realizada nas situações (chains) INPUT ou PREROUTING. Não faz muitosentido o uso desta chain (situação) dentro de uma rede pequena ou média, pois o tráfego querecebermos será priorizado pelo chain de saída de outras máquinas da internet ou de outras re-des antes de chegar a nossa (desde que elas também 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 tráfego de saída

Esta operação pode ser realizada somente na situação (chain) OUTPUT e tem por objetivocontrolar o tráfego de saída em nossa rede.

Exemplos:

Para priorizar todo o tráfego 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 mínima e será enviado antes dos pacotes com prioridadenormal para fora.

Para priorizar a transmissão 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 tráfego de ICQ da rede:

#iptables -t mangle -A OUTPUT -o ppp0 -p tcp –dport 5190 -j TOS –set-tos 16

37

Capítulo 8

Modulos

Os módulos do iptables são especificados com a opção -m módulo ou –match módulo e per-mitem expandir a funcionalidade do firewall através de novas conferências e recursos de filtragemadicionais, como limitar a conferência de regras do firewall (um método útil de limitar ping floods,syn floods, etc).

8.1 Limit

Regras sob o módulo limit especificam exatamente quantas vezes as mesmas devem ser exe-cutadas em um intervalo de tempo específico e, caso isto ocorra, ela automaticamente executaráa regra seguinte.

Trata-se de um módulo muito útil para conter ataques sofisticados como ataques do tipo DOS(Denial Of Service) onde o cracker tenta enviar o máximo de requisições ICMP possíveis em ummenor intervalo de tempo, esperando que com isso cause uma negação de serviços por parte deseu 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 ) serão aceitos somente serecebidos em um intervalo de tempo de 1 segundo ( -m limit –limit 1/s -j ACCEPT ). Caso algumpacote ultrapasse este limite imposto pela regra, esta deverá automaticamente executar a regraseguinte 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 módulo state atribui regras mediante a análise do estado da conexão de um pacote. Taisestados podem ser:

38

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

NEW: Indica que o pacote está criando uma nova conexão;ESTABLISHED: Informa que o pacote pertence à uma conexão já existente, logo, trata-se de umpacote de resposta;RELATED: Referente à pacotes que relacionam-se indiretamente com outro pacote, a exemplodas mensagens de erros de conexão;INVALID: Referente à pacotes não identificados por algum motivo desconhecido. Aconselha-seque 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 conexão que parta da interface eth0 seja rejeitada.

8.3 Mac

Mac (Media access control) é a identificação de mais baixo nível que um dispositivo de redepode ter.

O módulo mac permite que seu Firewall atue neste nível, independentemente de endereçamentode rede. Logo, a checagem da regra não depende mais do endereço IP e sim do endereço Macdo 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 endereçomac foi referenciado.

8.4 Multiport

O módulo multiport permite que seja especificado múltiplas portas para um alvo. Podem serespecificadas até 15 portas em um único parâmetro e basta que uma porta confira para que aregra entre em ação, pois a comparação é feita usando condições "or". O parâmetro multiportdeve ser acompanhado de um dos argumentos abaixo:

• –source-port [porta1, porta2...] - Faz a regra conferirse se s porta de origem estiver presenteentre as portas especificadas;

• –destination-port [porta1, porta2...] - Faz a regra conferir se a porta de destino estiverpresente entre as portas especificadas;

• -port [porta1, porta2...] - Faz a regra conferir caso a porta de origem ou destino estejapresente no parâmetro.

39

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

Este módulo pode eliminar muitas regras de firewall que fazem o mesmo tratamento de paco-tes para diversas portas diferentes.

Exemplo:

#iptables -A INPUT -p tcp -i ppp0 -m multiport –destination-port 21,23,25,80,110,113,6667 -jDROP

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 módulo string do Iptables permite a inspeção de conteúdo de um pacote e tomar uma açãose determinado tipo de tráfego for encontrado em um pacote. Esta técnica pode ser usada tantopara segurança como para economia de banda dentro da rede. Esta opção *NÃO* torna o Ipta-bles como um firewall proxy, pois o proxy tem a habilidade de inspecionar o conteúdo, protocolo,comandos do pacote e decidir se o seu conteúdo é nocivo ou não.

O firewall em nível de pacotes fazendo inspeção de conteúdo chega a ser 3 a 10 vezes maisrápido do que um proxy, assim seu uso deve ser analisado dependendo do tráfego que circulapelo link e da segurança dos dados que trafegam através dele.

Uma boa prática é aliar esta opção a um IDS externo usando o alvo QUEUE e deixando o traba-lho de inspeção de conteúdo para ele. Um exemplo de restrição direta é o bloqueio do envio dequalquer informação confidencial sigilosa para fora da rede interna (número de contas, tudo queconferir com CPF, CGC, endereços de e-mail, memorandos, etc).

De qualquer forma, analise o tráfego de sua rede antes de querer implementar qualquer solu-ção baseada neste método sob o risco de afetar tráfego legítimo.

Outra utilidade eficiente é a diminuição de tráfego, pois podemos barrar programas que sobrecar-regam o link em uma rede com muitos usuários como, por exemplo, usando o Kazaa ou qualqueroutro programa para cópia 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

Não permite que dados confidenciais sejam enviados para fora da empresa e registra o ocor-rido:

#iptables -A OUTPUT -m string –string "conta-j LOG –log-prefix "ALERTA: dados confidencial"#iptables -A OUTPUT -m string –string "conta-j DROP

40

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

Somente permite a passagem de pacotes que não contém ".exe"em seu conteúdo:

#iptables -A INPUT -m string –string ! ".exe-j ACCEPT

8.6 Owner

Este módulo confere com o usuário que iniciou a conexão. É somente válido no chain OUT-PUT da tabela filter. Os seguintes argumentos são válidos para este módulo:

• –uid-owner UID - Confere se o pacote foi criado por um processo com o UID especificado.Até o momento somente UID numéricos são aceitos;

• –gid-owner GID - Confere se o pacote foi criado por um usuário pertencente ao grupo GID.Até o momento somente GID numéricos são aceitos;

• –pid-owner PID - Confere se o pacote foi criado por um processo com o PID especificado;

• –sid-owner ID - Confere se o pacote foi criado por um processo no grupo de seção especi-ficado.

OBS: - Lembre-se que pacotes que não possuem detalhes suficientes de cabeçalho nuncaserão conferidos.

Exemplo:

#iptables -A OUTPUT -m owner –gid-owner 100 -p udp -j DROP

Este exemplo rejeita um conexões indo para portas UDP de pacotes criados pelo usuários per-tencentes ao grupo 100.

41