Nós usamos um script init personalizado, é claro. Eu posso usar for-loops para percorrer uma lista de portas, analisar outros arquivos de configuração como os usuários vpn, etc. Excelente!
E o iptables-restore é certamente a maneira mais "canônica" de salvá-lo.
O que eu quero adicionar:
Observe que a versão atual do iptables solicitará, a cada invocação, que o kernel devolva a lista completa de cadeias. Então, ele fará a alteração que você pedir. Em seguida, ele fará o upload da lista novamente.
Isso é lento (O (n ^ 2)), para nós ele precisa de 5 segundos, o que é muito longo ;-)
Se você usar o iptables-restore, tudo será executado em uma operação rápida.