Temps de lecture estimé: 1 minute
Ça fait quelques jours (depuis une mise à jour je ne sais quand… ) que je me réveille et que je constate que mon serveur est offline. Je perdais sans raison apparente l’adresse ip (seulement l’ipv4 puisque l’ipv6 restait).
Tous les jours j’allais sur l’interface web d’Esxi pour avoir un accès direct à la machine virtuelle (heureusement que ce n’était pas un serveur physique) pour lancer manuellement la commande:
dhclient -4 -v
Pour demander le bail d’une ipv4 au serveur DHCP.
Il m’a fallu un peu de temps avant que je me décide à régler le problème à la source et pour de bon. En regardant dans les logs j’ai trouvé qu’apparmor empêchait dhclient de s’exécuter correctement:
[61607.045817] audit: type=1400 audit(1589264421.828:46): apparmor="DENIED" operation="open" profile="/{,usr/}sbin/dhclient" name="/proc/365954/task/365955/comm" pid=365954 comm="dhclient" requested_mask="wr" denied_mask="wr" fsuid=0 ouid=0
Ce n’est peut être pas la solution la plus clean, mais j’ai tout simplement désactivé dhclient de apparmor. Tout simplement en créant un lien symbolique et en plaçant le script apparmor de dhclient dans le dossier disable:
ln -s /etc/apparmor.d/sbin.dhclient /etc/apparmor.d/disable/sbin.dhclient
Edit du 02/05/2021:
comme suggéré par John Johansen dans les commentaires, la solution la plus propre est d’ajouter une règle dans le fichier:
/etc/apparmor.d/sbin.dhclient
en dessous des règles existantes, il faut rajouter:
@{PROC}/@{pids}/task/[0-9]*/comm rw,
puis avec aa-enforce (à installer avec apt si ce n’est pas encore installé sur ton système):
aa-enforce /etc/apparmor.d/sbin.dhclient
la discussion originale se trouve sur https://bugs.launchpad.net/ubuntu/+source/isc-dhcp/+bug/1918410 mais ce problème ne devrait plus se poser puisque John Johansen a corrigé le bug dans apparmor (https://gitlab.com/apparmor/apparmor/-/merge_requests/730)
You can fix the profile by adding the following rule to /etc/apparmor.d/sbin.dhclient
@{PROC}/@{pids}/task/[0-9]*/comm rw,
and then using
aa-enforce /etc/apparmor.d/sbin.dhclient
The upstream patch can be found at https://gitlab.com/apparmor/apparmor/-/merge_requests/730
Thanks John for your time and your clean fix!
I updated my post including this