Назад | Перейти на главную страницу

Linux PAM pam_succeed_if.so

Я указал группу безопасности AD в PAM, чтобы ограничить доступ пользователей домена к системе. Я также ограничил сеансы для пользователей AD этой группой. Это препятствует тому, чтобы вошедший в систему пользователь мог выполнить «su -» пользователю AD за пределами группы.

Сопоставление uid Winbind настроено так, чтобы пользователи AD имели UID> = 10000000.

Они работают должным образом с конфигурацией PAM ниже.

/etc/pam.d/system-auth

auth        required      pam_env.so
auth        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so user ingroup AD_group debug
auth        requisite     pam_succeed_if.so uid >= 500 quiet
auth        sufficient    pam_krb5.so use_first_pass
auth        sufficient    pam_winbind.so use_first_pass
auth        required      pam_deny.so

account     required      pam_access.so
account     required      pam_unix.so broken_shadow
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 500 quiet
account     [default=bad success=ok user_unknown=ignore] pam_krb5.so
account     [default=bad success=ok user_unknown=ignore] pam_winbind.so
account     required      pam_permit.so

password    requisite     pam_cracklib.so try_first_pass retry=3
password    sufficient    pam_unix.so md5 shadow nullok try_first_pass use_authtok
password    sufficient    pam_krb5.so use_authtok
password    sufficient    pam_winbind.so use_authtok
password    required      pam_deny.so

session     [default=1 success=ignore] pam_succeed_if.so quiet uid >= 10000000
session     requisite     pam_succeed_if.so user ingroup AD_group debug
session     optional      pam_mkhomedir.so umask=0077 skel=/etc/skel
session     optional      pam_keyinit.so revoke
session     required      pam_limits.so
session     optional      pam_mkhomedir.so
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session     required      pam_unix.so
session     optional      pam_krb5.so

Теперь я хотел бы добавить правило, чтобы определенный пользователь AD за пределами AD_group мог войти в систему. Я попытался добавить следующую строку после строки 3 в файле:

auth        requisite     pam_succeed_if.so user=AD_user_1 debug

Но это привело к тому, что всем пользователям AD разрешили войти в систему.

Любое понимание будет оценено.

Все пользователи, успешно прошедшие аутентификацию, представляют интерес, поскольку это означает, что теперь также игнорируется проверка членства в группе. (согласно моему комментарию выше, не похоже, что вы его пропускаете) Это больше похоже на sufficient чем requisite мне.

Вы дважды проверили, чтобы убедиться, что вы не тестируете пользователей, которые прошли бы sufficient pam_unix.so состояние? Проверьте свою теневую таблицу и убедитесь, что кто-то не добавил локальные пароли для пользователей в вашем тестовом пуле, когда вы не искали.

Также возможно, что auth модуль пропускается (на ум приходит аутентификация по ключу SSH), и в этом случае ваши проверки доступа находятся в auth вместо того account создаст проблему. Независимо от того, является ли это причиной, я рекомендую переместить их в account так что у вас не будет дыр в вашей политике доступа.

auth = все, что связано с аутентификацией

account = все, что связано с авторизацией (проверки доступа)