Installation d'un serveur Debian/Buster sécurisé

Résumé

Nous allons procéder à l'installation d'un serveur maison, sécurisé dans la mesure du possible et de mes connaissances, avec explications et tests, afin de comprendre le pourquoi du comment. Nous utiliserons la distribution Debian dans sa dernière mouture : Buster.

Ce ne sera pas un tutoriel à suivre pas à pas, mais plutôt un ensemble d'étapes qui permettront d'installer et configurer SON serveur. Chaque étape sera accompagnée de tests pour en vérifier le fonctionnement.

Certains services seront installés, comme un serveur de courriers (Postfix), un serveur DNS Knot (service différent par rapport au tutorial précédent: nous avions utilisé Bind9 ), un serveur Web (Apache), un bouncer IRC, un serveur Git (gogs ou Gitea). Nous aurions pu faire d'autres choix, comme Unbound (DNS), Citadel (courrier), etc.

De plus, j'ai voulu m'initier à ansible qui est un outil d'automatisation d'installation/mise à jour/configuration. Nous bâtirons des playbooks ansible au fur et à mesure (avec tests à chaque étape bien sûr.) Cela pourra aboutir à une installation entièrement automatisée des serveurs jouant différents rôles suivant leur fonctionnalité voulue: serveur web, serveur DNS etc ....

  1. Installation du système de base
  2. Démarrage sur serveur OVH
  3. Première étapes de sécurisation du serveur
  4. Configuration du réseau
  5. Installation d'un serveur de temps
  6. Installation d'un pare-feu
  7. Contrer les attaques de brute-force avec fail2ban
  8. Installation d'un serveur de courrier basique
  9. Installation du serveur DNS
  10. Installation d'un serveur web
  11. Installation de dovecot et de l'authentification
  12. Installation des certificats letsencrypt
  13. Ajout des enregistrements spf, DKIM, DMARC au fichier de zone DNS
  14. Ajout des comptes émail virtuels
  15. Installation de programmes de surveillance du serveur
  16. Installation d'un webmail (rainloop)
  17. Sécurisation d'un serveur WEB []: # (16. Ajout de DNSSEC) []: # (17. Ajout des enregistrements DANE) []: # (18. Gestion de clefs«SSH multiples) []: # (19. Utilisation d'une carte à puce pour s'authentifier) []: # (20. Utilisation d'un lecteur NFC et de tags)

Note: j'ai voulu utiliser le format Markdown pour écrire ce tuto; une manière de tester, d'apprendre le markdown. J'avoue qu'après des années d'utilisation de LaTeX et de Docbook, j'ai vraiment galéré: j'ai mis en place des vérificateurs de syntaxe markdown, utilisé des éditeurs spécialisés comme Stackedit, Dillinger (je ferai une partie pour expliquer l'installation de ces services en "local"), des extensions spécifiques à VisualCode, SublimeText ou Atom. Toutes ces solutions donnent un markdown valide différent, qui n'est pas transformé correctement si on change de convertisseur. Je sais qu'il y a plusieurs versions de markdown, mais elles pourraient être compatibles entre elles. Des outils comme mkdocs sont remarquables, mais markdown, pas à mon goût. J'aime ce qui est clair et reproductible.