GUI du VPN ne démarre pas après passage à Buster

Tags: #<Tag:0x00007f99468a3400> #<Tag:0x00007f99468a30e0> #<Tag:0x00007f99468a2f28>

Bonjour,
Utilisateur régulier de Debian, je suis passé sous Buster pour un de mes postes, histoire de tester tranquille avant la grande migration…

Tout est souple, comme d’habitude, sauf mon vpn (je suis en Chine, ce n’est pas une option…)
J’utilise vpn.ac (j’avais fait mon propre service avec un ordinateur en europe, mais il n’a pas tardé à être bloqué par la chine… donc je suis passé par un service que je ne maitrise pas complètement).

vpn.ac fourni un paquet .deb, qui marche très bien sur Debian 9, et aussi sur Debian 10 XFCE. Mais que ce soit après un dist-upgrade ou après une installation neuve, rien à faire avec Debian 10 et Gnome. Lorsque je lance le programme, il me demande mon mot de passe root (pour intervenir sur les connections réseaux) et s’arrete.
Lorsque je le lance en console, voici le résultat.

root@Lenovo:/home/pierig/Documents/Tempo# /usr/local/vpn.ac/bin/run.sh
xhost: unable to open display ""
id:0 user is root => can start app
64-bit os => openssl64 dir
LD_LIBRARY_PATH: /usr/local/vpn.ac/bin/openssl64:/usr/local/vpn.ac/bin
xhost: unable to open display ""
ELEVATING Locked
0x7ffcfb139bc8
argv# 0 is /usr/local/vpn.ac/bin/vpn.ac
find config: /usr/local/vpn.ac/bin
xhost: unable to open display ""

id:0 completed
root@Lenovo:/home/pierig/Documents/Tempo# qt.qpa.xcb: could not connect to display
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling     the application may fix this problem.

Available platform plugins are: xcb.

Après quelques recherches j’ai tenter de suivre les indications de ce lien en particulier https://stackoverflow.com/questions/17106315/failed-to-load-platform-plugin-xcb-while-launching-qt5-app-on-linux-without

J’ai un beau fichier strace (ce-dessous), mais je n’arrive pas à l’analyser pour savoir ce qui manque
Auriez-vous des conseils à me donner?
Merci et bonne journée
log-strace.txt (255,2 Ko)

Tu es root.
Si tu n’as pas fait l’erreur d’ouvrir une session X en root, c’est normal qu’une appli graphique lancée en root n’ai pas accés graphique.
Si tu veux executer ta commande en root avec accés à X, c’est avec sudo ou gksu, genre.

Supprimé. Apparu deux fois!

Bonjour, Merci mattotop de ta réponse rapide.

Sur le principe tu as raisons, mais comme le programme doit tourner en root, les dévelopeurs ont géré le problème et ont limité les droits de l’interface graphique qui est lancée par run.sh
Quand on le fait depuis Debian 9, toujours en root, (sans sudo…) l’application se lance normalement.

root@Desktop:~# /usr/local/vpn.ac/bin/run.sh 
localuser:root being added to access control list
id:0 user is root => can start app
64-bit os => openssl64 dir
LD_LIBRARY_PATH: /usr/local/vpn.ac/bin/openssl64:/usr/local/vpn.ac/bin
access control disabled, clients can connect from any host
ELEVATING Locked
0x7ffc253713b8
argv#  0  is  /usr/local/vpn.ac/bin/vpn.ac
find config:  /usr/local/vpn.ac/bin
access control enabled, only authorized clients can connect

id:0  completed
root@Desktop:~# [16:26:45]  [D]  vpn.ac version:  1.4
[16:26:45]  [D]  app start from:  /usr/local/vpn.ac/bin/vpn.ac
[16:26:45]  [D]  app params:  (/usr/local/vpn.ac/bin/vpn.ac)
[16:26:45]  [D]  config file path:  /root/.local/share/vpn.ac/vpn.ac.conf
[16:26:45]  [D]  log file path:  /root/.local/share/vpn.ac/vpnac.log
[16:26:45]  [D]  ssl library build version:  OpenSSL 1.1.0j  20 Nov 2018
[16:26:45]  [D]  ssl library run-time version:  OpenSSL 1.1.0j  20 Nov 2018

Quand on lance l’application directement depuis Gnome, sans le terminal, l’application plante, et les logs sont identiques à ceux que j’ai posté depuis le terminal. Ça ne semble donc pas être le problème.

Bonjour

Je pense que c’est là dessus qu’il faut se pencher alors.

Alors essaye:
DISPLAY=:0 /usr/local/vpn.ac/bin/run.sh

1 J'aime

Bravo mattotop. C’est ça.

Merci !

Je ne connaissais pas cette méthode pour forcer l’utilisation de DISPLAY

1 J'aime

Alors ça, ce n’est quand même pas normal, ça doit être un ajustement de config à faire pour que le display soit bien exporté.
Tu ne passerais pas en root en faisant su - (avec le tiret), par hasard ?
Dans ce cas, ne le fais pas, ça réinitialise la variable DISPLAY.
Fais un simple su ou reconfigure ton display avec export DISPLAY=:0 au démarrage de ta session root.

