Serveur: un peu de sécurité pour SSH
Rédigé par Xavier - -
Cet article est un complément au tutoriel "Monter son serveur web" écrit il y a quelques temps déjà.

Par défaut OpenSSH utilise le port 22 et autorise le login root. Il y a moyen d'augmenter un peu la sécurité en y remédiant. L'association SSH = 22 facilite grandement le travail d'éventuels pirates (ils connaissent déjà le port) et le login root permet de tout casser si le mot de passe est découvert.
Se logger en utilisateur standard n'est pas terrible non plus car des dégâts peuvent être faits dans le /home. Nous devons donc mettre en place un utilisateur inoffensif qui n'aura aucun droit. Il pourra néanmoins utiliser la commande "su" pour passer obtenir plus de droits.
Si un pirate trouve votre serveur, il devra d'abord trouver quel port est utilisé. Il devra ensuite trouver le login. Puis si il trouve votre mot de passe, il pourra se connecter mais n'aura aucun droit.
Objectifs
- Changer le port
- Créer un utilisateur inoffensif
- Restreindre l'accès SSH
Changer le port
Ouvrez le fichier /etc/ssh/sshd_config et trouvez les lignes suivantes:
# What ports, IPs and protocols we listen for Port 22
Et remplacez "22" par une valeur au moins supérieure à 4000 (les ports 0 à 1024 sont réservés, et ceux de 1024 à 4000 sont parfois utilisés aléatoirement). Relancez votre serveur.
Maintenant, essayez de vous logger à distance:
Cela ne fonctionnera pas, car par défaut le port essayé sera 22. Si vous avez mis le port 6666 précédemment, vous devez taper:
Créer un utilisateur inoffensif
Nous allons créer un utilisateur nommé "remotelogin" qui n'aura aucun droit:
Cet utilisateur n'a même pas de répertoire personnel. Ajoutez-lui un mot de passe:
Maintenant vous devez modifier les permissions du dossier de votre "véritable" utilisateur (si il y en a un). Imaginez par exemple que votre serveur web lise des pages situées dans le dossier /home/quentin/www. Passez ce dossier en permissions 750:
N'ajoutez pas l'option -R sinon les sous-dossiers seront aussi modifiés et cela pourrait causer des problèmes (ou du moins des comportements imprévus). La permission 750 c'est:
- Propriétaire: tous les droits
- Groupe: lecture et exécution
- Autres: aucun droit
Notre nouvel utilisateur "remotelogin" ne faisant pas partie du groupe de quentin, il ne pourra donc pas accéder à ses fichiers. Si vous vous loggez en "remotelogin", vous ne pourrez pas entrer dans le répertoire /home/quentin (permission non accordée).
Restreindre l'accès SSH
Toujours dans votre fichier /etc/ssh/sshd_config, vous allez ajouter une ligne à la fin:
Puis relancez votre serveur
Désormais, à distance, si vous essayez de vous logger en root ou en "quentin":
$ ssh root@IPSERVER -p 6666 $ ssh quentin@IPSERVEUR -p 6666
Cela ne fonctionnera pas! Mais SSH ne précisera pas que ces logins sont désactivés. C'est un peu comme négocier avec un videur pour entrer en boite de nuit, sans savoir que la porte principale est fermée à clé et qu'il faut passer par derrière. Une perte de temps pour les éventuels pirates. Evidemment seul le login en "remotelogin" fonctionnera:
Aller plus loin
Phollowme a posté il y a quelques temps un article un peu plus poussé sur la sécurisation d'un serveur SSH à cette adresse.