Le ssh (secure shell) est un service extrêmement utile pour administrer à distance des serveurs linux. C’est également un service très bien connu des attaquants puisqu’il permet d’obtenir un contrôle quasi complet du système une fois la connexion établie. Il faut donc protéger au maximum l’accès à ce service en mettant en place différents éléments de configurations selon vos besoins en terme de sécurité. Je vais présenter ici quelques principes qui permettent de contrôler un peu mieux vos connexions ssh.
Sommaire
1. Modifier le port d’écoute
Par défaut, le service ssh écoute sur le port 22. C’est un port bien connu et très recherché par les attaquants. Ainsi, pour éviter que des bots n’essayent de s’y connecter automatiquement ou pour éviter la détection du service via des scans de ports classiques, il peut être intéressant de changer le port d’écoute du service.
Pour modifier le port d’écoute, il faut éditer le fichier /etc/ssh/sshd_config
Il suffit d’éditer ou d’ajouter la ligne « Port x » où x doit être un port disponible généralement entre 1024 et 65635.
Pour se connecter au serveur, il faudra maintenant bien penser à spécifier le port qui écoute :
ssh user@serverIP -p 2222
2. Désactiver l’accès ssh à l’utilisateur root
L’accès à l’utilisateur root en ssh est fortement déconseillé. C’est en effet l’utilisateur qui possède tous les droits sur le système donc si son accès ssh est compromis, tout votre serveur sera compromis.
Par défaut, sur une majorité de distributions linux, l’accès ssh à l’utilisateur root est désactivé mais si vous l’aviez activé, il suffit d’éditer le fichier /etc/ssh/sshd_config et la ligne PermitRootLogin no :
3. Spécifier des utilisateurs autorisés
Toujours dans le fichier /etc/ssh/sshd_config, il est possible de spécifier les utilisateurs et les IP sources qui seront autorisées à se connecter en ssh avec l’option AllowUsers :
4. Appliquer les modifications
Pour appliquer les modifications, il faut redémarrer le service ssh :
sudo service ssh restart
Il est ensuite possible de vérifier l’état du service ssh avec la commande :
Super article, j’aurais rajouté que un bon moyen de sécuriser le ssh est de désactiver l’authentification via mot de passe, en ajoutant une clé en authorized key et en modifiant sshd_config pour rajouter :
UsePAM no
ChallengeResponseAuthentication no
PasswordAuthentication no
Pourquoi utiliser Zsh ?
Zsh est un shell, c’est à dire qu’à l’image de bash ou de sh, c’est un interpréteur de commande.
Ce shell reprend les fonctionnalités de bash donc si comme moi, bash était votre shell habituel, vous ne serez pas dépaysés !
La grande force de zsh à mon sens, c’est la possibilité de customisation avec des extensions qui nous facilitent la...
Qu’est-ce que Log4j et JNDI ?
Log4j est un utilitaire de gestion des logs pour les applications développées en Java. Ce framework open-source est développé par l’Apache Software Foundation depuis 2001. Il permet de configurer précisément les fichi...
Voilà une astuce que je ne connaissais pas et qui peut s'avérer utile par les temps qui courent (télétravail, covid, toussa toussa). Saviez-vous que windows 10 propose nativement de transformer son ordinateur en écran secondaire, le tout sans utiliser le...
Je fais assez attention à la gestion de ma vie privée avec les technologies. À une période je songeais même à ne plus avoir de smartphone. Mais un point me gênait pour franchir le pas : ne plus avoir de GPS ! J'ai donc recherché quel smartphone était ...
Je ne savais pas qu’on pouvait restreindre l’accès avec des regex dans AllowUsers, merci de l’info !
Super article, j’aurais rajouté que un bon moyen de sécuriser le ssh est de désactiver l’authentification via mot de passe, en ajoutant une clé en authorized key et en modifiant sshd_config pour rajouter :
UsePAM no
ChallengeResponseAuthentication no
PasswordAuthentication no
Par contre il ne faut pas perdre se clé privée 😉