Sauvegarder simplement (et automatiquement) ses règles IP(6)Tables.
Catégorie(s) :Linux
Netfilter-persistent, ou comment sauvegarder et maintenir facilement vos règles IPTables.
Beaucoup d’entre vous (je l’espère!) utilisent IPTables pour sécuriser leurs serveurs voire leurs ordinateurs personnels. Malheureusement, il arrive parfois que votre machine redémarre et que par conséquent, vos règles IPTables disparaissent. En effet, celle-ci ne les sauvegardes pas et vous n’avez pas pensé à le faire vous-même.
Ce petit outil est justement là pour ça, il permet de sauvegarder très facilement vos règles iptables en IPv4 et IPv6 dans deux fichiers distincts, qu’il utilisera pour les ré-appliquer dès que nous lui demanderons ou que votre système le lui demandera (au démarrage, par exemple !).
Cet outil n’existe que sous les distributions Debian et dérivés (Mint, (U|Ku|Xu|Lu|Edu)buntu, etc) et se trouve dans les dépôts fournis de base par ces distributions.
Nous allons voir comment installer celui-ci, l’utiliser et si besoin l’automatiser sur notre machine.
Installation
Elle se fait simplement, à travers un terminal en root (ou en précédant la commande par “sudo”) :
1 | $ apt-get install netfilter-persistent |
Voilà, notre paquet est installé.
Configuration & Utilisation
Et bien, pour la configuration, c’est effectivement très rapide… il n’en existe pas. Ça nous facilite encore plus la tâche non? Vous croyez suer pour la faire… et bien non, quel dommage !
L’utilisation, elle, se veut simple mais (très) efficace, il vous suffira d’appeler le script à travers la commande “service” (en root ou précédé de “sudo”) comme suit :
1 | $ service netfilter-persistent start|restart|reload|force-reload|save|flush |
En détails :
- Start – Restart – Reload – Force-reload : Ces quatre commandes sont équivalentes, elles permettent simplement de recharger toutes les règles contenues au sein des fichiers de sauvegarde (/etc/iptables/rules.v4 et /etc/iptables/rules.v6)
- Save : Elle permet d’effectuer la sauvegarde des règles existantes au sein des fichiers de sauvegarde (/etc/iptables/rules.v4 et /etc/iptables/rules.v6)
- Flush : Supprime toutes les règles existantes au sein d’IP(6)Tables et replace les chaines en « ACCEPT » par défaut.
Dès lors que vous aurez ajouté vos règles (si ce n’est déjà fait), il vous suffira d’effectuer leur sauvegarde en utilisant simplement :
1 | $ service netfilter-persistent save |
Automatisation
Pour les personnes effectuant des modifications régulières au sein de leurs règles, il peut être intéressant d’automatiser la sauvegarde de manière régulière (pouvant aller de quelques minutes, à quelques heures ou jours)
Il nous suffira dans ce cas-ci d’utiliser « cron » pour effectuer ceci.
Pour vous faciliter la tâche, j’ai déjà rédigé un petit script bash qui exécutera à chaque appel la sauvegarde de vos règles que vous pouvez obtenir comme ceci :
1 | $ wget https://dl.dtoweb.ovh/Unix/scripts/saveipts.sh -O ~/.scripts/saveipts.sh && chmod +x ~/.scripts/saveipts.sh |
Le script se trouve désormais dans le dossier « .scripts » et il vous suffit de l’appeler à travers cron pour mettre à jour votre sauvegarde IP(6)Tables, celle-ci inscrit une ligne de log dans le « syslog » de votre système pour confirmer l’exécution du script ou une erreur si celui-ci n’a pas fonctionné.
Un exemple de crontab qui permet d’exécuter la commande tous les jours à minuit
1 2 3 4 5 6 7 | $ crontab -e # Edit this file to introduce tasks to be run by cron. # Each task to run has to be defined through a single line # indicating with different fields when the task will be run # and what command to run for the task [..............] 0 0 * * * /root/.scripts/saveipts.sh # la ligne que nous ajouterons |
Vous pouvez laisser votre avis et vos questions si vous avez besoin d’aide, dans les commentaires ci-dessous !