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

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

estou passando peloTutorial de iptablese estou atualmente emCapítulo 6, Travessia de tabelas e cadeias.

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

Questões:

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

  2. Devo aprender/memorizar automaticamente as várias etapas abordadas nessas tabelas?

  3. O tutorial acima parece ter muitos anos. Tudo o que é dito iptableslá ainda é 100% válido. A iptablesversão que tenho no meu sistema é 1.4.14.

Todas estas questões surgem principalmente porque até agora “sinto” que, talvez, tudo o que iptablesdeveria ter feito era ter-nos proporcionado umamínimoconjunto de pontos de gancho (como, por exemplo, ganchos pré e pós-roteamento) e a capacidade de fazerarbitrárioprocessamento de pacotes (em qualquer sequência que considerarmos adequada e qualquer número de vezes - uma máquina de estado 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' deveria vir somente depois de 'entrada desfigurada', e não antes? E por que não antes e depois? Etc.

Responder1

Existe um livro ou recurso online melhor?

Possivelmente? Provavelmente? Existem muitos recursos online e offline para aprender Linux e iptables. OWikipédiatem uma boa visão geral. Aqui estáoutroguia de uso e administração. Aqui estáoutroguia com as mesmas informações do FrozenTux, mas ligeiramente reescrito.

Devo aprender/memorizar mecanicamente as várias etapas

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

Vocêprecisarmemorizar tudo para usar o iptables? Não. Ofiltroserá padronizado se você não definir nenhuma outra tabela. Seria útil se você deseja aproveitar ao máximo o iptables? Absolutamente.

Ainda válido?

Sim.

por que a etapa de 'entrada de filtro' deveria vir somente depois de 'mangle input' e não antes? E por que não antes e depois?

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

É 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 tomar decisões de "entrada" ou de entrada em um pacote depois que ele já foi roteado e está saindo.

Você notará que a tabela 6.3 NÃO é uma continuação da tabela 6.2. Em vez disso, elas são semelhantes até a linha 7 (decisão de roteamento) e então 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 reembalado 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.

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

** Estou ciente de que misturo livremente "quadro", "segmento" e "pacote". Desculpe, eu realmente não deveria. A menos que eu esteja tentando defender uma ideia ou fazendo uma análise de rede específica, sempre faço isso.

informação relacionada