Héberger 2 serveurs accessibles en TSE derrière un serveur Zeroshell 1

Héberger 2 serveurs accessibles en TSE derrière un serveur Zeroshell

Je continue l’exploitation des usages du petit routeur/pare-feu ZeroShell. Toutefois, cette distribution est utilisée à titre d’exemple et l’implémentation présentée dans le cadre de cet article n’est en en aucun cas limité à ce produit. Nous cherchons ici la possibilité de se connecter en RDP à 2 machines virtualisées, sous Windows, sur Internet, mais avec une seule adresse ip publique à disposition.

Le sujet de cet article m’a été demandé par Nicolas dans le cadre d’un projet personnel.



Dans le cadre des cet article, nous allons poser le contexte suivant :

  • Le Hôte : Cette station de travail est raccordée à l’internet. Son IP publiques est 10.0.3.111. L’utilisateur souhaite pouvoir accéder en TSE à Server1 Server2.
  • L’hébergeur : Il dispose d’un accès internet protégé par ZeroShell : Router. Derrière ce routeur, se trouvent deux serveurs : Server1 & Server2. Chacun de ces serveurs doit pouvoir être accédé en TSE sans contraintes depuis l’internet. Le routeur est administré depuis le réseau 10.0.0.0/24. Son IP dans ce réseau est 10.0.0.254. Le serveur Server1 a pour IP privée 10.0.0.100 et le serveur Server2 a pour IP privée 10.0.0.101. La passerelle de ce réseau est 10.0.2.254.

Comme je ne dispose pas de 2 sites physiques, de 3 serveurs et 1 routeur, j’ai monté une maquette construite sous Microsoft HyperV. Pour cela, j’ai créé un réseau privé simulant l’internet : 10.0.3.0/24. L’ IP « publique »de l’hébergeur est 10.0.3.101.

Vous trouverez ci-dessous le résumé graphique de cette configuration.

Projet Zeroshell

Paramétrage du routeur de l’hébergeur

Nous allons utiliser la technologie NAT (Network address translation) pour permettre à l’hôte d’accéder en TSE au serveur Server1 et Server2.

Activation du NAT sur la carte ETH01

Héberger 2 serveurs accessibles en TSE derrière un serveur Zeroshell 2

Translation du port 3389 sur 10.0.3.101 vers le server1

Le protocole TSE utilise le port TCP 3389.

Héberger 2 serveurs accessibles en TSE derrière un serveur Zeroshell 3

Translation du port 3390 sur 10.0.3.101 vers le server2

Le service TSE utilise bien évidemment toujours le port TCP 3389 sur server2. Toutefois, le port 3389 du 10.0.3.101 a déjà été assigné au port 3389 de server1. Nous allons donc assigner le port TCP 3390 de 10.0.3.101 au port TCP 3389 de server2.

Héberger 2 serveurs accessibles en TSE derrière un serveur Zeroshell 4

Connexion depuis l’extérieur

Depuis l’hôte, connectons-nous à server1

Héberger 2 serveurs accessibles en TSE derrière un serveur Zeroshell 5

Il est inutile de préciser le port 3389 comme dans l’illustration ci-dessus car ce port est utilisé par défaut.

Depuis l’hôte, connectons-nous à server2

Héberger 2 serveurs accessibles en TSE derrière un serveur Zeroshell 6

Cette fois-ci ; nous devons préciser le port 3390.

Conclusion

Cette solution permet bien d’héberger deux serveurs distincts. Toutefois, si cette approche est assez simple à mettre en œuvre, elle est très légère en terme de sécurité :

  • Les échanges entre l’internet et les serveurs ne sont pas cryptés (en tout cas pas en dehors du protocole TSE-RDP)
  • N’importe quel utilisateur d’internet peut tenter de se connecter aux serveurs (et tenter de trouver les mots de passe en Brute Force)

La création d’un VPN sécurisé obligatoire entre l’hôte et l’hébergeur avant de lancer la connexion TSE limitera ces risques.

Une autre faille est que tous les serveurs hébergés sont dans le même réseau. Il est donc possible à un utilisateur connecté au server1 de tenter d’accéder au server2. Pour contourner ce problème, il faudrait cloisonner les réseaux coté hébergeur en raccordant server1 et server2 à 2 cartes réseaux différentes sur le routeur.

Enfin, cette configuration n’est facile à réaliser que parce que le nombre de ports à translater est très limité et que le client TSE permet de préciser les ports TCP à utiliser. Il serait par exemple impossible d’utiliser cette méthode pour ouvrir un partage Windows (CIFS/SMB) par exemple.


A propos Olivier Olejniczak

Cofondateur de SynerGeek.fr. Passionné d'informatique, je m'intéresse plus particulièrement aux technologies de virtualisation et de stockage. J'apprécie la liberté et la quasi-absence de frontières à mon imagination qu'offre l'OpenSource et Linux. Professionnellement, je travaille exclusivement avec les outils Microsoft. Les pieds bien sur terre et ancrés dans le quotidien de l'entreprise, j'aime faire partager mes découvertes et contribuer à un meilleur usage des technologies. Vous aussi, rejoignez-nous sur Synergeek et partagez votre expérience!

Je vous propose également...

Zeroshell 3.0.0 est sorti 7

Zeroshell 3.0.0 est sorti

La nouvelle version de Zeroshell est sortie le 2 janvier dernier. A priori, peu de …

IPv6 où en est-on? 8

IPv6 où en est-on?

L’IPv6 j’en entends parler depuis ma formation d’admin sys&réseaux… Et ça remonte déjà à plus …