Recherche de site Web

Corriger l'échec immédiat de connexion OpenVPN sous Ubuntu 26.04


Dans Ubuntu 26.04 (pour l'instant en version Beta), la connexion OpenVPN ne fonctionne pas immédiatement à cause d'un bogue dans AppArmor. Voici une solution rapide pour résoudre le problème.

Pour des raisons de sécurité, Ubuntu utilise par défaut AppArmor (Application Armor), un mode de sécurité du noyau Linux, pour restreindre les capacités des programmes en matière d'accès aux fichiers, de mise en réseau et de permissions.

Il utilise une liste de profils dans le répertoire /etc/apparmor.d pour définir et restreindre les capacités des applications. Et, AppArmor dans Ubuntu depuis la version 25.04 a ajouté un profil pour openvpn afin de restreindre ses capacités.

Lors de l'importation ou de la création d'une connexion OpenVPN, puis de la connexion au VPN, le gestionnaire de réseau copiera les clés de certificat en mémoire (répertoire /run). Cependant, le nouveau profil AppArmor dans la version 26.04 n'autorise pas openvpn à accéder aux fichiers présents là-bas.

Donc, il renvoie immédiatement « échec de la connexion », et le fichier /var/log/syslog vous montrera quelque chose comme ci-dessous :

2026-03-30T04:47:32.996275-07:00 Resolute nm-openvpn[70487] : Impossible de précharger le fichier de clé (/run/NetworkManager/cert/NVIziP)
2026-03-30T04:47:32.996332-07:00 Resolute nm-openvpn[70487] : Sortie en raison d'une erreur fatale
2026-03-30T04:47:32.996558-07:00 Resolute kernel : audit : type=1400 audit(1774871252.994:2433) : apparmor= ”DENIED ” operation= ”open ” class= ”file ” profile= ”openvpn ” name= ”/run/NetworkManager/cert/NVIziP ” pid=70487 comm= ”openvpn ” requested_mask= ”r ” denied_mask= ”r ” fsuid=0 ouid=0

Apparemment, le problème est qu'AppArmor a refusé à openvpn l'accès au fichier /run/NetworkManager/cert/NVIziP.

AppArmor a refusé à openvpn l'accès au fichier clé

Et, la solution consiste simplement à ajouter un accès en lecture aux fichiers sous le répertoire /run/NetworkManager/cert pour openvpn.

Il est dit que le problème a été résolu dans la version 5.0.0~beta1-0ubuntu3 selon ce rapport de bug, bien qu'il se produise encore dans mon cas, donc j'écris une solution de contournement via les étapes ci-dessous.

1. Modifiez le profil AppArmor.

Tout d'abord, appuyez sur Ctrl+Alt+T pour ouvrir le terminal. Lorsque le terminal s'ouvre, exécutez la commande ci-dessous pour naviguer vers le répertoire des fichiers de configuration d'AppArmor et lister tous les profils par défaut.

cd /etc/apparmor.d/ && ls

Là, vous verrez le fichier de configuration openvpn.

Pour le modifier, exécutez la commande :

sudo gnome-text-editor /etc/apparmor.d/openvpn

Conseils : Ici gnome-text-editor est pour GNOME par défaut, remplacez-le par votre éditeur de texte de bureau, ou utilisez nano qui fonctionne sur la plupart des bureaux.

2. Ajouter l'accès en lecture

Lorsque le fichier s'ouvre dans l'éditeur de texte, ajoutez la ligne file r /run/NetworkManager/cert/*, entre la section principale, de sorte qu'il ressemble à :

profile openvpn /usr/sbin/openvpn flags= ( ... ) {
    ...
    ...
    file r /run/NetworkManager/cert/*,
    ...
    ...
}

Il indique d'autoriser l'accès en lecture à tous les fichiers sous le répertoire /run/NetworkManager/cert. N'oubliez pas d'ajouter une virgule (,) à la fin de la ligne.

Pour être strict, utilisez file r @{run}/NetworkManager/cert/@{rand6}, à la place, afin qu'il n'ait qu'un accès en lecture aux fichiers portant un nom de 6 caractères dans ce répertoire.

3. Appliquer les modifications

Après avoir effectué des modifications aux profils AppArmor, redémarrez le service pour recharger les règles :

sudo systemctl restart apparmor.service

Enfin, essayez de vous connecter à votre OpenVPN et espérez que ça fonctionne !