Guacamole sur un plateau (1/5) : on monte un bastion sécurisé
Vous cherchez le bastion ?
Un peu de technique, beaucoup de lignes de commande et quelques images pour changer un peu. C’est le menu du jour, proposé par Jean. Dans une série de cinq épisodes, il nous propose un tuto pour monter un serveur bastion sécurisé, y ajouter quelques ingrédients nécessaires, y placer le fameux guacamole, saupoudrer d’une couche de sécurité et enfin en profiter pleinement.
Le 11 décembre 2023 à 17h13
5 min
Internet
Internet
Les plus bidouilleurs de nos lecteurs disposent souvent de machines réparties un peu partout, et rien n’est plus énervant que d’être au bureau (ou, pour les plus chanceux, en vacances) sans pouvoir bichonner vos VM chéries à cause d’un wifi bridé sur le port 80 ou d’un réseau dont les règles de sécurité interdisent les protocoles RDP, SSH ou VNC (et les ports exotiques de façon générale).
Or, il existe des solutions, dites de bastionnage, dont le rôle est de centraliser ce type de flux et d’accès, tout en assurant la sécurité des échanges. Et, grâce à HTML 5, il est également possible de le réaliser via un simple navigateur ! Un outil tel que Guacamole, de la fondation Apache, nous permet d’accéder librement à nos chères machines. Il en existe d’autres, mais celle-ci est open source et gratuite (rappel : ce ne sont pas des synonymes).
Comme il est dit sur le site du projet : « Because the Guacamole client is an HTML5 web application, use of your computers is not tied to any one device or location. As long as you have access to a web browser, you have access to your machines ». Pour résumer, comme Guacamole est une application web HTML5, avoir simplement accès à un navigateur suffit pour accéder à vos machines.
On profitera aussi de cette occasion pour réviser quelques bases de sécurité (et de sécurisation) d’un serveur (Guacamole ou pas).
Le mot de la sécurité
Cette présentation a un but éducatif : vous aurez ici des bases, mais pour faire de la production, il faudra aller bien au-delà des conseils prodigués ici, en termes de sécurité, de résilience et de conformité.
Les accès distants, qu’ils soient entrants ou sortants, sont des sujets hérissant régulièrement les cheveux et autres poils des spécialistes de sécurité (pour ceux à qui il en reste).
Proxy ou bastion ?
Un proxy est un serveur relais entre deux infrastructures. Un proxy devient un bastion quand tout autre moyen de communication direct est interdit. Par exemple, si vous utilisez Guacamole pour accéder à des serveurs Windows en RDP, tout en laissant la connexion RDP possible, vous avez un proxy. Dans un tel cas, il ne sert qu’à faciliter la communication, quand les accès directs sont impossibles.
Par contre, si vous interdisez (volontairement) toute connexion autre que celle entre vos serveurs Windows et votre instance Guacamole, vous avez un bastion : cela devient le point de passage obligatoire pour accéder à vos machines, avec ainsi la possibilité d’ajouter des contrôles, du traçage et même l’enregistrement des sessions si votre activité est critique.
Ajoutons un serveur (de Guacamole) à nos serveurs
Allons de ce pas créer une nouvelle machine serveur, et pour cela une machine virtuelle légère fera l’affaire. Conformément à la politique et à la déontologie stricte que nous nous imposons, aucun des conseils qui va suivre ne comportera de lien publicitaire (il n’y aura d’ailleurs aucun lien, comme ça les choses seront claires).
Une VM très légère devrait suffire pour un usage personnel, et on en trouve à pas cher chez ionos.fr (ex 1&1) à 1 euro par mois la pièce, ou une stardust chez Scaleway à environ 4 euros par mois, plus chère, mais avec l’avantage de pouvoir être éteinte pour réduire la facture. Chez OVHcloud on démarre à 4,20 euros, mais sans le gain financier sur l’extinction.
Vous pouvez également mettre vos bons plans en commentaire. Partons de l’hypothèse d’une machine sous Ubuntu, mais les manipulations sur d’autres Linux ressembleront beaucoup à ce qui sera indiqué ici.
Sécurisons un peu
Sans creuser trop le sujet, car il mérite en soi des bouquins entiers, prenez quelques bonnes habitudes. On commence par mettre à jour tout ce qu’il faut. Ensuite on change le port SSH par défaut. Ça n’évitera que la brute force en masse d'attaquants ne faisant pas de reconnaissance de ports au préalable, mais c’est déjà ça.
Pour cela, un coup d’œil à /etc/ssh/sshd_config et on relance ssh. Sécurisez aussi l’accès du compte root (avec toutes les variantes possibles : authentification par certificat uniquement, second facteur, interdiction de la connexion root et utilisation de sudo, etc.) mais on risque de déborder largement du sujet.
Un point de vigilance : un pare-feu est très probablement configuré par votre hébergeur, il faudra l’adapter en conséquence. Pour ionos, il faut aller dans le menu « Serveurs & cloud », puis « Réseau » et « Stratégie de pare-feu » (à gauche) et éditer la stratégie appliquée à votre VM pour l’adapter au nouveau port choisi.
Ici le port 8443 est ouvert, on s’en servira pour Guacamole. Chez ionos, il est ouvert pour permettre l’utilisation de Plesk, mais il est également couramment utilisé pour des applications web Java en https (ce qui est le cas ici).
Pour les pointilleux, installez aussi tiger (pas le langage, l’outil d’audit de sécurité), et lancez-le de temps en temps. Attention à l’interprétation des logs qui peut être complexe.
On se donne rendez-vous demain pour l’installation des pré-requis, avec Tomcat et Let’s Encrypt.
Guacamole sur un plateau (1/5) : on monte un bastion sécurisé
-
Le mot de la sécurité
-
Proxy ou bastion ?
-
Ajoutons un serveur (de Guacamole) à nos serveurs
-
Sécurisons un peu
Commentaires (24)
Vous devez être abonné pour pouvoir commenter.
Déjà abonné ? Se connecter
Abonnez-vousLe 11/12/2023 à 18h08
Le 11/12/2023 à 18h43
Dans la lignée de cette article, on aura un dossier du genre, avec les avantages et les inconvénients (surtout en terme de sécu) ?
Le 11/12/2023 à 18h59
Le 11/12/2023 à 19h06
Le 11/12/2023 à 20h02
Le 11/12/2023 à 20h15
Le 11/12/2023 à 21h22
Le 12/12/2023 à 09h24
Le 12/12/2023 à 12h56
J'espère que la DINUM va faire comme pour tchap : contribuer au projet d'origine et fournir une surcouche à destination des agents de l'état
Modifié le 13/12/2023 à 10h33
Tchap aux dernières nouvelles est sur une voie de garage, il y a eu des soucis. Maintenant il est préconisé l'utilisation de OLVID.
Edit: et un énorme problème d'une solution "faite maison" est sa soutenabilité. Surtout dans le secteur public, ce qui explique -hélas- la présence de contrats avec des sociétés privées avec des factures mirobolantes. Parce qu'elles savent qu'elles sont indispensables, faute d'avoir l'attractivité nécessaire à avoir les compétences pour internaliser un tel projet.
Sans parler des contraintes liées à l'homologation, notamment.
Le 17/12/2023 à 17h52
Olvid est difficilement déployable sur la cible de Tchap.
Modifié le 11/12/2023 à 23h08
Aucun service en IPv4 hormis http/https donc plus besoin de multiplexer sur ce protocole.
Le 12/12/2023 à 07h54
Le 12/12/2023 à 13h25
Donc, en ce qui concerne les problèmes d'accès, le problème est avant tout IPv4.
Pour ce qui est de la sécurité, là encore, tout servir depuis une seule IPv4 partagée n'est pas l'idéal. Perso, mes services web ne sont pas disponibles sur les même adresses que les autres services pour plusieurs raisons dont le fait d'éviter les scans.
En concentrant tout le traffic dans un joli SPOF on facilite sûrement la gestion mais cela fragile le réseau. C'est un peu une habitude avec IPv4 comme le serveur DHCP qui te met une entreprise au chômage en cas de panne.
Modifié le 11/12/2023 à 23h06
Le 11/12/2023 à 23h08
je m'y remettrais à l'occasion, peut-être en dur sur une VM dédiée...
Le 12/12/2023 à 08h57
Le 12/12/2023 à 13h43
je l'ai benchmarké il y a 2 avec Wallix et d'autres... il a terminé 2eme derrière Teleport, qui est un cran au-dessus en termes de fonctionnalités, y compris dans sa version Community. Mais pour la vaste majorité des usages, Guacamole est largement suffisant (et c'est un vrai projet FOSS)
Le 12/12/2023 à 16h34
Question : on parle de 2FA pour root (et sur SSH ?) mais je n’ai jamais fait (malgré essais) ça. Mes expériences datent un peu donc ma question est de savoir s’il y a une solution aujourd’hui et si oui laquelle ?
Merci à tous
Modifié le 13/12/2023 à 11h05
Le 13/12/2023 à 15h43
Je trouve l'article clair (surtout au debut). Étant intéressé par -peu être un jour- avoir une petite instance quelque part, je vais suivre les articles.
Néanmoins je suis resté très perplexe sur cette phrase "Sécurisez aussi l’accès du compte root (avec toutes les variantes possibles : authentification par certificat uniquement, second facteur, interdiction de la connexion root et utilisation de sudo, etc.) [...]"
Je suis d'accord que cela nécessiterais un article dedié! Avoir une instance et un ssh "ouvert au cartes vents" est problématique, et en fait même sur mon reseau local (e.g. RPI avec Pihole), je serais preneur d'explications!!
Merci pour la série d'articles!
Le 23/12/2023 à 01h01
République Française
Le 12/12/2023 à 17h25
Le 13/12/2023 à 09h30
https://next.ink/117621/guacamole-sur-un-plateau-2-5-apache-tomcat-et-lets-encrypt/
La 3 aujourd’hui :)