contrôliste

Mon royaume dans les nuages

Dès lors qu'on y pose un pied, on se sent observé. On entends les forces inimaginables, les démons, les esprits, les dieux qui régissent ce monde et on constate avec horreur qu'eux aussi peuvent nous entendre.

Depuis que j’ai l’argent pour en louer un, j’ai toujours eu un serveur à mon nom. D’abord ce qu’on appelle des machines virtuelles, de petits systèmes qui coexistent sur un serveur plus gros, puis un serveur dédié. C’est à dire un ordinateur, un vrai, branché à internet, quelque part dans un datacenter à Roubaix et allumé 24 heures sur 24.

Avoir un serveur, c’est un privilége. Ca t’ouvre tout un tas de possibilités que tu n’avais même pas imaginé. Au début, tu en veux un pour héberger un serveur Minecraft pour toi et tes copains. Puis ensuite, tu héberges un site internet, puis des services, comme un cloud personnel. Tu peux même au bout d’un moment, comme ça a été mon cas, être pris d’ambitions étranges sans aucune raison. Tu installes pleins de services que tu n’utilises pas. Tu invites tes amis ou ta famille a les utiliser.


J’ai considéré que cette nouvelle année 2024 était le bon moment pour réinstaller mon serveur. Je loue un Kimsufi KS-4, une machine mise à disposition par la marque du même nom, une filiale de OVH qui est le grand géant européen de l’hébegerment, chez qui je loue aussi des noms de domaines.

Les Kimsufi, en tout cas à l’époque où j’ai cherché, étaient réputés pour être des serveurs dédiés relativement accessibles. En général, les serveurs dédiés (ou machines “bare metal” comme on les appelles, c’est à dire où tu loues littéralement un ordinateur) sont plutôt chers et loués par des grosses entreprises. Les particuliers, les gens dans mon cas, louent en général plutôt des VPS, c’est à dire grossièrement, un ordinateur émulé par un autre ordinateur.

Le processeur, les 2 to d’hébergement et les 16 go de RAM de ce KS-4 sont bien suffisants, même beaucoup plus que ça, pour l’usage que j’en fais. En fait, mon serveur n’utilise même pas 1% de ses capacités la grande majorité du temps, mais ce n’est pas vraiment surprenant dans le monde de l’hébergement.

Avant de le réinstaller, mon serveur servait principalement à héberger un cloud que j’utilise quotidiennement, quelques sites internets et des serveurs de jeux pour Minecraft et Project Zomboid. Ceci étant dit, comme c’est souvent le cas chez les amateurs, il a commencé à devenir un peu bordélique et à en quelque sorte pourir et plus je négligeais ma machine, moins je comprenais ce qui s’y passe et moins j’avais envie de me pencher sur le problème et pire ça devenait.

En soi c’est pas forcément très grave. Il y a énormement de machines abandonnés et beaucoup dans un état bien pire que la mienne. Mais il y a aussi pas mal de gens qui passent leur temps à chercher ce genre de serveurs vulnérables et sans surveillances pour y poser leurs mineurs de cryptos ou les intégrer à leur botnet. Comme je préfère éviter d’être confronté à ce genre de problèmes, j’en suis arrivé à la conclusion qu’il était probablement plus sage de réinstaller.


Cette ambition t’amène naturellement à te former. La grande majorité des serveurs se manipulent à distance à travers un terminal, un invité de commande. Rien que se connecter à son serveur est déjà une expérience pour le néophyte. Tu es déjà bombardé de termes barbares comme SSH ou FTP. Tu découvres les protocoles, les langues de l’internet mondial. Si ce n’est pas déjà fais, tu apprends aussi à utiliser Linux. Tu découvres les permissions, systemd et tout un tas d’autres concepts qui au début te semblent impossiblement complexe et que tu te surprends à comprendre au fur et à mesure que tu commences à les appréhender.

Tu découvres aussi des nouvelles angoisses. Parmi les premières expériences marquantes, on trouve la première fois que tu consultes les logs - le journal - de son fail2ban, un logiciel “videur de boite” qui dis qui a le droit de se connecter ou pas, en gros. Ce qu’on observe à ce moment là, c’est que notre serveur est en permanence victime de milliers de tentatives de connexions, de piratage, d’attaques. On apprends l’existence de cette guerre dans les cieux qui se jouent sans que personne ne le remarque. On entends les hordes de drones pilotés par des gouvernements, par des organisations criminelles ou simplement par des petits rigolos qui viennent se cogner à notre porte, qui tentent de s’infiltrer dans chaque recoin. Et on sait qu’ils finiront par trouver une faille.


Pour cette réinstallation, j’ai eu envie de m’intéresser au sujet de la virtualisation. Si vous vous souvenez bien, j’évoquais plus tôt une distinction entre les serveurs dédiés dits “bare metal” et les VPS, les serveurs virtuels. Ducoup voilà, l’avantage de louer un serveur dédié, c’est qu’on peut y utiliser la même technologie utilisés par les hébergeurs pour y créer ses propres serveurs virtuels.

J’ai été inspiré par Wolfgang, un youtuber plutôt cool qui lui aussi aime bien réinstaller son serveurs tous les 6 mois. Il fait notamment la démo d’un logiciel qu’on appelle Proxmox, un hyperviseur, c’est à dire un logiciel qui sert à créer des serveurs virtuels.

