Sécuriser le service SSH
Le service SSH est un des services les plus attaqués, une CVE ou un accès non autorisé via ce service et votre serveur sera compromis.
Par défaut le service à une sécurité moyenne qui peut-être améliorée alors suivez ces conseils
Toute la configuration se trouve dans le fichier /etc/ssh/sshd_config
Désactiver le login root
Modifier la ligne #PermitRootLogin without-password
en
PermitRootLogin no
Changer le port SSH
Modifier la ligne #Port22
en
Port 22255 (Mettez le port que vous voulez à partir de 1024)
Forcer l'utilisation de la version 2
Ajoutez la ligne suivante
Protocol 2
Autoriser seulement quelques utilisateurs
Ajoutez la ligne suivante : AllowGroups ssh
Ajoutez les utilisateurs autorisés dans le groupe ssh
usermod -G ssh user
Envoyer un mail lorsqu'un utilisateur se connecte
Ajoutez cette ligne sur les .bashrc des utilisateurs concernés
echo "Connexion Shell :" `who` | mail -s "Alert: Root Access from" who root@localhost
#Pour l'ajouter automatiquement pour chaque nouvels utilisateurs, ajoutez la ligne dans /etc/skel/.bashrc
Ajouter une bannière
Au yeux de la loi vous devez mettre une bannière pour prévenir que ce serveur est à vous et ne doit pas être piraté (Oui je sais elle est bien faite)
Pour afficher la bannière avant le login : dans /etc/issue.net
Pour afficher la bannière une fois connecté : dans /etc/motd
############################################################
# ! WARNING ! #
# It's a private server, do not try to hacking it ! #
############################################################
Dans /etc/ssh/sshd_config
Banner /etc/issue.net
Forcer l'utilisation de clef SSH
Veillez à avoir déclaré votre clef publique dans le authorized key avant cela sous peine d'être enfermé dehors
- Déclarer votre clef publique dans /home/$user/.ssh/authorized_keys
ssh-keygen -t ed25519 #Créer les clefs publiques/privées
- Configurez le service SSH : Dans /etc/ssh/sshd_config
#PubkeyAuthentication yes -> PubkeyAuthentication yes
PasswordAuthentication yes -> PasswordAuthentication no
systemctl restart ssh
Si cette solution est extrême ou non pratique (si besoin de se connecter de n'importe ou) une alternative de sécurité est possible avec fail2ban
N'oubliez pas de redémarrer le service !
systemctl restart ssh
//
service ssh restart