Eu percebi assim que perguntei isso que existem iptables-save e iptables-restore . No entanto, não tenho certeza de como isso funcionaria. Vou postar como uma resposta, mas acho que a solução real será um pouco mais complicada.
Pode-se usar iptables-save , que imprime as cadeias atualmente carregadas na stdout. Você também pode usar a opção -t para especificar cadeias definidas pelo usuário . Assim, você poderia produzir cada cadeia em um arquivo, um por um, e controlá-los. No entanto, não consigo ver uma maneira fácil de recarregar as cadeias uma a uma, pois o equivalente iptables-restore não tem a opção equivalente ( -t significa teste).
A outra limitação deste método que notei foi que não há como salvar as cadeias embutidas individualmente (ou seja, INPUT, OUTPUT e FORWARD). A única maneira de obtê-los é não usar a opção -t e descartar tudo.
Seria necessário algum script para transformar tudo isso em algo que alguém pudesse salvar e recarregar facilmente.