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.