L’arrivée de systemd change un tas de choses dans nos habitudes. Il est évidemment nécessaire de comprendre un minimum son fonctionnement si on souhaite totalement abandonner Sysvinit. Une des premières choses sur laquelle j’ai du me pencher est la configuration du pare-feu (ainsi que des points de montage). Bref, ce billet va rapidement vous montrer comment configurer votre pare-feu au démarrage du système.
Tout d’abord, utilisez vous bien systemd en tant que système d’initialisation? Voici comment avoir la réponse.
$ ls -lh /sbin/init lrwxrwxrwx 1 root root 20 Apr 16 17:53 /sbin/init -> /lib/systemd/systemd |
Pour la première étape, il convient de sauvegarder les règles actuelles du pare-feu (voici mon pare-feu).
# iptables-save > /etc/iptables.rules |
La deuxième étape est la création d’un fichier de service systemd afin d’exécuter iptables au démarrage du système, avec les règles précédemment sauvegardées.
# cat /etc/systemd/system/iptables.service [Unit] Description=Firewall After=network.target [Service] Type=oneshot RemainAfterExit=yes ExecStart=/bin/sh -c "/sbin/iptables-restore < /etc/iptables.rules" [Install] WantedBy=multi-user.target |
Voici encore une des raisons pour laquelle j’aime bien systemd. Je trouve ce formalisme très clair.
Finalement, il est nécessaire d’activer le nouveau service.
# systemctl enable iptables.service # systemctl restart iptables.service |
Vous pouvez vérifier l’état du service de la manière suivante.
# systemctl list-unit-files | grep iptables iptables.service enabled # systemctl status iptables.service ● iptables.service - Firewall Loaded: loaded (/etc/systemd/system/iptables.service; enabled) Active: active (exited) since Mon 2015-05-11 07:40:14 CEST; 11min ago Main PID: 3307 (code=exited, status=0/SUCCESS) |
C’est terminé, votre pare-feu sera automatiquement configuré aux prochains démarrages du système.