cClaude.rocks ☕ Le blog

[Nouvelles technologies, sciences et coups de gueule…]

Menu
😤 Ce billet a été édité le : 2022-12-13

LibreELEC intègre nativement les binaires d’OpenVPN.

Le plus simple pour utiliser OpenVPN sur ce type de distribution de créer 3 fichiers dans le dossier .config de l’unique utilisateur de LibreELEC. Petit rappel sur LibreELEC, il n’y a qu’un seul utilisateur système : root, ce qui a pour conséquence que la commande sudo n’existe pas.



Voici les 3 fichiers dont vous aurez besoin :

  • /storage/.config/autostart.sh — Un petit script exécuté au démarrage,
  • /storage/.config/my-open-vpn-configuration.ovpn — Votre fichier de configuration OpenVPN généré lors de la création du compte VPN,
  • /storage/.config/.credentials — Un fichier contenant votre nom d'utilisateur pour le VPN et son mot de passe.

Le fichier /storage/.config/autostart.sh :

#!/bin/bash
sleep 20s

/usr/bin/openvpn --daemon \
  --config /storage/.config/my-open-vpn-configuration.ovpn \
  --auth-user-pass /storage/.config/.credentials

Le fichier /storage/.config/.credentials qui doit avoir le format suivant :

votre_nom_d_utilisateur_vpn
votre_mot_de_passe_utilisateur_vpn

Pour sécuriser à minima votre configuration (en ssh depuis la machine LibreELEC) :

chmod 600 /storage/.config/.credentials

Aide au diagnostique

Pour vous aider à recherche des problèmes (en ssh depuis la machine LibreELEC) :

Créer un fichier ~/.config/autostart-debug.sh qui est presque le fichier initial, voici les différences :

#!/bin/bash
/usr/bin/openvpn \
  --config /storage/.config/my-open-vpn-configuration.ovpn \
  --auth-user-pass /storage/.config/.credentials

Ici nul besoin d’attendre (on enlève la commande sleep) et on veut la sortie de la commande openvpn, on retire donc le paramètre --daemon.

Avant d’exécuter le script, il faut s’assurer qu’il n’y ait pas de processus openvpn en mémoire :

killall openvpn
bash ~/.config/autostart-debug.sh

Si vous devez corriger quelque chose dans la séquence de démarrage (donc directement après le redémarrage de la machine), par exemple pour affiner le temps d’attente, vous pouvez essayer de modifier le fichier ~/.config/autostart.sh comme suit :

#!/bin/bash
sleep 20s

logfile="${HOME}/.kodi/temp/openvpn.log"

/usr/bin/openvpn \
  --config /storage/.config/my-open-vpn-configuration.ovpn \
  --auth-user-pass /storage/.config/.credentials 1>&2 2>"${logfile}" &


Créer un service pour OpenVPN

Notez que LibreELEC propose un exemple de service Linux pour OpenVPN /storage/.config/system.d/openvpn.service.sample que vous pouvez adapter à vos besoins.

  • Exemple de service

    Voici ce qu’il contient :

    [Unit]
    Description=OpenVPN Autorun Service
    
    [Service]
    Type=forking
    Requires=network-online.service
    After=network-online.service
    ExecStart=/usr/sbin/openvpn --daemon --config /storage/.config/openvpn.config
    Restart=always
    RestartSec=15
    
    [Install]
    WantedBy=kodi.target
    

    Les notes contenues dans ce fichier :

    1) Edit /storage/.config/openvpn.config to the .config/.conf/.ovpn file from your VPN service provider and test it works first by connecting at the console:

    /usr/sbin/openvpn --daemon --config /storage/.config/openvpn.config
    

    2) The openvpn.service file must be addeded to the active systemd config before it will work. This is done by running:

    systemctl enable openvpn.service
    

    3) If you suspend/resume your LibreELEC system you will need to stop and restart the connection with a systemd *.power script, e.g.

    mkdir -p /storage/.config/sleep.d
    nano /storage/.config/sleep.d/01-openvpn.power
    

    Copy the sample script below.

    #!/bin/sh
    case "$1" in
      pre)
        systemctl stop openvpn.service
        ;;
      post)
        systemctl start openvpn.service
        ;;
      esac
    


Autres astuces pour le diagnostic

Fonctionnement du VPN

Pour vérifier l’adresse IP extérieure vous pouvez utiliser les lignes suivantes :

curl https://ifconfig.me/ip
curl https://ifconfig.me/all.json

L’IP extérieure doit être celui du serveur VPN pas celle de votre box…


Obtenir plus de détails

Ces informations peuvent ne pas être pertinente suivant les versions des différents os/logiciels.

Les informations de connexion peut-être trouvé dessous : /etc/openvpn/

L’examen de syslog peut également être utile :

grep VPN /var/log/syslog

Liens

ᦿ


ℹ 2006 - 2023 | 🏠 Accueil du domaine | 🏡 Accueil du blog