Installation d'un serveur Debian
Après mon préambule sur l’auto-hébergement, la première étape c’est l’installation du serveur.
Quelques mots sur la machine, comme je voulais quelque chose de peu encombrant, silencieux et sobre en énergie, un brix était ce qu’il y avait de mieux et à peine plus gros qu’un Rasberry Pi. En comptant l’alim, la ram et le ssd, le budget est à peine plus du double mais il y a clairement plus de capacités. Comme c’est de la récup (merci mon héros anonyme), j’en ai eu pour moins de 100€ pour avoir un Celeron avec 4Go de Ram et un ssd mSata de 120Go.
Par contre, comme il a mangé la foudre, la prise éthernet est HS donc tout passe par le wi-fi (la box est 50cm en dessous).
Concernant la distribution, le choix ne s’est pas posé, ayant déjà un vieux notebook en debian oldstable, un desktop en debian stable, un laptop en Debian testing et un raspberry en Raspbian, il était évident pour moi d’avoir un serveur en Debian stable (désolé pour les fans de BSD).
J’ai donc récupéré la dernière netinstall de Debian 8.5 et c’est parti. Première petite subtilité, la carte wi-fi nécessite les drivers non libres, on récupère le paquet firmware-realtek.deb dans les dépôts non-free que l’on met sur une clé USB et c’est parti (d’ailleurs, si on recommence l’install, l’installateur cherche tout seul sur les périphériques et s’il trouve son bonheur, il ne demande rien à personne, c’est intéressant lorsque l’on sait que l’on a du matériel qui demande des drivers spécifiques).
J’ai donc fait une installation serveur sans interface graphique ni utilitaires de bureau. Et on se retrouve avec une belle ligne de commande et un serveur tout neuf.
Par contre, si le paramétrage du wi-fi avec network-manager dans une interface graphique se fait automatiquement et ne demande que le mot de passe, il faut ici paramétrer le wlan et je dois dire qu’aller rentrer une clé de 64 caractères contenant le réseau wi-fi et le mot de passe était assez cocasse mais j’ai suivi la doc Debian et la première véritable épreuve était passée.
J’était prêt pour accéder à mon serveur en ssh.
Avant de débrancher l’écran, on n’oublie pas de faire un ifconfig pour avoir l’adresse IP du serveur. Personnellement et comme je l’avait fait pour le Rasperry, j’ai fixé dans la configuration des baux DHCP de mon fournisseur d’accès le couple adresse MAC avec l’adresse IP sur laquelle doit toujours se connecter l’appareil en local sinon c’est la galère à chaque fois pour retrouver l’IP quand on veut se connecter en ssh de la manière suivante @@ssh user@192.168.0.xx le xx étant le nombre choisi et fixé.
Il faut savoir que l’accès ssh par internet en ssh user@nom_de_domaine
nécessite par défaut sur Debian (mais c’est configurable) l’utilisation de clés à générer (la doc explique tout ça) en plus du mot de passe.
Il est aussi conseillé d’installer et de configurer fail2ban pour éviter les tentatives d’intrusion par force brute.
La sécurisation de l’accès ssh et le paramétrage de fail2ban demandent quelques heures pour potasser les doc et parcourir les fichiers de config qui vont bien puis tester que si on essaie d’entrer sans le bon mot de passe on se fait bien bannir, éventuellement recevoir un mail pour être prévenu (nécessite le paquet et la configuration de sendmail qui n’est pas installé par défaut mais indispensable pour beaucoup de services) et ensuite ignorer les adresses desquelles on se connecte régulièrement pour éviter de se bannir soi-même en cas d’erreurs de saisie répétées.
Par défaut sur Debian, c’est Apache qui est installé par défaut comme serveur, la mode semble aller vers Ngnix, je suis personnellement resté traditionaliste là-dessus. Parce que à partir de maintenant, il va falloir faire des choix comme le type de serveur mais aussi la version de php ou le type de base de données. Il peut être intéressant d’aller voir les services que l’on veut absolument utiliser et s’ils ont des impératifs auquel cas, on n’a pas trop le choix. Ensuite, je suppose que certaines sont réputées plus performantes, d’autres plus légères. On peut même en utiliser plusieurs. J’ai personnellement fait le choix d’utiliser MariaDB et j’ai aussi installé phpmyadmin pour avoir un outil d’administration en page web au cas où.
Voilà pour la partie serveur. Je n’ai pas fait cela tout à fait dans cet ordre car quand on a un serveur tout neuf, on veut bien essayer d’installer d’abord un service et puis on passe à la sécurisation petit à petit et je suppose que j’ai vais encore améliorer les choses petit à petit au fur et à mesure de mon apprentissage.