
This chef cookbook fournit des configurations sécurisées pour ssh-client et ssh-server.
[][1]
[
][2]
[
][3]
[
][4]
Ce cookbook fournit des configurations sécurisées pour ssh-client et ssh-server. Ce cookbook ne fournit pas de fonctionnalités de gestion des utilisateurs et/ou des clés ssh, veuillez utiliser d'autres cookbooks pour cela.
Vous trouverez ci-dessous la documentation des attributs et leurs valeurs par défaut.
Remarque : Certaines valeurs par défaut des attributs de ce cookbook sont définies dans les recettes. Vous devez utiliser un niveau de précédence d'attributs plus élevé pour remplacer ces attributs. Ces attributs sont signalés par #override attribute# dans la liste ci-dessous. Exemple pour remplacer un tel attribut :
override['ssh-hardening']['ssh']['server']['listen_to'] = node['ipaddress']
['ssh-hardening']['network']['ipv6']['enable'] - false. Définir sur true si IPv6 est nécessaire['ssh-hardening']['ssh']['ports'] - 22. Ports sur lesquels ssh-server doit écouter et auxquels ssh-client doit se connecter['ssh-hardening']['ssh'][{'client', 'server'}]['kex'] - nil pour calculer le meilleur échange de clés (KEX) en fonction de la version du serveur, sinon spécifier une chaîne de valeurs Kex['ssh-hardening']['ssh'][{'client', 'server'}]['mac'] - nil pour calculer les meilleurs codes d'authentification de message (MAC) en fonction de la version du serveur, sinon spécifier une chaîne de valeurs Mac['ssh-hardening']['ssh'][{'client', 'server'}]['cipher'] - nil pour calculer les meilleurs chiffrements en fonction de la version du serveur, sinon spécifier une chaîne de valeurs Cipher['ssh-hardening']['ssh'][{'client', 'server'}]['cbc_required'] - false. Définir sur true si CBC est requis pour les chiffrements. Cela n'est généralement nécessaire que si d'anciens mécanismes M2M doivent communiquer avec SSH, qui n'ont aucun des chiffrements sécurisés configurés activés. CBC est une alternative faible. Tout ce qui est plus faible doit être évité et n'est donc pas disponible.['ssh-hardening']['ssh'][{'client', 'server'}]['weak_hmac'] - false. Définir sur true si des mécanismes HMAC plus faibles sont requis. Cela n'est généralement nécessaire que si d'anciens mécanismes M2M doivent communiquer avec SSH, qui n'ont aucun des HMAC sécurisés configurés activés.['ssh-hardening']['ssh'][{'client', 'server'}]['weak_kex'] - false. Définir sur true si des mécanismes d'échange de clés (KEX) plus faibles sont requis. Cela n'est généralement nécessaire que si d'anciens mécanismes M2M doivent communiquer avec SSH, qui n'ont aucun des KEX sécurisés configurés activés.['ssh-hardening']['ssh']['client']['remote_hosts'] - [] - un ou plusieurs hôtes, auxquels ssh-client peut se connecter.['ssh-hardening']['ssh']['client']['password_authentication'] - false. Définir sur true si l'authentification par mot de passe doit être activée.['ssh-hardening']['ssh']['client']['roaming'] - false. Définir sur true si le roaming expérimental du client doit être activé. Il est connu pour causer des problèmes potentiels de divulgation de secrets à des serveurs malveillants et est désactivé par défaut.['ssh-hardening']['ssh']['client']['extras'] - {}. Ajouter des options de configuration supplémentaires, voir ci-dessous pour plus de détails['ssh-hardening']['ssh']['server']['host_key_files'] - nil pour calculer la meilleure configuration de clé d'hôte en fonction de la version du serveur, sinon spécifier un tableau de chemins de fichiers (par exemple /etc/ssh/ssh_host_rsa_key)['ssh-hardening']['ssh']['server']['dh_min_prime_size'] - 2048 - Longueur minimale acceptable du nombre premier en bits dans /etc/ssh/moduli. Les nombres premiers inférieurs à ce nombre seront supprimés. (Voir ceci pour plus d'informations et le contexte)['ssh-hardening']['ssh']['server']['dh_build_primes'] - false - Si vos propres nombres premiers doivent être générés. Cette régénération ne se produit qu'une seule fois et prend beaucoup de temps (~ 1,5 à 2 h sur du matériel moderne pour une longueur de 4096).['ssh-hardening']['ssh']['server']['dh_build_primes_size'] - 4096 - Longueur du nombre premier à générer. Cette option n'est valide que si dh_build_primes est activé.['ssh-hardening']['ssh']['server']['listen_to'] #override attribute# - une ou plusieurs adresses IP, sur lesquelles ssh-server doit écouter. Par défaut, il écoute sur toutes les interfaces. Il doit être configuré pour des raisons de sécurité !['ssh-hardening']['ssh']['server']['allow_root_with_key'] - false pour désactiver complètement la connexion root. Définir sur true pour autoriser root à se connecter via un mécanisme basé sur les clés['ssh-hardening']['ssh']['server']['allow_tcp_forwarding'] - false. Définir sur true pour autoriser le transfert TCP['ssh-hardening']['ssh']['server']['allow_agent_forwarding'] - false. Définir sur true pour autoriser le transfert d'agent['ssh-hardening']['ssh']['server']['allow_x11_forwarding'] - false. Définir sur true pour autoriser le transfert X11['ssh-hardening']['ssh']['server']['permit_tunnel'] - false pour désactiver le transfert de périphérique tun. Définir sur true pour autoriser le transfert de périphérique tun. Autres valeurs acceptées : 'yes', 'no', 'point-to-point', 'ethernet'. Voir man sshd_config pour les comportements exacts. Remarque : vous devrez également activer allow_tcp_forwarding.['ssh-hardening']['ssh']['server']['use_pam'] - true. Définir sur false pour désactiver l'authentification pam de sshd['ssh-hardening']['ssh']['server']['challenge_response_authentication'] - false. Définir sur true pour activer l'authentification par réponse au défi.['ssh-hardening']['ssh']['server']['deny_users'] - [] pour configurer DenyUsers, si spécifié, la connexion est interdite pour les noms d'utilisateur qui correspondent à l'un des modèles.['ssh-hardening']['ssh']['server']['allow_users'] - [] pour configurer AllowUsers, si spécifié, la connexion n'est autorisée que pour les noms d'utilisateur qui correspondent à l'un des modèles.['ssh-hardening']['ssh']['server']['deny_groups'] - [] pour configurer DenyGroups, si spécifié, la connexion est interdite pour les utilisateurs dont le groupe principal ou la liste des groupes supplémentaires correspond à l'un des modèles.['ssh-hardening']['ssh']['server']['allow_groups'] - [] pour configurer AllowGroups, si spécifié, la connexion n'est autorisée que pour les utilisateurs dont le groupe principal ou la liste des groupes supplémentaires correspond à l'un des modèles.['ssh-hardening']['ssh']['server']['print_motd'] - false. Définir sur true pour activer l'affichage du MOTD['ssh-hardening']['ssh']['server']['print_last_log'] - false. Définir sur true pour activer l'affichage des informations de dernière connexion['ssh-hardening']['ssh']['server']['banner'] - nil. Définir un chemin comme '/etc/issue.net' pour activer la bannière['ssh-hardening']['ssh']['server']['os_banner'] - false pour désactiver les informations de version pendant la négociation du protocole (famille debian uniquement). Définir sur true pour l'activer