#Contexte et besoin
A la maison, dans mon bureau, j’ai un ensemble de PC de récupérations sur lesquels tournent Proxmox, la distribution pour faire de la virtualisation. J’accède à chacune de ces machines depuis un navigateur avec l’URL du service Proxmox définit par le couple adresse IP:port (ou un nom de machine défini dans le fichier host, /etc/hosts).
J’ai donc des adresses du type https://192.168.0.100:8006 ou https://proxmox01:8006.
Le certificat TLS étant auto-signé, Firefox fait une alerte à la connexion.
Comment améliorer tout ça en profitant de Yunohost qui tourne sur un serveur sur le même réseau local et des fonctionnalités de reverse proxy de Nginx ?
# L’application Redirect
Yunohost propose parmi ses nombreuses applications packagées l’application redirect qui a deux fonctionnalités, dont une de reverse-proxy qui permet de créer une tuile pour une application locale qui écoute sur un port donné, sur cette machine ou sur une autre machine.
C’est de cette fonctionnalité dont on va tirer partie !
J’ai d’abord défini /crée un sous-domaine dédié sur lequel j’ai installé un certificat Let’s Encrypt. Sur ce sous-domaine, j’installe l’application Redirect, à la racine.

A l’installation, il faut configurer quelques champs :
– Libellé pour Redirect : il s’agit du nom affiché dans le portail de YunoHost. Il peut être modifié ultérieurement.
– Domaine & chemin d’URL (après le domaine) : j’ai crée un sous-domaine et j’installe l’application à la racine.
– Type de redirection : reverse proxy
– Cible : https://192.168.0.100:8006, soit l’URL du Proxmox
Une fois installée, la configuration nginx peut être trouvée dans /etc/nginx/conf.d/sous-domaine.domaine.d/redirect.conf
Et ça ressemble à ça
$ cat etc/nginx/conf.d/proxmox.genma.org.d/redirect.conf #sub_path_only rewrite ^/$ / permanent; location / { proxy_pass https://192.168.0.100:8006; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Host $server_name; proxy_set_header X-Forwarded-Port $server_port; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; # Include SSOWAT user panel. include conf.d/yunohost_panel.conf.inc; more_clear_input_headers 'Accept-Encoding'; }
# Pour jouer un peu
J’ai plusieurs instances /machines faisant tourner Proxmox Virtualisation Environement (PVE) sur mon homelab.
Je peux adapter ou changer temporairement ou définitivement la redirection en éditant le fichier et en éditant la ligne proxy_pass et en rechargeant la configuration nginx via la commande
sudo service nginx reload
# Conclusion
La redirection transparente, on peut accéder au Proxmox depuis l’extérieur, comme à n’importe laquelle des applications installées sur le Yunohost (il faut donc bien penser à mettre l’application Yunohost en accessible uniquement des utilisateurs de Yunohost pour que l’application nécessite de passer par le SSO/de s’identifier.
La redirection & le reverse proxy font qu’on a un certificat Let’s encrypt et plus le certificat auto-signé en frontal, donc plus d’erreur dans le navigateur.
Pour sécuriser le Proxmox, j’ai activé le 2ème facteur d’authentification, la machine ne tourne pas tout le temps (ce sera le sujet d’un autre /futur billet avec l’allumage par du Wake On Lan (WOL) de la machine).
A noter que cette astuce peut être utile à d’autres services, que l’on peut ajouter plusieurs fois l’application Directoire…
# Aller plus loin ?
On peut imaginer utiliser cette fonctionnalité de redirection vers des VM dans le Proxmox en lui-même (si la VM est accessible depuis le réseau local ou si on installe un reverse proxy en VM sur le Proxmox…) On peut imaginer plein de choses !