samedi 7 avril 2012

Renforcer la sécurité de SSH


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

#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


Lire la suite »