Utiliser le serveur (reverse) proxy de Cosmos Cloud

Utiliser le serveur (reverse) proxy de Cosmos Cloud

Pour profiter pleinement du tutoriel qui suit, vous devez bien entendu avoir déjà installé et configuré Cosmos Cloud. Tout ce qui suit est en accord avec les articles précédents.

Petit rappel:

Lorsque vous accédez à une ressource protégée par un reverse proxy, vous contactez le reverse proxy et c'est lui qui gère la requête, c'est-à-dire qu'il va contacter le serveur cible à votre place et vous retourner la réponse. Le client n'a pas de visibilité sur le ou les serveurs cachés derrière le reverse proxy. Le reverse proxy agit comme une barrière de protection vis-à-vis des serveurs du réseau interne, et il va permettre de publier la ressource de façon sécurisée.

Source:
Florian BURNEL
https://www.it-connect.fr/les-serveurs-proxy-et-reverse-proxy-pour-les-debutants/


Si Cosmos Cloud est installé directement sur le serveur ou sont vos applications Docker, il y a peu d'intérêt à utiliser la fonction proxy de Cosmos Cloud car il y a la fonction ServApp - Docker Container:

Fonction qui a déjà été abordée dans un autre tutoriel concernant Cosmos Cloud.

Le cas de figure qui nous intéresse c'est plutôt dans l'optique ou vos applications ne sont pas sur le même serveur que Cosmos Cloud. Cela peut même être votre imprimante, votre routeur, tout ce qui a une interface web finalement.

Je vais prendre un exemple très simple, sur un VM ou sur un serveur local du style Raspberry, NUC, j'ai des applications auxquelles je voudrais ajouter un sous-domaine avec un certificat SSL signé et certifié.

Cosmos Cloud ne peut pas directement les voir. Pas directement. Mais il est possible que Cosmos Cloud joue son rôle de serveur proxy.

J'ai une VM ici en local qui me sert à faire les tutoriels. Son ip est 192.168.1.152. Sur ce serveur j'ai l'application Jellyfin que je peux joindre en tapant: 192.168.1.152:8096 dans mon navigateur:

D'une part c'est compliqué à retenir comme URL. Bien qu'un simple dashboard puisse retenir ça pour moi.

Le problème le plus épineux réside dans le fait que quand j'entre mes identifiants, tout passe en clair sur le réseau local. Cela veut dire qu'un autre appareil qui pourrait avoir une faille et être infecté, pourra récupérer ces identifiants tranquillement sans se faire une entorse. Oui, même en local c'est important de sécuriser les informations qui transitent.

Il faut oublier l'idée qu'en local on ne craint rien. On craint peut-être un peu moins, mais pas rien.

Vous me direz qu'il est possible d'avoir un certificat self-signed, mais ce n'est pas non plus la panacée. Loin de là. Le certificat peut-être volé ou copié.


Utiliser le serveur proxy de Cosmos Cloud

Dans Cosmos Cloud, menu de gauche, cliquez sur URLs:

Cliquez sur + Create:

Cela ouvre donc le module pour la création d'un proxy.

Notez que vous ne devez absolument pas tenir compte de l'alerte (et non une erreur) en rouge. Vous avez cette alerte tout simplement parce que l'application n'est pas directement sur le même serveur que Cosmos Cloud.
  • Name => nommez votre application comme bon vous semble.

  • Description => ajoutez une description de cette application.

  • Mode => sélectionnez proxy.

  • Target URL => indiquez l'URL complète, avec http ou https et son port. Dans le cas d'une URL en https, il faudra cocher la case Accept Insecure HTTPS Target qui va apparaître.

  • Use HOST => cochez cette option afin de définir la future URL de votre applpication.

  • HOST => indiquez l'URL souhaitée pour joindre votre application.

Quand tout est paramétré, cliquez sur Confirm. Une fois que vous avez cliqué sur Confirm, Cosmos Cloud va créer le certificat SLL relié au domaine que vous avez demandé, tout ceci presque instantanément.

Je peux donc joindre Jellyfin sur mon domaine:


Sécuriser d'avantage votre application

Il est possible d'ajouter des options afin de sécuriser d'avantage votre application avec différentes fonctions:

Sécuriser ses applications avec Cosmos Cloud
Quelques astuces pour sécuriser ses applications exposées ou en local et renforcer la sécurité du serveur.

Si vous avez la moindre difficulté, n'oubliez pas que vous pouvez rejoindre belginux sur Discord et Matrix!

zarev

🐧 Passionné de self-hosting, je partage ce que je connais et me nourris des connaissances des bonnes âmes qui partagent avec moi. Soutenons l'utilisation des apps open source et leurs développeurs.