[Debian etch] Sécuriser un minimum son accès SSH

Publié le 6 décembre 2008 - Administration Serveur. Tags : , ,

A l’occasion du crash serveur dont j’ai été victime hier, il m’a fallu réinstaller tout mon serveur; du coup, j’en profite pour poster quelques conseils sur l’administration serveur, à commencer par l’accès SSH de la machine.

1- Pour commencer nous allons changer le port d’écoute SSH par défaut, ça bloquera déjà les script kiddies & autres trolls, ce qui au final n’est pas une opération si anodine que ça.

a- Loggez vous en mode console sur la machine et éditez le fichier de config du serveur SSH, tapez :

nano /etc/ssh/sshd_config

Cherchez (CTRL+W) “What ports, IPs and protocols we listen for” et remplacer le port 22 utilisé par défaut par un port supérieur à 1024 (par ex : 1210). Enregistrez les modifs (CTRL+O), sortez de l’éditeur (CTRL+X) et relancez le serveur SSH :

/etc/init.d/ssh restart

b- Vérifiez que la modif a été prise en compte (important!):

netstat -nptl | grep 1210

Si tout est ok la commande doit retourner « 0.0.0.0:1210 ». Si le résultat de la commande ne retourne rien, ne surtout pas se déloguer du serveur et vérifiez la modification!


2- Nous allons maintenant interdire le login en root sur le serveur
afin de limiter au maximum les dégats potentiels en cas d’attaque (le root dispose de tous les privilèges, une attaque réussie donnerait donc la main mise totale à l’assaillant sur le serveur attaqué)

a- Créez un nouvel utilisateur (par ex : ‘newuser’) :

adduser newuser

Il vous sera ensuite demandé le mot de passe ‘passwd ‘ que vous devrez à taper 2 fois de suite. (les autres infos qui vous seront demandées peuvent être laissées vides)

b- Interdisez le login en SSH via le compte ROOT (et accessoirement interdisez les mdp vides si ce n’est pas déjà le cas) en étidant le fichier de config SSH:

nano /etc/ssh/sshd_config

Cherchez (CTRL+W) “PermitRootLogin yes” et remplacer par “PermitRootLogin no” (pour les mots de passe vides, mettre « PermitEmptyPasswords no » si ce n’est pas déjà le cas) et relancez le serveur SSH :

/etc/init.d/ssh restart

Pour les connections SSH ultérieures il faudra vous logger avec le compte ‘newuser’ et son mot de passe associé. Ensuite, pour bénéficier des privilèges du compte root avec cet utilisateur tapez :

su - root

Il vous sera demandé le mot de passe du compte root, insérez-le et vous serez en root via le compte ‘newuser’.


Articles sur ce thème :