En effet j’utilise su -
Je dois dire que c’est nouveau, c’est suite à quelque chose que j’ai lu récemment, justement en lien avec l’affichage, Wayland en l’occurrence, mais je n’ai pas creusé ni chercher à vraiment comprendre (ce n’est pas bien). Ajouter un tiret ne m’a pas paru une grosse contrainte, donc j’ai adopté…

Avec su uniquement, il démarre.

Merci encore. C’est un retour top de ta part.

Bonjour,
Me revoici de nouveau avec le même problème.
J’ai migré un deuxième ordinateur de Stretch à Buster, confiant suite aux essais du premier.

Lorsque j’ai voulu lancer vpn.ac, problème identique, même message d’erreur. Pas de soucis me dis-je, j’applique la même méthode que pour le premier, indiquer DISPLAY=:0, mais là, rien y fait. Le message d’erreur demeure. J’ai essayer d’autre numéro 1, 2 sans bien savoir ce que le numéro représente, mais j’ai exactement le même résultat.
Du coup, auriez vous d’autres idées à tester?
Merci beaucoup de votre temps.

Ben déjà, avant de passer root, env | grep DISPLAY devrait t’indiquer la configuration de display à utiliser:

mj@mercure:~$ env | grep DISPLAY
DISPLAY=:0

Sinon, c’est anormal que ton vpn dépende de l’interface graphique (et clairement, c’est merdique), le client propriétaire vpn.ac m’a l’air salement beta.
J’ai vu qu’il y avait un tutoriel openvpn aussi sur le site ici: https://vpn.ac/knowledgebase/22/OpenVPN-on-Linux.html mais c’est réservé aux abonnés, je n’y ai pas accés pour voir s’il n’y a pas moyen d’installer une config plus fiable, moins bancale, à base d’openvpn.
Si tu as moyen d’imprimer un pdf du tuto et de le partager en ligne, je regarderais.

Bonjour,

Je serais tout à fait d’accord avec toi sur le principe. Openvpn devrait pouvoir faire l’affaire directement sans surcouche.
Mais je suis en chine et il est indispensable de fréquemment changer de paramétrage et de techno (XOR…) du coup, il me semble que faire le setting du vpn sur la connection directement n’est pas ce qu’il y a de plus pratique. J’avais fait cela il y a quelques années et j’avais du abandonner.
Peut-être que ça a changer?

Pour la partie technique de ton message, j’ai lancé ta commande qui m’a confirmé que c’était toujours :0 qui est utilisé pour le moment.
J’ai découvert une différence dans le message d’erreur néanmoins. Je vais retourner voir le service technique de vpn.ac avec ça:
`LD_LIBRARY_PATH: /usr/local/vpn.ac/bin/openssl64:/usr/local/vpn.ac/bin

No protocol specified`

Ce No protocol specified me semble sensible et pourrait expliquer l’absence de démarrage en mode GUI normal.

Merci pour ton implication

Pour info, le tuto openvpn est très basic, le voici ci dessous.

OpenVPN on Linux

Note: we have a beta VPN client for Debian based distros, please check the KB article.

This guide describes how to configure OpenVPN on Linux using the Network Manager tool, with AES-256 bit encryption and 4096-bit RSA authentication. The setup process should be identical in Ubuntu, Mint, Debian and other Debian-based distributions.

You can import the OpenVPN config files directly into Network Manager but first you have to install network-manager-openvpn to support the protocol, assuming you already have openvpn installed (“apt-get install openvpn” if not)

  1. Open a terminal and run apt-get install network-manager-openvpn network-manager-openvpn-gnome (as root) or sudo apt-get install network-manager-openvpn network-manager-openvpn-gnome (as user) and service network-manager restart

  2. Open your browser and download our CA.crt and the tls-preshared-256.key from the repository ( important: download the CA certificate file with Right click > Save as in Firefox; left click would auto-import the CA into the certificates store instead of downloading it)

  3. Click on the Network Manager icon, go to VPN Connections > Configure VPN…

  4. In the VPN tab, click Add

  1. In the settings window, you have to enter the following:
  • Connection name : choose a name to identify this connection or leave it unchanged

  • Gateway: the server hostname you want to connect to (list at https://vpn.ac/status)

  • Authentication Type : Password

  • Enter your VPN username/password

  • CA Certificate : select the ca.crt file you downloaded earlier

Click Advanced…

  1. Choose port 8000 or 50000. If you use a TCP connection, use ports 8333 or 5900.

  1. Open the Security tab and select Cipher AES-256-CBC and HMAC-Authentication SHA512

  1. Open the TLS Authentication tab, check Verify peer (server) , choose Server from the drop-down menu. Check Use additional TLS authentication and select the tls-preshared-256.key file. Select 1 for Key Direction

  1. That’s all. Click Ok and Save to save the VPN profile.