Problème sur fonctionnement du service ynh-vpnclient

Bonjour
J’ai installé YunoHost sur une brique Internet (Lime 2). J’ai fait moi-même toute l’installation et j’ai acheté un nom de domaine chez OVH.
J’ai pris un service VPN chez FDN que j’ai installé avec YunoHost sur ma brique (pour la configuration de ma brique, j’ai suivi la procédure décrite ici : https://install.labriqueinter.net/).
Après installation de YunoHost sur la brique, tout a l’air de fonctionner correctement sauf le service ynh-vpnclient (YunoHost VPN Client) dont le statut est marqué “failed”. Et cela même quand j’arrête et que je redémarre le service ou quand j’arrête et je redémarre ma brique. Pourtant, après vérification de la configuration de l’appli VPN client, tout est bien configuré comme le fichier .cube que m’a fournis FDN. Quand je vais dans l’affichage des statuts de l’application, voici le détail que j’ai :
[INFO] Autodetected internet interface: eth0 (last start: )
[INFO] Autodetected IPv6 address for the VPN server: 2001:910:800::84
[INFO] IPv6 delegated prefix found
[INFO] IPv6 address computed from the delegated prefix: 2001:910:1360::42
[INFO] Hotspot app detected
[INFO] No IPv6 address to set
[INFO] No native IPv6 detected
[INFO] No IPv6 server route to set
[ERR] No IPv6/IPv4 firewall set
[ERR] No host DNS set
[ERR] Openvpn is not running

Cela est problématique, car du coup, je ne peux accéder aux appli YunoHost que connecté en local sur ma brique.
A quoi peut-être lié ce problème de non fonctionnement du service ynh-vpnclient ?
Actuellement, la version installé de YunoHost sur ma brique est la 2.7.14.5 (yunohost-admin, moulinette et ssowat en version 2.7.14) Faut-il que j’installe une version plus récente, comme la version 3 de YunoHost par exemple ?

Merci d’avance de votre réponse
Cordialement
Brice

Peux tu confirmer que tu as la version 1.1.1 de vpnclient ?

grep version /etc/yunohost/apps/vpnclient/manifest.json

Merci de ta réponse rapide.

Alors, 2nd problème, je n’arrive pas à accéder à mon serveur en ligne de commande.
Je suis pour l’instant sur un PC Windows 10 (que j’ai passé en mode développeur, je peux donc utiliser une console ubuntu), pour accéder au serveur, j’ai essayé comme cela (via la console ubuntu) : (j’ai remplacé mon nom de domaine par des “x”)

brice@PCBrice:~$ ssh brice@xxxxxxx.xx
brice@xxxxxxx.xx’s password:

Mais voici le message que j’obtiens :

setsockopt IPV6_TCLASS 16: Operation not permitted:

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law.
No mail.
Last login: Fri Oct 12 00:05:23 2018 from xxxx:xxx:xxxx:x:xxxx:xxxx:xxxx:xxxx
Connection to xxxxxxx.xx closed.

Je ne sais pas si c’est la bonne méthode…
Je ne peux donc pas de confirmer que j’ai la version 1.1.1 de vpnclient.

Cette commande ne marche pas !

ssh admin@xxxxxxx.xx à la place de ssh brice@xxxxxxx.xx

Merci, en effet ça fonctionne avec ssh admin@xxxxxxx.xx
J’ai donc tapé la commande

grep version /etc/yunohost/apps/vpnclient/manifest.json

Mais la console me répond :

grep: /etc/yunohost/apps/vpnclient/manifest.json: Permission non accordé

Pour connaître ta version de vpnclient essaye ça :

sudo yunohost app info vpnclient

Et sinon, pour essayer de comprendre ce qui pose problème il faut jeter un œil dans les logs de openvpn. Par exemple pour afficher les 50 dernières lignes :

sudo tail -n 50 /var/log/openvpn-client.log

Ok merci, alors voici ce que j’ai pour la version de vpnclient :

description: Client VPN
license: AGPL-3
name: VPN Client
version: -

Donc pas d’info sur la version…

Après avoir regardé les logs de openvpn, j’ai l’impression que le problème vient du fait qu’il ne trouve pas un certificat. Mais j’ai du mal à analyser le log. Voici les dernières lignes :

Tue Oct 2 20:26:37 2018 OpenVPN 2.3.4 arm-unknown-linux-gnueabihf [SSL (OpenSSL)] [LZO] [EPOLL] [PKCS11] [MH] [IPv6] built on Jun 26 2017
Tue Oct 2 20:26:37 2018 library versions: OpenSSL 1.0.1t 3 May 2016, LZO 2.08
Tue Oct 2 20:26:37 2018 WARNING: file ‘/etc/openvpn/keys/credentials’ is group or others accessible
Tue Oct 2 20:26:37 2018 Cannot load CA certificate file /etc/openvpn/keys/ca-server.crt (no entries were read): error:0906D066:PEM routines:PEM_read_bio:bad end line
Tue Oct 2 20:26:37 2018 Exiting due to fatal error

Petit problème ici, peut-être sans gravité mais il me semble que certaines versions d’OpenSSL étaient très chatouilleuses là dessus.
Le répertoire dans lequel sont stockées les informations confidentielles des clés sont lisibles par ‘other’, c’est à dire tout le monde.

Il faut restreindre l’accès uniquement à root et l’interdire à group (g) et other (o)

sudo chmod -R go-rwx /etc/openvpn/keys

Pour ce problème ci, il semblerait qu’il y ait eu une ligne tronquée: bad end line dans le certificat.

D’après ce lien: openssl - PEM routines:PEM_read_bio:bad end line - Stack Overflow ce peut-être juste un ‘-’ qui manque ou un problème d’alignement de la ligne BEGIN et END à vérifier visuellement.

Ok merci. Après vérification, à la fin du certificat, il est écrit :

-----END CERTIFICATE-----|-----BEGIN CERTIFICATE-----

C’est peut-être de là que vient le problème. Il ne devrait pas y avoir “BEGIN CERTIFICATE” après le “END CERTIFICATE”.
Si c’est bien cela, comment faut-il que je fasse la modification ?

Il y a bien un certificat avant entre la balise BEGIN et la balise END ?

Toute cette partie là est en trop dans la ligne que tu indiques, tu peux faire un essai en la retirant et en redémarrant le service openvpn

systemctl restart openvpn

et si ça ne marche toujours pas après essayer de faire un reboot de la carte

Oui, il y a bien :

“-----BEGIN CERTIFICATE-----|le_code_du_certificat|-----END CERTIFICATE-----|-----BEGIN CERTIFICATE-----”

Le souci, c’est que je ne sais pas comment éditer le certificat pour retirer la partie qui pose problème…
J’ai essayé d’ouvrir le répertoire /etc/openvpn/auth/keys avec FileZilla pour récupérer le certificat, le modifier et écraser le fichier existant mais il me dit qu’il ne peut pas récupérer le contenu du dossier keys.
Pensant que cela pouvait venir du fait qu’openvpn soit en fonctionnement, j’ai essayé d’arrêter le service openvpn avec la commande systemctl stop openvpn mais la console me répond :

Failed to stop openvpn.service: Access denied

Même réponse sur la commande systemctl restart openvpn.
Donc y a-t-il une autre manière de modifier le certificat ?

N’importe quel éditeur texte pur peut faire l’affaire. Tu peux essayer avec ‘nano’ directement sur la carte pour supprimer la fin ou ‘vi’ (un peu déroutant pour les débutant)

Failed to stop openvpn.service: Access denied

Si tu n’étais pas root quand tu as lancé cette commande, as-tu essayé:

sudo systemctl stop openvpn.service

Méfie-toi si tu ouvres ce fichier sous Windows l’éditeur de texte par défaut ne supporte pas les retours à la ligne de type Unix.

Autre piste : il se peut que Filezilla modifie les retours à la ligne des fichiers lors des transferts (j’ai déjà vu WinSCP faire ça donc pourquoi pas FileZilla).

Merci de vos réponses

J’ai donc essayé de modifier de certificat avec nano mais l’accès à /etc/openvpn/keys/ca-server.crt m’est refusé. Je n’arrive pas accès au dossier keys quelle que soit la manip : directement via la console, via nano ou via Filezilla : l’accès m’est toujours refusé.

Je ne sais pas si c’est lié mais quand j’accède à mon serveur, juste avant que la console ne me retourne admin@belouin:~$, j’ai le message suivant qui apparait :

setsockopt IPV6_TCLASS 16: Operation not permitted:
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.

Je n’arrive donc pas à trouver de solution pour éditer le certificat…

Même avec les permissions root ?
Essaye avec sudo :

sudo nano /etc/openvpn/keys/ca-server.crt

Merci, avec sudo ça fonctionne !

Du coup, après l’avoir ouvert, je constate que le certificat est écrit 3 fois à la suite, mais les caractères sont différents pour chacun. Voici ce que je vois :

-----BEGIN CERTIFICATE-----
code_du_certificat
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
code_du_certificat_fdn
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
code_du_certificat
-----END CERTIFICATE-----

Après vérification, c’est le certificat écrit en 2ème qui correspond à celui que j’ai renseigné quand j’ai configuré la brique et qui m’a été transmis par FDN. Je ne sais pas à quoi correspondent le 1er et le dernier. Faut-il que je les supprime ?

C’est assez fréquent de rencontrer des chaînes de certificats et il se trouve que c’est le cas du certificat de FDN. En tout cas il faut continuer à chercher le problème sur ce fichier car le message d’erreur est clair :
Cannot load CA certificate file /etc/openvpn/keys/ca-server.crt (no entries were read): error:0906D066:PEM routines:PEM_read_bio:bad end line.

Déjà, vérifions que c’est bien le même certificat. Tapes les commandes suivantes :

cd /tmp/
curl -JO https://www.fdn.fr/ca-vpn-fdn.crt
sudo diff -su /tmp/ca-vpn-fdn.crt /etc/openvpn/keys/ca-server.crt

Autre piste : essaye cette commande pour afficher le nom de l’émetteur et le nom de la CA, ou afficher un message d’erreur si le fichier est corrompu :

openssl x509 -in /etc/openvpn/keys/ca-server.crt -noout -subject -issuer

Ton problème vient d’arriver chez moi ; j’ai dû me “démerder” par mes propres moyens (désinstallation de l’application Client VPN, cela m’a pris 3h à comprendre, car impossible de la killer ; elle essayait constamment de se reconnecter aux serveurs de FDN).

J’ai réinstallé ensuite, et cela semble marcher…

Par contre, il y a un souci : il semblerait que l’IPv6 “saute” de temps à autre, et ce sans redémarrage du serveur. En effet, lorsque j’essaie de me connecter en SSH, tantôt je vois mon IPv6 ou mon IPv4. En faisant un traceroute, je vois que ce soir, il n’y a que l’IPv4 qui est accessible.

Cela fait des semaines que ce problème est connu avec ce client VPN…

Ok très bien. Alors voici ce que me retourne la console pour la commande
cd /tmp/ curl -JO https://www.fdn.fr/ca-vpn-fdn.crt :

% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 7009 100 7009 0 0 40719 0 --:–:-- --:–:-- --:–:-- 40988

Et pour la commande sudo diff -su /tmp/ca-vpn-fdn.crt /etc/openvpn/keys/ca-server.crt :

--- /tmp/ca-vpn-fdn.crt 2018-10-24 00:30:33.927750017 +0200
+++ /etc/openvpn/keys/ca-server.crt     2018-10-02 21:07:03.374783065 +0200
@@ -110,4 +110,4 @@
 NT2/q5MXAHy7kdMCHzT4KQp81pUTY3bNtujUyGC9Nhgf0CMQMLOmwL7lF9aKWk8J
 tG1ixRwplTEHEuJARpKp+MebiyfI87OoCSRJP+LygnkKeYNGxV0fhQnIW3+44bnw
 NH0QlNNxLH0iV4UJQA==
------END CERTIFICATE-----
+-----END CERTIFICATE-----
\ Pas de fin de ligne à la fin du fichier

J’avoue que je ne comprends pas grand chose à ces lignes renvoyées par la console…

Pour la commande openssl x509 -in /etc/openvpn/keys/ca-server.crt -noout -subject -issuer, la console n’a pas l’air de me retourner de message d’erreur :

subject= /O=Root CA/OU=http://www.cacert.org/CN=CA Cert Signing Authority/emailAddress=support@cacert.org
issuer= /O=Root CA/OU=http://www.cacert.org/CN=CA Cert Signing Authority/emailAddress=support@cacert.org

Alexandre75, tu dis que tu passé beaucoup de temps à essayer de désinstaller Client VPN, mais du coup, comment as-tu procédé pour que ça fonctionne ?