Je ne pourrai pas réellement te dire pourquoi ça fait ça : j’ai eu ce genre d’avertissements aussi en jouant avec les runlevel, ils sont partis quand j’ai bidouillé le script et je ne me suis jamais vraiment posé la question puisqu’il ne me dit plus rien.
Je soupçonne (sans avoir le courage de vérifier) que c’est parce que je/tu avons un peu trop joué avec les runlevels et fait des update … defaults sans forcément faire de update … remove avant.
Par contre, si je peux te donner un conseil… Démarre ton iptables avant que tes interfaces soient montées : ça évite un “trou” (même minuscule) durant lequel tu as du réseau sans firewall.
Pour ça, il faut démarrer en S juste avant “networking” (qui monte les interfaces) mais après “ifupdown” (à priori nécessaire, je n’ai pas testé sans mais ça mange pas de pain) et “mountkernfs” (pour pouvoir configurer certains paramètres réseau dans /proc).
Aussi, pas besoin de Stop (inutile de faire un flush des règles quand tu éteins la machine).
Mon header, qui fait tout ça sans avertissements :
[code]### BEGIN INIT INFO
Provides: le-nom-de-ton-script
Required-Start: mountkernfs ifupdown $local_fs
X-Start-Before: networking
Default-Start: S
Required-Stop:
Default-Stop:
Short-Description: Configure the ip(6)tables firewall.
Description: Configure the ip(6)tables firewall.
END INIT INFO[/code]
Puis pour mettre à jour :
## le "remove" risque de te donner des avertissements, si oui suis ses conseils
update-rc.d le-nom-de-ton-script remove
update-rc.d le-nom-de-ton-script defaults
Ce qui me fait penser que ton “iptables configuration” (avec espace) dans le “Provides” c’est pas forcément très catholique. Ou pas.
D’accords pour les dépendances, mais le runlevel S ??
Est-ce qu’il démarre bien dans tous les runlevel ?
Il me semble que c’est le mode mono-utilisateur, non ?
Edit, j’ai trouvé pour les warnings :
BEGIN INIT INFO
Provides: ipconf
Required-Start: mountkernfs ifupdown $local_fs
X-Start-Before: networking
Default-Start: 2 3 4 5
Required-Stop:
Default-Stop: 0 1 6
Short-Description: Configure the iptables firewall.
Description: Configure the iptables firewall.
END INIT INFO
pour le runlevel 2 : normalement, aucun démon n’est lancé à ce niveau, ni d’interfaces réseau. C’est ce que je croyais, et c’est pourquoi je ne l’avais pas indiqué après documentation. Or, Debian semble le considérer différemment, d’où l’inclusion ici.
avec
update-rc.d -f ./ipconf remove
update-rc.d ./ipconf defaults
[quote=“Lancazar”]D’accords pour les dépendances, mais le runlevel S ??
Est-ce qu’il démarre bien dans tous les runlevel ?
Il me semble que c’est le mode mono-utilisateur, non ?[/quote]
Lors du démarrage de ta machine le runlevel S est toujours exécuté avant de basculer vers 2/3/4/5 selon je-ne-sais-plus-quelle-règle. D’ailleurs si tu regardes /etc/init.d/networking (qui déclenche, entre autres, un ifup de toutes tes interfaces réseau) il ne démarre qu’en S et pourtant tes interfaces sont bien actives dans tous les runlevel.
Donc, en runlevel 2/3/4/5 le X-Start-Before networking est impossible à satisfaire puisque ce dernier a été lancé depuis belle lurette. La raison pour laquelle insserv ne grogne pas doit être qu’il ne fait pas de comparaisons inter-runlevels mais uniquement intra.
De toutes façons, une fois ton iptables configuré en S, peu importe vers quel runlevel tu bascules ensuite, les règles ne vont pas s’effacer toutes seules. Sachant, je me répète, que le S est systématiquement exécuté à chaque boot, peu importe vers quel runlevel “final” tu te diriges.