Voici une base de paramètres pour améliorer la sécurité de SSH basée sur la version 5.5p1-6+squeeze1 (Debian). Certaines options peuvent déjà être par défaut selon la version du serveur SSH installée. La configuration est bien sûr à tester et à adapter à vos besoins (RTFM et STFW sont vos amis). Liste complète fournie par "man sshd_config" et "man ssh_config"
Côté serveur SSH : vim /etc/ssh/sshd_config
#N’utiliser que le SSH v2, la version 1 contient des failles. Protocol 2
#Durée autorisée pour rentrer le login et le mot de passe. #Définir une valeur faible, une valeur trop haute pourrait faciliter une attaque DOS. LoginGraceTime 60
#Changer le port défaut par exemple 1022. Utilisez -p 1022 pour vous connecter ensuite. Port 1022
#Spécifier l’adresse de votre interface ListenAddress XXX.XXX.XXX.XXX
#Déconnecter au bout de 5 min d’inactivité ClientAliveInterval 300 ClientAliveCountMax 0
#Les requêtes tcpkeepalive ne sont pas chiffrées et peuvent être spoofées TCPKeepAlive no
#Restreindre l’accès à des utilisateurs et/ou groupes (voir aussi DenyUsers et DenyGroups) AllowUsers user1, user2 AllowGroups ssh-users
#Refuser root PermitRootLogin no
#Désactiver les mots de passé vides (par défaut à no) PermitEmptyPasswords no
#Afficher un message d’avertissement à la connexion Banner /etc/ssh/ssh_banner
#Vérification des droits et du propriétaire des fichiers de l’utilisateur ssh_keys… #Par défaut StrictModes yes StrictModes yes
#Utiliser l’authentification pas clé publique et désactiver l’authentification par mot de passe #Nécessite bien entendu, la mise en place de l'authentification par clé publique au préalable PubkeyAuthentication yes PasswordAuthentication no
# Désactiver le mode de compatibilité RSH IgnoreRhosts yes HostbasedAuthentication no
#Configurer /etc/hosts.allow pour n’autoriser votre réseau ou les IP nécessaires sshd:192.168.1. #Configurer /etc/hosts.deny pour refuser tout le reste sshd:ALL
#Nombre de tentative d’authentification par connexion MaxAuthTries 3
#Désactiver le forwarding AllowTcpForwarding no X11Forwarding no
#Journaux SyslogFacility AUTHPRIV LogLevel VERBOSE
#Réduire les informations de version renvoyées #Par défaut #OpenSSH 5.5p1 Debian 6+squeeze1 (protocol 2.0) #Après : #OpenSSH 5.5p1 (protocol 2.0)
DebianBanner no
Côté client : vim /etc/ssh/ssh_config
#Vérifie l’ip et le nom du server pour éviter du spoofing DNS. HashKnownHosts yes
#Renégocier la clé tous les 1Gb de données échangées. RekeyLimit 1G