Chapitre 8. Sauvegarde et restauration des tables de règles importantes

Le paquetage iptables est fourni avec deux outils très utiles, spécialement si vous utilisez des tables de règles importantes. Ces deux outils sont appelés iptables-save et iptables-restore et sont utilisés pour la sauvegarde et la restauration des tables de règles dans un format spécifique qui semble un peu différent du code shell standard que nous avons vu dans ce didacticiel.

[Astuce] Astuce

iptables-restore peut être utilisé en conjonction avec des langages de script. Le gros problème est que vous devrez envoyer les résultats dans le stdin de iptables-restore. Si vous avez créé une très grosse table de règles (plusieurs milliers de règles) ce peut être une bonne idée, car il est plus rapide d'insérer toutes les nouvelles règles. Par exemple, vous pourrez exécuter make_rules.sh | iptables-restore.

8.1. Considérations de vitesse

Une des principales raisons d'utiliser iptables-save et iptables-restore est qu'elles améliorent la vitesse de chargement et de restauration des tables de règles importantes. Le problème principal lors du lancement de scripts shell contenant des règles iptables est que chaque invocation d'iptables dans le script extraira l'ensemble des règles de l'espace Netfilter du noyau, et après cela, inserrera les règles, ou toute autre action en réponse à la commande spécifique. Enfin, ajoutera les nouvelles règles issues de sa propre mémoire dans l'espace noyau. L'utilisation d'un script shell, créé pour chacune des règles que vous voulez insérer, prend plus de temps pour l'extraction et l'insertion de la table de règles.

Pour résoudre ce problème, il existe les commandes iptables-save et restore. La commande iptables-save est utilisée pour sauvegarder la table de règles dans un fichier texte au format spécial, et la commande iptables-restore est utilisée pour charger ce fichier à nouveau dans le noyau. Le plus intéressant de ces commandes est qu'elles chargent et sauvegardent la table de règles en une seule action. iptables-save récupérera la table de règles du noyau et la sauvegardera dans un fichier en une seule action. iptables-restore enverra la table de règles au noyau en une seule action pour chaque table. En d'autres termes, au lieu d'effacer la table de règles du noyau quelques 30 000 fois, ce qui arrive pour les tables de règles importantes, et ensuite la renvoyer au noyau, nous pouvons maintenant sauvegarder cet ensemble dans un fichier en une ou deux actions.

Comme vous pouvez le comprendre, ces outils sont définitivement faits pour vous si vous utilisez un vaste ensemble de règles. Cependant, elles ont des inconvénients, comme nous le verrons dans la section suivante.