Tutoriel | Sécurisez son accès SSH
Article publiée le 6 Décembre 2015
Cela m’arrive très souvent d’être horrifié en voyant des serveurs « publiques » dont l’accès SSH n’est pas du tout sécurisé.
Pourtant quelques actions très simple permettent d’éviter tout désagréments!
Ci-dessous un petit tuto très simple expliquant comment sécuriser l’accès SSH d’un serveur:
1) Changer le port SSH
Tout le monde sait que le port SSH par défaut est le port 22, même les hackers… Le fait de juste changer le numéro du port SSH peut mettre à mal un très grand nom de script automatique de hacking…
Pour changer le port il suffit d’éditer le fichier /etc/ssh/sshd_config et de changer le numéro de port (sans oublier de redémarrer le service SSH):
2) Privilégiez impérativement l’authentification par clé
- Procédez à la génération des clés: ssh-keygen
- Éditez le fichier /root/.ssh/authorized_keys (ou /home/votreuserquiseconnecteenssh/.ssh/authorized_keys) et ajoutez y les clés publiques des users ayant le droit de se connecter en root sur votre machine (clé publique contenue dans le fichier ayant l’extension .pub ou qui peut-être générer depuis l’outil puttygen sous Windows)
Cette manipulation est à faire pour chaque user qui aura les accès SSH sur votre serveur (si le nom du user est toto votre arborescence ssh sera /home/toto/.ssh)
- Paramétrez SSH pour qu’il n’accepte que des authentifications par clé SSH, pour cela éditez le fichier /etc/ssh/ssd_config et modifiez les paramètres comme indiqués ci-dessous (dé-commentez les lignes si elles le sont) :
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keysPermitEmptyPasswords no
ChallengeResponseAuthentication no
PasswordAuthentication no
KerberosAuthentication no
KerberosGetAFSToken no
KerberosOrLocalPasswd no
KerberosTicketCleanup no
GSSAPI options
GSSAPIAuthentication no
- Je vous conseille également d’interdire la connexion avec le user root (autorisation de vous connecter uniquement avec les autres users):
PermitRootLogin no
- Redémarrez le service SSH: /etc/init.d/sshd restart
3) Alertes Mails
Et si l’on veut être encore plus parano on peut configurer un alerting mail à chaque connexion d’un user:
- Editez votre fichier .bashrc : vi /root/.bashrc ou /home/<user>/.bashrc
- Ajoutez la ligne suivante dans votre fichier: echo ‘Connexion détecté ‘ `date` `who` | mail -s `hostname` Connexion du USer `who | cut -d« (« -f2 | cut -d« ) » -f1` [email protected]
3) Protégez votre serveur contre les DOS (déni de service) avec Fail2ban
Et enfin, pour finir en beauté, je vous propose de sécuriser votre serveur avec fail2ban qui protégera votre machine contre les attaques DOS (déni de service) ou brutforce
Tuto disponible via ce lien:
http://journaldunadminlinux.fr/tutoriel-protegez-votre-serveur-avec-fail2ban
Je pense qu’après ça votre accès SSH sera beaucoup mieux protégé! 🙂