Estrutura do IPTables 2: a tabela nat
Quais os poderes da tabela nat existente no iptables? E as listas PREROUTING, POSTROUTING, para que servem?
Introdução: ganchos do netfilter
Este artigo é uma continuação do Estrutura do iptables.
Um pacote passa por várias etapas dentro do kernel do Linux, dependendo se ele for roteado pela máquina, destinado a ela ou se este pacote foi, na verdade, gerado pelo ip da máquina. O netfilter introduziu "ganchos", pontos ao longo do ciclo de vida de um pacote, onde o mesmo pode ser avaliado por regras de firewall. A figura 1 destaca estes pontos.

Figura 1
Os conjuntos de regras são necessariamente agrupados em tabelas. Uma tabela praticamente define o seu poder, o que pode ou o que não pode realizar com o pacote e uma tabela possui vários conjuntos de regras. Ao todo são três tabelas principais existentes no iptables:
As regras da tabela nat tem o poder de alterar características de origem ou de destino de um pacote. Como característica de origem entende-se ip de origem ou porta de origem e como características de destino tem-se o ip destino e porta destino.
A tabela nat possui três conjuntos de regras, de acordo com os ganchos da figura 1: PREROUTING, POSTROUTING e OUTPUT.
Atualizado em Novembro de 2013: a partir do kernel 2.6.36 foi inserido a lista INPUT na tabela nat. Ainda não descobri o real sentido disto, pois aparentemente não teria utilidade. Um email enviado para o git do kernel explica uma determinada situação envolvendo redes com ips semelhantes, mas ainda cabe se aprofundar no assunto. Na Internet chove pessoas perguntando porque e outros afirmando que não existe. Mas existe sim. Só a partir do kernel 2.3.36 (????)
Um pacote passa por várias etapas dentro do kernel do Linux, dependendo se ele for roteado pela máquina, destinado a ela ou se este pacote foi, na verdade, gerado pelo ip da máquina. O netfilter introduziu "ganchos", pontos ao longo do ciclo de vida de um pacote, onde o mesmo pode ser avaliado por regras de firewall. A figura 1 destaca estes pontos.
Figura 1
Os conjuntos de regras são necessariamente agrupados em tabelas. Uma tabela praticamente define o seu poder, o que pode ou o que não pode realizar com o pacote e uma tabela possui vários conjuntos de regras. Ao todo são três tabelas principais existentes no iptables:
- filter;
- nat;
- mangle.
As regras da tabela nat tem o poder de alterar características de origem ou de destino de um pacote. Como característica de origem entende-se ip de origem ou porta de origem e como características de destino tem-se o ip destino e porta destino.
A tabela nat possui três conjuntos de regras, de acordo com os ganchos da figura 1: PREROUTING, POSTROUTING e OUTPUT.
Atualizado em Novembro de 2013: a partir do kernel 2.6.36 foi inserido a lista INPUT na tabela nat. Ainda não descobri o real sentido disto, pois aparentemente não teria utilidade. Um email enviado para o git do kernel explica uma determinada situação envolvendo redes com ips semelhantes, mas ainda cabe se aprofundar no assunto. Na Internet chove pessoas perguntando porque e outros afirmando que não existe. Mas existe sim. Só a partir do kernel 2.3.36 (????)
Já tá nos favoritos.