Intro
Si vous aussi vous avez une vieille machine à la maison que vous n’utilisez plus, et que vous vous sentez l’âme bidouilleuse, alors prenez votre meilleur café et lisez ces quelques lignes qui vont suivre, cela vous motivera peut-être à installer votre premier serveur web maison !
La machine
J’ai récemment mis la main sur un lot de mini pc, des Lenovo Thinkcentre M710q :

Ils ne sont pas de toute première jeunesse, de plus ils n’avaient pas de disque dur quand je les ai récupérés, mais ces machines sont réputées pour leur robustesse, ils sont de parfaits candidats pour monter des serveurs web à la maison par exemple.
Première étape, redonner à ces machines une config convenable.
M’étant renseigné auparavant sur ces modèles, je savais qu’on pouvait modifier la configuration initiale plutôt facilement, les emplacements pour les disques et la RAM sont tout à fait accessibles aux plus novices d’entre-nous :

Une simple vis à retirer à l’arrière et nous pouvons retirer le capot de la machine, comme ceci :

Un premier élément intéressant ici est la grosse cage en plastique sur la gauche, c’est en effet un emplacement pour disque dur SATA 2.5 ssd. Sympa, mais la partie qui nous importe vraiment se trouve à l’arrière de la machine, un autre “capot” à faire coulisser et ….

Nous y voilà, un emplacement NVME et les accès à la RAM! Comme vous pouvez le voir sur la photo, j’y ai déjà ajouté mes composants, 2 barrettes de RAM DDR4 de 8Go chacune et un disque dur M2 de 500Gb.
Pour les petits curieux, j’ai récupéré les références de ces composants sur le site de crucial il y a d’autres combos possibles !
L’hardware est prêt, allons chercher l’OS !
Debian 12
Si vous êtes dans mon cas, il vous faudra au minimum une clé USB pour parvenir à installer l’os sur votre machine, je vous recommande l’utilisation du soft Rufus pour créer votre clé bootable avec l’OS de votre choix dessus, mais comme le sujet de cet article concerne Debian, je vais donc continuer avec l’installation de Debian 12.11 amd64.
Une fois votre clé bootable construite, vous devriez voir ceci sur votre écran :

J’ai choisi Graphical Install pour être confortable sur l’installation (ce sera aussi l’occasion de vous fournir des screenshots clés pour l’installation)
L’une des premières choses que debian vous demande est l’interface réseau principale à utiliser, ma machine comprend une carte wifi (wlp2s0 sur le screen) que je choisis comme interface principale.

Il vous faudra aussi définir un nom pour votre machine :

On vous demandera de partitionner les disques pour pouvoir installer le système :

Pour des raisons de simplicité, je préfère créer une partition sans séparations :

J’ai personnellement choisi de prendre le disque M2 entier pour la partition:

Vous pourrez personnaliser légèrement les éléments installés :

J’ai choisi de tout décocher pour ma part, nous allons installer les éléments nécessaires plus tard. (Vous n’aurez pas d’interface graphique de cette manière)
Enfin, Debian va vous proposer d’installer GRUB, si vous avez déjà un autre OS sur votre machine, soyez attentifs à ce que vous faites car il se peut que GRUB ne reconnaisse pas le système déjà installé:

Il vous faudra choisir la partition à utiliser pour installer grub :

Une fois l’écran suivant atteint, vous allez pouvoir débrancher votre clé et laisser votre machine redémarrer, elle lancera GRUB si vous l’avez installé, puis vous pourrez lancer Debian !

