Documentation technique : Debian
Documentation basée sur la distribution Debian

> > Sécurisation SSH basique

Également dans les rubriques : Premières sécurisations, Sécurité

Sécurisation SSH basique

Interdire la connexion de l’utilisateur root

Lors de l’installation basique du serveur OpenSSH, l’utilisateur root est autorisé à se connecter au serveur directement, ce qui peut être considéré d’une certaine manière comme un défaut de sécurité car si quelqu’un trouve d’une manière ou d’une autre le mot de passe de cet utilisateur (en utilisant une attaque par dictionnaire par exemple), il pourra ensuite faire ce qui lui plait sur le serveur.

Il est donc nécessaire de modifier la configuration du serveur ssh :

  1. nano /etc/ssh/sshd_config

Puis modifier la ligne :

  1. PermitRootLogin yes

en :

  1. PermitRootLogin no

afin d’interdire au compte root de se connecter directement en ssh.

Il est ensuite nécessaire de redémarrer ssh pour prendre en compte les modifications :

  1. sudo /etc/init.d/ssh restart

NB : Les utilisateurs "normaux" connectés par ssh ont toujours la possibilité de passer en super-utilisateur en utilisant su ou sudo bien entendu.

N’autoriser que certains utilisateurs définis à se connecter

Il peut être également utile de n’autoriser que certains utilisateurs du système à se connecter en ssh au serveur.

Pour ceci il suffit de modifier le fichier de configuration :

  1. nano /etc/ssh/sshd_config

Puis d’ajouter ou modifier la ligne si elle existe déjà :

  1. AllowUsers user1 user2

NB : "user1" et "user2" doivent être des utilisateurs du système.

Il est ensuite nécessaire de redémarrer ssh pour prendre en compte les modifications :

  1. sudo /etc/init.d/ssh restart

Vérifier les droits des répertoires et fichiers

Les répertoires de configuration et les fichiers contenus, qu’ils soient sur le serveur ou sur les machines clientes ne devraient pas être lisible et utilisables par n’importe quel utilisateur du système.

Dans un premier temps on va modifier les droits du répertoire de la sorte :

  1. chmod 700 ~/.ssh

Cela change les droits de notre répertoire personnel .ssh en 700 soit, seulement l’utilisateur peut lire, écrire et exécuter dans ce répertoire.

Si on lance la commande suivante ls -lsa ~/.ssh on doit voir la première ligne suivante 4 drwx------  2 user1 user1 4096  2 janv.  2011 .

Ensuite, seuls les utilisateurs devraient pouvoir lire et modifier leurs fichiers de configuration. Pour ce faire, on lance la commande suivante :

  1. chmod 600 ~/.ssh/*

Avec la commande ls -lsa ~/.ssh/, l’ensemble des fichiers devraient avoir comme droits -rw-------.

Enfin, on va modifier les droits des clés publiques [1] (*.pub) en donnant à tous les utilisateurs la possibilité de les lire avec la commande :

  1. chmod 644 ~/.ssh/*.pub

En lançant la commande suivante ls -lsa ~/.ssh/*.pub, l’ensemble des fichiers doivent avoir comme droits -rw-r--r--.

Fichiers et répertoires modifiés modifié

  • Le répertoire :
    • ~/.ssh/ le répertoire de configuration ssh de chaque utilisateurs (sur tous les utilisateurs sur le serveur et sur les machines clientes) ;
  • Les fichiers :

Notes

[1Voir l’article "Sécurisation SSH poussée : authentification par clé DSA" pour leur usage.

  • Auteur :
  • Publié le :
  • Mis à jour : 07/02/13

1 commentaire


  • Le 26 novembre 2011 à 17:12, par Tim En réponse à : Sécurisation SSH basique

    On pourrait peut-être rajouté comme sécurité supplémentaire, le changement du port de base pour la connexion ssh via la ligne "Port 22" du fichier /etc/ssh/sshd_config ? :)

    Répondre à ce message

Qui êtes-vous ?
  • [Se connecter]
Ajoutez votre commentaire ici
  • Ce formulaire accepte les raccourcis SPIP [->url] {{gras}} {italique} <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.