đŸœČ ← ↑ ↓

Son domaine 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.


Publication originale : 2024-01-11 (sous le nom "Mon royaume dans les nuages")