La connexion RDP
Le RDP (Remote Desktop Protocol) est un protocole de connexion entre machines développé par Microsoft, nous allons l’utiliser pour connecter notre machine Windows avec la nouvelle machine que nous venons de réhabiliter avec Debian.
Nous allons créer un utilisateur dédié à cette fonctionnalité, pour cela ouvrez un terminal en tant que root (commande su - qui va permettre d’initialiser le $PATH pour l’utilisateur root au lieu d’hériter de celui de l’utilisateur avec lequel vous êtes connecté qui ne contient pas /sbin)
La commande adduser <user> vous permet de créer un utilisateur
Vous pouvez modifier cet utilisateur avec la commande usermod -aG sudo <user> pour l’ajouter au groupe d’utilisateurs sudo
Si vous êtes sur une première installation, vous aurez besoin d’installer la commande sudo avec apt install sudo
Il faut ensuite ajouter l’utilisateur au fichier sudoers avec la commande sudo visudo
Cherchez la section User privilege specification
Et ajoutez la ligne suivante <user> ALL=(ALL:ALL) ALL
Votre utilisateur est créé, nous allons pouvoir installer les packages nécessaires à la connexion !
exit vous permet de vous déconnecter de l’user actuel. Connectez-vous ensuite avec le nouvel utilisateur que nous avons créé plus tôt.
Comme à chaque fois avant d’installer quelque chose vous lancerez :
sudo apt update
sudo apt upgrade
Le protocole RDP nécessite une interface graphique pour fonctionner, nous allons en installer une, xfce4, avant d’aller plus loin :
sudo apt install xfce4 xfce4-goodies
sudo reboot pour redémarrer la machine et tester l’interface graphique.
Une fois que vous avez constaté que xfce fonctionne bien, nous allons installer xrdp qui va nous permettre d’utiliser le protocole rdp
sudo apt install xrdp
Une fois installé, vérifiez que le service est en train de s’exécuter :
sudo systemctl status xrdp
Dans le retour, la mention Active: active (running) atteste que tout s’est bien installé.
Il nous reste à indiquer à xrdp fraîchement installé, d’utiliser xfce comme interface graphique lorsque une connection RDP est initialisée (on pourrait tout à fait avoir plusieurs interfaces graphiques d’installées sur Debian).
Pour cela, il suffit d’éditer le fichier /etc/xrdp/startwm.sh pour qu’il ressemble à :
#!/bin/sh
# xrdp X session start script (c) 2015, 2017, 2021 mirabilos
# published under The MirOS Licence
# Rely on /etc/pam.d/srdp-sesman using param_env to load both
# /etc/environment and /etc/default/locale to initialise the
# locale and the user environment properly.
if test -r /etc/profile; then
. /etc/profile
fi
if test -r ~/.profile; then
. ~/.profile
fi
#test -x /etc/X11/Xsession && exec /etc/X11/Xsession
#exec /bin/sh /etc/X11/Xsession
startxfce4Nous allons également changer le port configuré par défaut pour les connexions rdp, ils faut éditer le fichier /etc/xrdp/xrdp.ini et changer la valeur de port dans [Globals] pour le port de votre choix. Il s’agit d’une première précaution contre des attaques potentielles.
Relancez le service xrdp pour charger la nouvelle configuration :
sudo systemctl restart xrdp
Enfin, comme nous avons changé le port par défaut, il faut l’ouvrir, nous allons utiliser un package pour simplifier cette ouverture de flux.
sudo apt install firewalld
Lancez ensuite le service firewalld sudo systemctl start firewalld
Si vous souhaitez que firewalld soit lancé au démarrage du pc, vous pouvez lancer sudo systemctl enable firewalld
Pour ouvrir le port, il faut lancer sudo firewall-cmd --add-port=<votre_port>/tcp --permanent
Le retour de la commande devrait être success si tout va bien.
Rechargez la configuration de firewalld avec sudo firewall-cmd --reload
Nous allons enfin pouvoir tester ! Vous allez avoir besoin de connaître l’adresse ip de votre machine (l’ip de votre réseau local)
Sur debian, lancez la commande ip addr show , en retour, cherchez l’entrée inet qui n’est pas 127.0.0.1 (c’est votre localhost)

Sur mon retour, l’adresse qui nous intéresse est 192.168.1.20
Puis lancez votre utilitaire Windows préféré, la connexion bureau à distance, renseignez l’adresse complète de votre machine pour la connexion rdp (ip:port), et ajoutez le nom d’utilisateur que nous avons créé également.
Si vous avez tout configuré comme il se doit, vous devriez voir apparaître cet écran :

PS : Pensez à vous déconnecter de votre compte créé avant de vous y connecter via rdp
Conclusion
Voilà, vous avez désormais une machine à disposition pour pouvoir expérimenter, installer et tester des OS différents, faire de la conteneurisation, un homelab, les possibilités sont vastes ! À l’heure où tout est dirigé vers le cloud, les notions d’infrastructure peuvent paraître abstraites à la plupart des développeurs. Avec ce genre d’initiatives concrètes, j’aspire à mieux comprendre certains enjeux de nos amis admin système et réseaux.


_Z1IETUX.webp)