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 :
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
Nous allons voir dans cet article comment passer d’une version PHP à une version supérieure sous nginx via l’implémentation php-FPM. Pour cela nous allons prendre l’exemple de ce site Wordpress que nous avons passé de la version de PHP 7.0 à la version PHP 7.4.
Notre configuration système:
Matériel : Raspberry PI 3B+
Serveur Web : Nginx version 1.10.3 utilisant php-FPM
...
Pourquoi je fais de la veille technologique
Tous les jours, de nouvelles vulnérabilités qui peuvent affecter nos téléphones, nos ordinateurs ou les serveurs informatiques des entreprises sont publiées. Il s’agit souvent de failles mineures qui nécess...
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 😉