Sécuriser son serveur Debian, les règles de base

 Serveurs dédiés  Commentaires fermés sur Sécuriser son serveur Debian, les règles de base
Août 112012
 

Introduction

Dans l’administration d’un serveur, la sécurité doit être un point essentiel et ne doit en aucun cas être prise à la légère. Votre point d’accès central au serveur est (et restera) votre connexion ssh. Dans le cas d’une distribution linux ‘nue’ vous ne disposerez pas d’autre moyen d’accès à votre serveur lors de la première connexion. Enfin, même une fois complètement fonctionnel, vous serez toujours amenés à vous connecter en ssh à celui-ci. Il est donc important de sécuriser correctement cet accès et il peut également s’avérer pratique d’automatiser la connexion à partir d’une machine suffisamment sécurisée physiquement. Je m’attarderais dans ce post à la configuration de la connexion en ssh depuis Windows via Putty. Putty est un logiciel gratuit aux fonctionnalités multiples. Il permet notamment d’établir aisément des connexions de type telnet, ssh, rlogin/rsh et raw. Vous trouverez le logiciel en téléchargement sur le site de l’éditeur: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

Premiers réflexes:

Lors de votre première connexion au serveur, il est important de prendre deux précautions.

  1. Penser à changer le mot de passe du root (qui vous a probablement été transmis en clair, par mail.
  2. Créer un nouvel utilisateur et lui donner les droits suffisants pour l’administration afin d’éviter de travailler en root sur le serveur.

Changer le mot de passe root.

Vous avez de cette façon créé un utilisateur héritant des droits des groupes root et admin. Vous pouvez alors vérifier la connexion avec le nouvel utilisateur (commande ‘su’) puis vous déconnecter de root. Il reste maintenant à sécuriser votre connexion ssh.

Utilisation de putty et connexion à l’aide de clés ssh:

Maintenant que les bases sont posées pour la sécurité de votre serveur, vous pouvez être tenté d’en automatiser la connexion à partir de votre poste de travail principal. Bien évidemment, je ne m’attarderais pas sur le fait qu’il convient, dès que l’on pense à ce genre de solution, de s’assurer de la sécurité du poste de travail en question. (D’autant plus si vous gérez plusieurs serveurs.) Toutefois, il est souvent plus simple de sécuriser une machine locale qu’un serveur distant. (Et si l’IP de votre serveur sera facilement accessible par n’importe qu’elle personne accédant à l’un de vos services, il lui sera bien plus difficile de trouver l’IP à partir de laquelle vous administrez le serveur, ce qui rend l’attaque en ligne plus délicate.)

  1. Génération de la clé SSH: Nous allons tout d’abord utiliser PuttyGen (disponible sur la page de téléchargement de putty) afin de générer la clé ssh. Pour la plupart des cas d’utilisation, les paramètres par défaut suffisent amplement. Ils génèrent une clé SSH-2 (Rsa) qui est la clé la plus sécurisé qu’il est en mesure de créer. La clé est cryptée sur 1024bits qui, à ce jour est considérée comme incassable dans des délais humainement raisonnables. (Il va de soit que la technologie évoluant, il sera toujours nécessaire d’augmenter la complexité de cryptage au fil des ans…) Appuyez sur « generate » et bouger votre souris à l’écran pour générer une clé totalement aléatoire. La clé s’affiche dans le premier cadre. Le champ « key comment » vous permet d’entrer une zone de texte pour identifier votre clé. Le champs « passphrase » vous permet de définir un mot de passe pour protéger l’utilisation de votre clé privée. Si vous n’entrez pas de mot de passe, l’utilisation de la clé ne sera pas restreinte. C’est à dire que n’importe quelle personne ayant accès à votre ordinateur ou ayant réussi à se procurer votre clé pourra l’utiliser pour se connecter librement à votre serveur. L’utilisation d’un mot de passe vous permet ainsi de sécuriser votre connexion mais il vous sera toujours demandé lors de la connexion au serveur. Il vous faut alors sauvegarder votre clé privé et votre clé publique (« save public key » et « save private key ») L’extension de la clé privé doit nécessairement être du type .ppk pour la clé publique, il est communément admis l’utilisation de l’extension .pub
  2. Vous pouvez maintenant configurer Putty afin d’utiliser automatiquement la clé ssh que vous venez de configurer. Après avoir configuré votre Host Name et le port pour votre connexion, qui dépend de la configuration de votre serveur ( je recommande d’utiliser un autre port que le port 22 pour des raisons de sécurité…) Dans la catégorie SSH c’est le menu Auth qui vous intéresse. Dans la zone Private key file for authentification saisissez l’emplacement de votre clé privé (extension .ppk si vous avez suivi les instructions ci-dessus.) Vous pouvez ensuite revenir au menu Session afin de sauvegarder la configuration.
  3. Connectez vous à l’aide de votre mot de passe sur votre serveur. Placez vous dans le répertoire home de l’utilisateur pour lequel vous souhaitez activer l’authentification par clé. Il vous suffit ensuite de créer le répertoire .ssh (s’il n’existe pas déjà) qui contiendra vos diverses clés ssh privées ou publique pour les diverses authentifications que vous mettrez en place. Il vous suffit ensuite de créer le fichier  authorized_keys et d’y coller le contenu de votre clé publique. (Si puttygen est toujours ouvert, vous pouvez copier le contenu de la clé, autrement, il vous suffit d’ouvrir votre clé .pub avec un éditeur de texte et d’en copier le contenu.) Enregistrer le fichier et déconnectez vous du serveur.

Vous pouvez alors tenter de vous reconnecter à votre serveur avec putty et la connexion configurée précédemment. Si vous aviez configuré un mot de passe pour votre clé, celui-ci vous sera demandé à chaque connexion (mais n’est plus transmis au serveur ce qui diminue le risque d’interception du mot de passe) si vous n’aviez configuré aucun mot de passe, vous vous connectez directement au serveur. Si la connexion échoue, votre serveur vous demandera votre mot de passe pour vous connecter manuellement. Vérifier alors la bonne mise en place des clés .ppk et .pub sur Putty et sur votre serveur.

Vous avez ainsi pu sécuriser et automatiser la connexion à votre serveur par ssh. Il existe bien évidemment d’autres méthodes pour disposer d’une connexion sure et ceci n’est pas La méthode fondamentale. Toutefois, elle permet déjà de sécuriser convenablement la connexion et éventuellement de l’automatiser afin d’éviter d’avoir à entrer un mot de passe à chaque connexion.