iptables: entendendo a lógica por trás de suas tabelas e cadeias

0

Estou passando pelo tutorial do iptables e atualmente estou no Capítulo 6 , O deslocamento de tabelas e correntes .

Estou tendo problemas para entender o porquê por trás das Tabelas 6-1, 6-2 e 6-3 listadas no capítulo acima.

Perguntas:

  1. Existe um livro ou recurso online melhor, onde uma explicação melhor pode ser encontrada?

  2. Eu deveria aprender / memorizar os vários passos abordados nestas tabelas?

  3. O tutorial acima parece ter muitos anos. Está tudo dito de iptables lá ainda 100% válido. A versão iptables que tenho no meu sistema é 1.4.14 .

Todas estas questões surgem principalmente porque eu até agora 'sinto' que, talvez, tudo o que iptables deveria ter feito foi nos fornecer um conjunto de pontos de gancho mínimo (como, eg ganchos pré e pós-roteamento), e capacidade de fazer processamento de pacotes arbitrários (em qualquer sequência que consideramos adequada e em qualquer número de vezes - uma máquina de estados personalizada) em vez de estipular a sequência detalhada de etapas como nas Tabelas acima. Por exemplo, no diagrama que segue a Tabela 6-3, por que a etapa de 'entrada de filtro' deve vir somente depois de 'entrada de mangle' e não antes? E por que não antes e depois? Etc.

    
por Harry 26.09.2012 / 07:01

1 resposta

1

Is there a better book or online resource?

Possivelmente? Provavelmente? Há uma tonelada de recursos on-line e off-line para aprender Linux e iptables. O Wiki tem uma boa visão geral. Aqui está outro guia de uso e administração. Aqui está outro guia com as mesmas informações que o FrozenTux, mas reescrito um pouco.

Am I supposed to rote-learn / memorize the various steps

Isso depende. Por que você está estudando em primeiro lugar?

Você precisa memorizar tudo para usar o iptables? Não. O filtro é padronizado se você não definir nenhuma outra tabela. Seria útil se você quiser aproveitar o iptables em toda a sua extensão? Absolutamente.

Still valid?

Sim.

why should the 'filter input' step come only after 'mangle input', and not before? And, why not both before and after?

A chave é a descrição na tabela 6.1, linhas 8 e 9. Em essência, você quer tomar decisões sobre a alteração (também conhecida como mangling) do pacote antes de realmente filtrar o pacote.

É por isso que a cadeia de entrada do mangle é atingida primeiro e depois a cadeia de entrada do filtro.

Da mesma forma, a sequência de etapas é importante porque o pacote está chegando à máquina (que está executando o iptables). Você não pode fazer "entrada" ou decisões de entrada em um pacote depois que ele já foi roteado e agora é de saída.

Você notará que a tabela 6.3 NÃO é uma continuação da tabela 6.2 Em vez disso, eles são semelhantes até a linha 7 (decisão de roteamento) e, em seguida, a linha 8 é um caminho ou bifurcação diferente. A Tabela 6.2 é para pacotes dentro da mesma rede. A Tabela 6.3 é para pacotes fora da rede.

É importante lembrar o modelo OSI de 7 camadas. Cada bit de dados é empacotado e reempacotado em vários segmentos, pacotes e quadros. Cada "salto" de rede é outra oportunidade para qualquer segmento, pacote ou quadro específico ser manipulado e reescrito.

O iptables dá um controle muito granular sobre o reempacotamento. Você pode escrever regras sobre pacotes de entrada, pacotes de saída, pacotes apenas para sua rede e não outros, ou vice-versa, seu dispositivo, não seu dispositivo, etc. E você pode alterar vários cabeçalhos para todos esses quadros. **

** Estou ciente de que eu livremente me misturo a "frame", "segment" e "packet". Desculpe, eu realmente não deveria. A menos que eu esteja tentando fazer um ponto ou fazer uma análise de rede específica, eu sempre faço isso.

    
por 26.09.2012 / 09:35

Tags