Si vous êtes néophyte, ça ne vous parle peut-être pas, mais la virtualisation est probablement l’un des sujet les plus intimidants et difficile à aborder qu’on peut rencontrer dans une aventure d’auto-hébergement comme la mienne.

Si je considère que l’auto-hébergement, c’est à dire le fait d’avoir un serveur et d’y héberger les services qu’on utilise, comme quelque chose d’assez accessible à n’importe qui pour peu qu’on soit un peu motivé, je trouve la question de la virtualisation beaucoup plus intimidante. C’est un sujet très technique. Alors j’ai fais beaucoup de recherches.

Alors que je posais mes questions au moteur de recherche de la manière habituelle quand je rencontre un problème, j’ai été surpris de constater que soit je ne trouvais pas de réponses, soit qu’elles étaient trop complexes à comprendre pour moi, soit qu’elles étaient carrément contradictoires.

À ce moment là j’ai failli abandonné, mais j’avais toute la soirée devant moi et l’envie absolument injustifiée de persevérer et comprendre dans quel pétrin je m’étais fourré. Donc je me suis lancé à corps perdu dans ce projet, jusqu’au bout de la nuit.


A la manière de Neo dans la matrice, on aperçoit brièvement Internet tel qu’il est réellement. Un vortex de flux incessants, un trou noir, un espace infiniment dense où la distance ne signifie rien. Tout le monde y est interconnecté. Dès lors qu’on y pose un pied, on se sent observé. On entends les forces inimaginables, les démons, les esprits, les dieux qui régissent ce monde et on constate avec horreur qu’eux aussi peuvent nous entendre.


Depuis le panneau d’administration de mon serveur, je demande une réinstallation. Alors que la modale me demande mon système d’exploitation, je selectionne Proxmox 8 et j’attends quelques minutes.

Je fini par recevoir un mail qui me donne les identifiants pour me connecter à mon serveur depuis mon terminal ainsi que le lien vers l’interface d’administration accessible par navigateur.

Je sais que dès qu’un serveur est en ligne, il est immédiatement pris d’assaut par des légions de bots qui vont lui tater les ports. Alors j’ajoute une règle dans mon pare-feu qui bloque tout les paquets qui ne viennent pas de chez moi.

Si vous faites ça, vérifiez que vous autorisez au moins le monde extérieur à vous pinger, sinon vous allez recevoir un joli message de votre hébergeur qui vous informera qu’il va intervenir sur votre machine - parce que de leur point de vue, une machine qui ne réponds plus au ping, c’est qu’elle est en panne, à raison.

Ensuite, j’ai désactivé les connexions en SSH par mot de passe. Pour la faire court, c’est une étape plutôt standard de sécurisation d’un serveur. Plutôt que de s’identifier avec un mot de passe, on utilise un système de clé secrète. En gros on télécharge sur le serveur la première moitié d’une clé, une clé dite publique, qui si elle est mise en lien avec l’autre moitié de la clé, c’est à dire la clé privé bien au chaud sur votre ordinateur, permet d’assurer à coup sûr que c’est bien vous qui êtes en train de vous connecter à votre serveur.

L’authentication par clé secrète à le mérite d’être relativement inviolable (en tout cas, virtuellement immunisée contre les techniques habituelles).

Comme mon hébergeur ne me fournit qu’une seule adresse IP, j’ai crée un réseau interne depuis l’interface d’administration de Proxmox. Si on peut comparer une adresse IP à une adresse postale (15 rue des lilas…), alors créer un réseau interne, c’est un peu comme créer des numéros d’appartement pour un immeuble (11 rue des peupliers, appartement 3). C’est une étape obligé dès lors qu’on a plus de machines qu’on à d’adresses à distribuer.

Cela dit, exactement comme pour La Poste, il y a de grandes chance que le livreur se contente de crier et d’attendre dans le hall d’entrée. Pour poursuivre cette métaphore, la personne qui va venir répondre au livreur et amener le paquet à l’appartement qui doit le recevoir, c’est ce qu’on appelle un routeur.

Sur un serveur comme le miens, c’est le pare-feu de la machine hôte qui fait office de routeur. Ce n’est pas une configuration très professionnelle, mais pour mon cas relativement simple, c’est suffisant.

À ce moment là, j’ai déjà pratiquement terminé la mise en place de mon serveur. Il manque deux élèments essentiels, un VPN et un serveur web.

Le but du VPN va être de créer un tunnel sécurisé entre mon réseau local, celui de mon ordinateur personnel et le réseau interne de mon serveur, ce qui me permet de travailler dessus sans avoir à ouvrir les ports de mon serveur. C’est quelque chose que j’ai essayé pour la première fois à ce moment là et j’ai appris que des outils comme PiVPN rendait la mise en place de ce type de configuration vraiment simple. J’ai simplement eu à créer une machine virtuelle et y écrire quelques commandes pour le mettre en place.

En ce qui concerne le serveur web, son but est de servir de reverse proxy. Grossièrement, je vais envoyer tout les petits paquets internet que je reçois dans ce machin qui va ensuite le renvoyer vers une autre machine qui doit la recevoir (ah si c’est pour cloud.machin.net je l’envoi à la machine 102, ah si c’est pour wiki.machin;net je l’envoi à la machine 104). Si vous suivez, c’est un peu comme un routeur, mais uniquement pour le trafic web.


No matter where you go, everyone’s connected.


Publié le 11/01/2024
Dernière modification le 11/01/2024

permalien
flux rss
à propos

revenir à l'index