Je suis en train de monter un serveur Proxmox pour héberger des VM Yunohost.
Ces VM passent par l’intermédiaire d’un serveur VPN (1 VPS OVH) pour accéder à internet.
Je bloque sur le reverse proxy qui permet d’avoir 1 IP fixe (celle du VPS ovh) et plusieurs VM yunohost.
J’ai essayé Squid et Apache pour le reverse proxy, mais dès que je lance la deuxième VM, les noms domaine se mélangent. (Chaque VM est sur 1 sous domaine : yuno1.testlab.comyuno2.testlab.com, etc)
J’ai aussi essayé Caddy, ça ne fonctionne pas aussi.
Tout d’abord est-ce que le reverse proxy et la bonne solution ?
Est-ce que quelqu’un veut bien m’aider pour la configuration
voici mon fichier de configuration pour ma première VM 1
Vu qu’elle ne matche aucune de tes 2 règles ci-dessus, elle est traitée par le virtual host par défaut de Apache, qui est peut-être une de tes 2 entrées, d’où ton impression « qu’elles se mélangent ».
Et que du coup ce que tu veux faire, c’est du routage sur tous les sous-domaines.
Donc il te faut un wildcard (*) dans ta configuration. C’est à dire à la place configurer :
Même diagnostic que @quentin !
Sinon je te conseille d’utiliser Nginx pour ça, qui a été principalement pensé à l’origine pour faire du reverse proxy ! Ça sera moins gourmand et plus performant qu’Apache.
C’est un sujet qu’on pourrait aborder pendant l’atelier « Astuces et limitations de YunoHost pour un chaton en 2022 » organisé par @ljf pour le camp CHATONS.
Nginx ou Haproxy peuvent être des solutions pour faire ça grâce au SNI (ou à l’entête host pour HTTP). Ça signifie tout de même que tu es capable de savoir quels sont les domaines configurés dans chaque yunohost et que la config haproxy ou nginx s’adapte automatiquement en fonction. Ça peut se faire de plusieurs façon:
soit à partir de l’hôte proxmox en regardant dans les disques des VM/LXC et en regardant les domaines configurés directement dans /etc/yunohost (ou ailleurs)
Pour SSH, on peut tout simplement utiliser des règles de forward iptables.
Pour le mail sortant, on peut utiliser les options de relais mail présentent dans YunoHost, on peut d’ailleurs transformer un yunohost en relais smtp (il y a tout de même quelques modifs à faire).
Pour le mail entrant, là j’avoue que je ne sais pas trop comment faire ça. En ipv6 ce serait facile, mais avec une unique IPv4 là question c’est comment faire pour que serveur smtp frontal redistribue au bons serveurs SMTP… A mon avis il y a moyen, mais la config de ce serveur smtp frontal va être assez funky.
Il faut aussi gérer Let’s Encrypt pour le SMTP frontal.
Pour dovecot, haproxy doit pouvoir gérer le sni dessus. (je suis pas sûr)
A noter que ça ne résous pas la question pour tout un tas de protocoles (Matrix, mumble, xmpp, …).
Autres solutions:
Récupérer un bloc d’ipv4 (mais ça à un coût annuel)
Déployer des ipv6 public (et tant pis si tout ne marche pas toujours)
Utiliser des .onion et accéder aux services via tor
Salutations
Bon après plusieurs sessions de shell nocturne
J’ai essayé ngnx proxy manger, mais avec des yunohost derrière ce n’est pas approprié. Car chaque serveur doit générer ses propres certificats.
Par conséquent, j’ai juste configuré une iptables et ça fonctionne très bien.
Si tu as un reverse-proxy, c’est lui, en principe, qui doit gérer les certificats.
HA-proxy le fait très bien pour le web et les emails. (alors que ce sera plus compliqué de le faire avec Nginx pour les emails)
Après, rien ne t’empêche de chiffrer les échanges entre ce reverse-proxy et les autres VM.
Il faudrait éviter les SNI et certificats wilcard, mais dans ton cas, ça va devenir pénible, sauf en IPv6. On n’arrête pas de le dire, IPv6, c’est le présent et ça simplifie tellement les réseaux.