From 8b420160cecb00ae2f19d4d74c9e2d8765d76dbd Mon Sep 17 00:00:00 2001 From: mtrossevin Date: Wed, 9 Sep 2020 15:41:13 +0200 Subject: [PATCH] =?UTF-8?q?D=C3=A9crit=20ce=20qui=20se=20passe=20quand=20A?= =?UTF-8?q?llowUsers=20et=20AllowGroups=20sont=20tous=20les=20deux=20d?= =?UTF-8?q?=C3=A9finis=20dans=20sshd=5Fconfig?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- HowtoOpenSSH.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) 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.