zion - sshd_config
.Dd September 25, 1999 .Dt SSHD_CONFIG 5 .Os
Nom
.Nm sshd_config .Nd Fichier de configuration du démon SSH OpenSSH
Résumé
.Bl -tag -width Ds -compact .It Pa /etc/ssh/sshd_config .El
Description
.Nm sshd lit des données de configuration dans le fichier .Pa /etc/ssh/sshd_config (ou du fichier spécifié à l'aide de l'option .Fl f sur la ligne de commande). Ce fichier contient des paires mot-clef/argument, une par ligne. Les lignes qui commencent par le caractère « # » et les lignes vides sont interprétées comme des commentaires. Les mots-clefs possibles et leur signification sont listés ci-après (Note : les mots-clefs ne sont pas sensibles à la casse, mais les arguments le sont) : .Bl -tag -width Ds .It Cm AFSTokenPassing Spécifie si on peut rediriger un jeton AFS (AFS token) vers le serveur. Par défaut « no ». .It Cm AllowGroups Ce mot-clef peut être suivi d'une liste de motifs de nom de groupe, séparés par des espaces. S'il est spécifié, seuls les utilisateurs dont le groupe principal ou les groupes supplémentaires correspondent à un des motifs sont autorisés à se connecter. On peut utiliser les caractères « * » ou « ? » comme jokers. Seuls les noms de groupes sont valides ; les identifiants de groupes (GID) numériques ne sont pas reconnus. Par défaut, la connexion est autorisée pour tous les groupes.
.It Cm AllowTcpForwarding Spécifie si les redirections TCP sont autorisées. Par défaut « yes ». Note : la désactivation des redirections TCP n'améliore pas la sécurité si les utilisateurs ont un accès à un interpréteur de commandes (shell), car ils peuvent toujours installer leurs propres outils de redirections.
.It Cm AllowUsers Ce mot-clef peut être suivi d'une liste de motifs de noms d'utilisateurs, séparés par des espaces. S'il est spécifié, seuls les noms d'utilisateurs correspondant à un des motifs sont autorisés à se connecter. On peut utiliser les caractères « * » ou « ? » comme des jokers. Seuls les noms d'utilisateurs sont valides ; les identifiants d'utilisateurs (UID) ne sont pas reconnus. Par défaut, la connexion est autorisée pour tous les utilisateurs. Si le motif est de la forme UTILISATEUR@MACHINE, alors UTILISATEUR et MACHINE sont vérifiés séparément, en restreignant les connexions à des utilisateurs en particulier sur des machines en particulier.
.It Cm AuthorizedKeysFile Spécifie le fichier contenant les clefs publiques à utiliser pour l'authentification de l'utilisateur. .Cm AuthorizedKeysFile peut contenir des jetons de la forme %T qui sont substitués lors des réglages de la connexion. Les jetons suivant sont définis : % est remplacé par le caractère « % », %h est remplacé par le répertoire de base (home directory) de l'utilisateur qui s'authentifie et %u est remplacé par le nom de cet utilisateur. Après substitution, .Cm AuthorizedKeysFile peut être un chemin absolu ou relatif au répertoire de base de l'utilisateur. Par défaut « .ssh/authorized_keys ». .It Cm Banner Pour certaines juridictions, l'envoi d'un message avant l'authentification est nécessaire pour disposer d'une protection légale. Le contenu du fichier spécifié est envoyé à l'utilisateur distant avant d'autoriser la connexion. Cette option n'est disponible qu'avec la version 2 du protocole. Par défaut, on n'affiche pas de message.
.It Cm ChallengeResponseAuthentication Spécifie si on autorise l'authentification par stimulation-réponse (challenge response). Toutes les formes d'authentification de .Xr login.conf 5 sont gérées. Par défaut « yes ». .It Cm Ciphers Spécifie le cryptage autorisé pour le version 2 du protocole. On peut en spécifier plusieurs en les séparant par des virgules. Par défaut :
.Bd -literal « aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour, aes192-cbc,aes256-cbc » .Ed .It Cm ClientAliveInterval Règle un intervalle de temporisation en secondes après lequel, si aucune donnée n'est reçue de la part du client, .Nm sshd envoie un message dans le canal crypté pour demander une réponse du client. Par défaut 0, ce qui signifie que ces messages ne sont pas envoyés au client. Cette option ne s'applique qu'à la version 2 du protocole. .It Cm ClientAliveCountMax Règle le nombre de messages de maintien de la connexion (voir ci-dessus) à envoyer sans réponse de la part du client pour .Nm sshd . Si ce seuil est atteint tandis que les messages de maintien de la connexion ont été envoyés, .Nm sshd déconnecte le client et termine la session. Il est important de noter que ces messages de maintien de la connexion sont très différents de l'option .Cm KeepAlive (ci-dessous). Les messages de maintien de la connexion sont envoyés par le tunnel crypté, et par conséquent ne sont pas falsifiables. Le maintien de la connexion au niveau TCP activé par l'option .Cm KeepAlive est falsifiable. Le mécanisme de maintien de la connexion est intéressant quand le client ou le serveur ont besoin de savoir si la connexion est inactive.
Par défaut 3. Si l'option .Cm ClientAliveInterval (ci-dessus) est réglée à 15, et .Cm ClientAliveCountMax est réglée à sa valeur par défaut, les clients ssh qui ne répondent pas sont déconnectés après environ 45 secondes. .It Cm Compression Spécifie si on autorise la compression. L'argument doit être « yes » ou « no ». Par défaut « yes ». .It Cm DenyGroups Ce mot-clef est suivi d'une liste de motifs de noms de groupes, séparés par des espaces. Les utilisateurs dont le groupe principal ou les groupes secondaires correspondent à un des motifs ne sont pas autorisés à se connecter. Dans les motifs, on peut utiliser les caractères « * » et « ? » comme des jokers. On ne spécifie que des noms de groupes ; les identifiants numériques de groupes ne sont pas autorisés. Par défaut, tous les groupes sont autorisés à se connecter.
.It Cm DenyUsers Ce mot-clef est suivi d'une liste de motifs de noms d'utilisateurs, séparés par des espaces. Les utilisateurs dont le nom correspond à un des motifs ne sont pas autorisés à se connecter. Dans les motifs, on peut utiliser les caractères « * » et « ? » comme des jokers. On ne spécifie que des noms d'utilisateurs ; les identifiants numériques d'utilisateurs ne sont pas autorisés. Par défaut, tous les utilisateurs sont autorisés à se connecter. Si le motif est de la forme UTILISATEUR@MACHINE, UTILISATEUR et MACHINE sont vérifiés séparément, et la connexion est restreinte à certains utilisateurs de certaines machines. .It Cm GatewayPorts Spécifie si les machines distantes sont autorisées à se connecter à des ports redirigés par le client. Par défaut, .Nm sshd branche les redirections de ports à l'adresse de bouclage (loopback address). Ceci évite que les autres machines distantes ne se connectent aux ports redirigés. On peut utiliser l'option .Cm GatewayPorts pour spécifier que .Nm sshd doit brancher les redirections de ports distantes à l'adresse joker, et par conséquent autoriser les machines distantes à se connecter à des ports redirigés. L'argument doit être « yes » et « no ». Par défaut « no ». .It Cm HostbasedAuthentication Spécifie si on autorise une authentification par rhosts ou /etc/hosts.equiv conjointement avec une authentification de machine cliente réussie par clef publique (authentification par machines). Cette option est similaire à l'option .Cm RhostsRSAAuthentication et ne s'applique qu'à la version 2 du protocole. Par défaut « no ». .It Cm HostKey Spécifie un fichier contenant une clef privée de machine utilisée par SSH. Par défaut .Pa /etc/ssh/ssh_host_key pour la version 1 du protocole, et .Pa /etc/ssh/ssh_host_rsa_key et .Pa /etc/ssh/ssh_host_dsa_key pour la version 2 du protocole. Note : .Nm sshd refuse d'utiliser un fichier accessible au groupe ou aux autres. On peut avoir plusieurs fichiers de clef de machine. Les clefs « rsa1 » sont utilisées pour la version 1 du protocole, et les clefs « dsa » ou « rsa » sont utilisées pour la version 1 du protocole SSH. .It Cm IgnoreRhosts Spécifie que l'on utilise pas les fichiers .Pa .rhosts et .Pa .shosts pour les authentification activées par les options .Cm RhostsAuthentication , .Cm RhostsRSAAuthentication ou .Cm HostbasedAuthentication .
Les fichiers .Pa /etc/hosts.equiv et .Pa /etc/ssh/shosts.equiv sont néanmoins utilisés. Par défaut « yes ». .It Cm IgnoreUserKnownHosts Spécifie si .Nm sshd doit ignorer le fichier .Pa $HOME/.ssh/known_hosts de l'utilisateur lors des authentifications des options .Cm RhostsRSAAuthentication ou .Cm HostbasedAuthentication . Par défaut « no ». .It Cm KeepAlive Spécifie si le système doit envoyer des messages TCP de maintien de la connexion. Si ces messages sont envoyés, la rupture d'une connexion ou le plantage d'une des machines seront correctement signalés. Toutefois, cela signifie que la connexion sera interrompue si la route entre le serveur et le client est temporairement coupée, et quelques personnes trouvent ceci gênant. D'un autre côté, si on n'envoie pas de messages de maintien de la connexion, il est possible que des sessions restent en suspens indéfiniment sur le serveur, en laissant des utilisateurs fantômes, et en consommant les ressources du serveur.
Par défaut « yes » (pour envoyer les messages de maintien de la connexion), et le serveur signale les coupures réseau ou les plantages des machines. Ceci évite les sessions indéfiniment en suspens. Pour désactiver ces messages de maintien de la connexion, il faut régler cette valeur à « no ». .It Cm KerberosAuthentication Spécifie si on autorise l'authentification Kerberos. Elle peut être de la forme d'un ticket Kerberos, ou si l'option .Cm PasswordAuthentication est réglée à « yes », le mot de passe fourni par l'utilisateur est validé par le KDC Kerberos. Pour utiliser cette option, le serveur a besoin d'un servtab Kerberos qui autorise la vérification de l'identité du KDC. Par défaut « no ». .It Cm KerberosOrLocalPasswd Si cette option est réglée, alors si l'authentification par mot de passe par Kerberos échoue, le mot de passe est validé via n'importe quel mécanisme local tel que .Pa /etc/passwd . Par défaut « yes ». .It Cm KerberosTgtPassing Spécifie si on redirige un TGT Kerberos vers le serveur. Par défaut « no », car ceci ne fonctionne que si le KDC Kerberos est vraiment un kaserver AFS. .It Cm KerberosTicketCleanup Spécifie si on détruit automatiquement le fichier cache du ticket de l'utilisateur à la déconnexion. Par défaut « yes ». .It Cm KeyRegenerationInterval Dans la version 1 du protocole, la clef éphémère du serveur est regénérée automatiquement après ce nombre de secondes (si elle a été utilisée). Le but de la regénération est d'éviter le décryptage de sessions capturées en s'introduisant plus tard sur la machine et en volant la clef. La clef n'est jamais stockée nulle part. Si la valeur est 0, la clef n'est jamais regénérée. Par défaut 3600 (secondes). .It Cm ListenAddress Spécifie l'adresse locale d'écoute sur laquelle le démon .Nm sshd doit attendre les connexions. On peut utiliser les formes suivantes :
.Bl -item -offset indent -compact .It .Cm ListenAddress off .Ar host No | Ar IPv4_addr No | Ar IPv6_addr on .It .Cm ListenAddress off .Ar host No | Ar IPv4_addr No : Ar port on .It .Cm ListenAddress off .Oo .Ar host No | Ar IPv6_addr Oc : Ar port on .El
Si .Ar port n'est pas spécifié, le démon .Nm sshd écoute sur l'adresse et toutes les options .Cm Port spécifiées au préalable. Par défaut, on écoute sur toutes les adresses locales. On peut spécifier de multiples options .Cm ListenAddress . En outre, toute option .Cm Port doit précéder cette option pour les adresses sans port spécifié. .It Cm LoginGraceTime Le serveur se déconnecte après ce délai si l'utilisateur ne s'est pas connecté. Si la valeur est 0, il n'y a aucune limite de temps. Par défaut 600 (secondes). .It Cm LogLevel Donne le niveau de verbosité utilisé lors de l'enregistrement des messages du démon .Nm sshd . Les valeurs possibles sont : QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2 and DEBUG3. Par défaut INFO. DEBUG et DEBUG1 sont équivalents. DEBUG2 et DEBUG3 spécifient des niveaux plus élevés de sortie de débogage. L'enregistrement à l'aide d'un niveau DEBUG a tendance à empiéter sur la vie privée des utilisateurs et n'est pas recommandé. .It Cm MACs Spécifie les algorithmes MAC (code d'authentification de message) disponibles. L'algorithme MAC est utilisé dans la version 2 du protocole pour la protection de l'intégrité des données. On peut spécifier plusieurs algorithmes en les séparant par des virgules. Par défaut « hmac-md5,hmac-sha1,hmac-ripemd160,hmac-sha1-96,hmac-md5-96 ». .It Cm MaxStartups Spécifie un nombre maximal de connexions concurrentes au démon .Nm sshd non authentifiées. Les connexions supplémentaires sont purgées si elles ne peuvent pas s'authentifier ou si le délai de grâce défini à l'aide de l'option .Cm LoginGraceTime expire pour une connexion. Par défaut 10.
Par ailleurs, on peut activer une purge hâtive aléatoire en spécifiant un triplet « début:taux:total » (par exemple, « 10:30:60 »). .Nm sshd refuse les tentatives de connexion avec une probabilité de « taux/100 » (30 %) s'il y a « début » (10) connexions non authentifiées en cours. La probabilité augmente linéairement et toutes les tentatives de connexion sont refusées si le nombre de connexions non authentifiées atteint « total » (60). .It Cm PAMAuthenticationViaKbdInt Spécifie si l'authentification PAM par stimulation/réponse est autorisée. Ceci permet d'utiliser la plupart des modules d'authentification PAM par stimulation/réponse, mais peut autoriser l'authentification par mot de passe sans se soucier de l'option .Cm PasswordAuthentication . .It Cm PasswordAuthentication Spécifie si l'authentification par mot de passe est autorisée. Par défaut « yes ». .It Cm PermitEmptyPasswords Si l'authentification par mot de passe est autorisée, spécifie si le serveur autorise les connexions à des comptes dont les mots de passe sont des chaînes de caractères vides. Par défaut « no ». .It Cm PermitRootLogin Spécifie si root peut se connecter par .Xr ssh 1 . L'argument est « yes », « without-password », « forced-commands-only » ou « no ». Par défaut « yes ».
Si cette option est réglée à « without-password », l'authentification par mot de passe est désactivée pour root.
Si cette option est réglée à « forced-commands-only », les connexions de root sont autorisées avec une authentification par clef publique, mais seulement si l'option .Ar command est spécifiée (ce qui peut être utile pour effectuer des sauvegardes à distance même si les connexions de root sont normalement interdites). Toutes les autres méthodes d'authentification sont désactivées pour root.
Si cette option est réglée à « no », root n'est pas autorisé à se connecter. .It Cm PidFile Spécifie l'emplacement du fichier contenant l'identifiant du processus du démon .Nm sshd . Par défaut .Pa /var/run/sshd.pid . .It Cm Port Spécifie le port d'écoute du démon .Nm sshd . Par défaut 22. On peut spécifier plusieurs de ces options. Voir aussi .Cm ListenAddress . .It Cm PrintLastLog Spécifie si .Nm sshd doit afficher la date et l'heure de la dernière connexion de l'utilisateur. Par défaut « yes ». .It Cm PrintMotd Spécifie si .Nm sshd doit afficher le contenu du fichier .Pa /etc/motd quand un utilisateur se connecte en mode interactif. Sur certains systèmes, il est aussi affiché par l'interpréteur de commandes (shell), par le fichier .Pa /etc/profile , ou équivalent. Par défaut « yes ». .It Cm Protocol Spécifie les versions du protocole que le démon .Nm sshd gère. Les valeurs possibles sont « 1 » et « 2 ». Pour spécifier plusieurs versions, il suffit de les séparer par des virgules. Par défaut « 2,1 ». .It Cm PubkeyAuthentication Spécifie si on autorise l'authentification par clef publique. Par défaut « yes ». Note : Cette option ne s'applique qu'à la version 2 du protocole. .It Cm RhostsAuthentication Spécifie si l'authentification par les fichiers rhosts ou /etc/hosts.equiv est suffisante. Normalement, cette méthode ne devrait pas être autorisée parce qu'elle n'est pas sécurisée. Il est préférable d'utiliser .Cm RhostsRSAAuthentication à la place, parce qu'elle effectue une authentification de machine basée sur RSA en plus de l'authentification normale par rhosts ou /etc/hosts.equiv. Par défaut « no ». Cette option ne s'applique qu'à la version 1 du protocole. .It Cm RhostsRSAAuthentication Spécifie si on autorise une authentification par rhosts ou /etc/hosts.equiv couplée avec une authentification de machine RSA réussie. Par défaut « no ». Cette option ne s'applique qu'à la version 1 du protocole. .It Cm RSAAuthentication Spécifie si on autorise la pure authentification RSA. Par défaut « yes ». Cette option ne s'applique qu'à la version 1 du protocole. .It Cm ServerKeyBits Définit le nombre de bits de la clef éphémère pour la version 1 du protocole. La valeur minimale est 512 et la valeur par défaut est 768. .It Cm StrictModes Spécifie si .Nm sshd doit vérifier les modes et le propriétaire des fichiers de l'utilisateur et du répertoire de base (home directory) de l'utilisateur avant d'accepter une connexion. C'est normalement souhaitable, parce que quelquefois, les novices laissent accidentellement leur répertoire ou leurs fichiers en accès complet à tout les monde. Par défaut « yes ». .It Cm Subsystem Configure un sous-système externe (par exemple un démon de transfert de fichiers). Les arguments doivent être un nom de sous-système et une commande à exécuter lors d'une requête à ce sous-système. La commande .Xr sftp-server 8 implémente le sous-système de transfert de fichiers « sftp ». Par défaut, aucun sous-système n'est défini. Note : Cette option ne s'applique qu'à la version 2 du protocole. .It Cm SyslogFacility Donne le code de facilité utilisé lors de l'enregistrement des messages du démon .Nm sshd . Les valeurs possibles sont : DAEMON, USER, AUTH, LOCAL0, LOCAL1, LOCAL2, LOCAL3, LOCAL4, LOCAL5, LOCAL6, LOCAL7. Par défaut AUTH. .It Cm UseLogin Spécifie si on utilise .Xr login 1 pour les connexions à des sessions interactives. Par défaut « no ». Note 1 : On n'utilise jamais .Xr login 1 pour l'exécution de commandes à distance. Note 2 : Si cette option est activée, on désactive .Cm X11Forwarding parce que .Xr login 1 ne sait pas traiter les cookies .Xr xauth 1 . Si on spécifie l'option .Cm UsePrivilegeSeparation , elle sera désactivée après l'authentification. .It Cm UsePrivilegeSeparation Spécifie si .Nm sshd sépare les privilèges en créant un processus fils non privilégié pour prendre en charge le trafic réseau entrant. Après une authentification réussie, un autre processus est créé avec les privilèges de l'utilisateur authentifié. Le but de la séparation de privilèges est d'éviter l'escalade de privilèges si le processus non privilégié est corrompu. Par défaut « yes ». .It Cm VerifyReverseMapping Spécifie si .Nm sshd essaie de vérifier que le nom de la machine distante et le nom obtenu par résolution de l'adresse IP distante correspondent à la même adresse IP. Par défaut « no ». .It Cm X11DisplayOffset Spécifie le premier numéro d'affichage disponible pour les redirections X11 de .Nm sshd . Ceci évite à .Nm sshd d'interférer avec les vrais serveurs X11. Par défaut 10. .It Cm X11Forwarding Spécifie si on autorise les redirections X11. Par défaut « no ». Note : La désactivation des redirections X11 n'améliore en aucun cas la sécurité, puisque les utilisateurs peuvent installer leurs propres redirecteurs. La redirection X11 est automatiquement désactivée si l'option .Cm UseLogin est activée. .It Cm X11UseLocalhost Spécifie si .Nm sshd branche le serveur X11 de redirection sur l'adresse de bouclage (loopback address) ou sur l'adresse joker (wildcard address). Par défaut .Nm sshd branche le serveur de redirection sur l'adresse de bouclage et règle la partie du nom de machine de la variable d'environnement .Ev DISPLAY à « localhost ». Ceci évite à des machines distantes de se connecter à de faux affichages. Néanmoins, quelques vieux clients X11 peuvent ne pas fonctionner avec cette configuration. On peut régler .Cm X11UseLocalhost à « no » pour spécifier que le serveur de redirection est branché sur l'adresse joker. L'argument doit être « yes » ou « no ». Par défaut « yes ». .It Cm XAuthLocation Spécifie l'emplacement du programme .Xr xauth 1 . Par défaut .Pa /usr/X11R6/bin/xauth . .El
Formats de durées
On peut exprimer les arguments de la ligne de commande et les options du fichier de configuration de .Nm sshd qui spécifient des durées à l'aide d'une séquence de la forme : off .Ar time Oo Ar qualifier Oc , on où .Ar time est une valeure entière positive et .Ar qualifier est l'un des suivants :
.Bl -tag -width Ds -compact -offset indent .It Cm <rien> secondes .It Cm s | Cm S secondes .It Cm m | Cm M minutes .It Cm h | Cm H heures .It Cm d | Cm D jours .It Cm w | Cm W semaines .El
Tous les membres de la séquence sont additionnés pour obtenir la valeur totale de la durée.
Exemples de formats de durées :
.Bl -tag -width Ds -compact -offset indent .It 600 600 secondes (10 minutes) .It 10m 10 minutes .It 1h30m 1 heure 30 minutes (90 minutes) .El
Fichiers
.Bl -tag -width Ds .It Pa /etc/ssh/sshd_config Contient les données de configuration de .Nm sshd . Ce fichier ne doit être accessible en écriture qu'à root, mais il est recommandé (bien que pas nécessaire) qu'il soit accessible en lecture à tous. .El
Auteurs
OpenSSH est dérivé de la version originale et libre ssh 1.2.12 par Tatu Ylonen. Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos, Theo de Raadt et Dug Song ont corrigé de nombreux bugs, ré-ajouté des nouvelles fonctionnalité et créé OpenSSH. Markus Friedl a contribué au support des versions 1.5 et 2.0 du protocole SSH. Niels Provos et Markus Friedl ont contribué au support de la séparation de privilèges.
Traduction
Laurent GAUTROT <l dot gautrot at free dot fr> 17/12/2002
Voir aussi
.Xr sshd 8
Poster un commentaire