diff --git a/HowtoOpenSSH.md b/HowtoOpenSSH.md index c10cd2ab..8965b52a 100644 --- a/HowtoOpenSSH.md +++ b/HowtoOpenSSH.md @@ -900,3 +900,21 @@ Voici plusieurs méthodes pour protéger son serveur SSH (qui peuvent se cumuler - utiliser du Port Knocking pour camoufler son port SSH - ne pas autoriser les connexions SSH avec un mot de passe (`PasswordAuthentication no` dans *sshd_config*) - configurer [Fail2Ban](HowtoFail2Ban) pour bannir les adresses IP qui se trompent de mot de passe + +### Que ce passe t'il quand sshd_config contient à la fois AllowUsers et AllowGroups ? + +C'est authorisé par sshd donc `sshd -t` ne sortira pas d'erreur ! Au niveau de la connexion, la page man de sshd_config(5) dit: + +> The allow/deny directives are processed in the following order: DenyUsers, AllowUsers, DenyGroups, and finally AllowGroups. + +Cela signifie en réalité que lors d'une tentative de connexion SSH, la logique suivante est suivi: + +> Dans le cas où l'une de ces options n'est pas défini, on saute la ligne correspondante. + +- si l'utilisateur tentant de ce connecté **est listé** dans `DenyUsers` alors il ne peut pas se connecter, sinon continuer, +- si l'utilisateur tentant de ce connecté **n'est pas listé** dans `AllowUsers` alors il ne peut pas se connecter, sinon continuer, +- si l'utilisateur **appartient à un groupe listé** dans `DenyGroups` alors il ne peut pas se connecter, sinon continuer, +- si l'utilisateur **n'appartient pas à un groupe listé** dans `AllowGroups` alors il ne peut pas se connecter, sinon continuer, +- l'utilisateur peut se connecté. + +Donc pour résumé : Si `AllowUsers` et `AllowGroups` sont définis dans sshd_config alors il faut que l'utilisateur soit **à la fois** dans `AllowUsers` **et** `AllowGroups` pour pouvoir se connecter par SSH.