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

Локальные учетные данные, используемые, когда доступен сервер radius sshd pam_radius

У меня есть настройка pam_radius, и она работает (centos6, pam_radius: 1.4.0-2.el6), я могу аутентифицироваться через сервер radius с помощью ssh. Что я пытаюсь сделать, так это то, что когда сервер RADIUS недоступен, я должен вернуться к локальной учетной записи. Эти два пароля различны (локальный и AD), так как AD имеет более строгую политику изменения пароля. Я пробовал несколько вещей: /etc/pam.d/sshd

авторизация достаточная pam_radius_auth.so отладка
auth включает пароль-auth

Теперь это работает, пока сервер radius (как определено в "/etc/pam_radius.conf") недоступен (используется неверный IP-адрес в pam_radius.conf).
Проблема начинается, когда сервер RADIUS действительно доступен, я могу войти в систему, используя как радиус, так и локальные учетные данные для аутентификации.
У меня два вопроса.

1. Я неправильно понимаю сбой модуля (PAM), сбой также может быть неудачной аутентификацией, например, неправильным паролем, или когда пользователь не является действительным или присутствует на сервере AD. Что подразумевается под отказом модуля?
2. Есть ли способ настроить это так, как я бы хотел? т.е. вернуться к локальной аутентификации только при сбое подключения к радиус-серверу?

Или ... может быть, нормальный метод - не иметь локальных паролей и использовать резервную учетную запись, которая не является учетной записью AD, чтобы в случае сбоя можно было использовать эту учетную запись. тогда возникает вопрос, как предотвратить использование этой учетной записи людьми, когда доступен радиус.

  1. Я неправильно понимаю сбой модуля (PAM), сбой также может быть неудачной аутентификацией, например, неправильным паролем, или когда пользователь не является действительным или присутствует на сервере AD. Что подразумевается под отказом модуля?

Отказ в данном контексте означает, что "модуль возвратил любой статус, кроме success". Список ошибок можно найти в man pam.conf, или в /usr/include/security/_pam_types.h.

Самый частый случай отказа - это невозможность аутентификации.

  1. Есть ли способ настроить это так, как я бы хотел? т.е. вернуться к локальной аутентификации только при сбое подключения к радиус-серверу?

Если вы хотите поведение, характерное для определенного типа ошибки, есть два требования:

  1. Вы должны использовать более продвинутый синтаксис PAM.
  2. Вы должны знать точный код ошибки, для которой требуется особая обработка.

Проблема №1 сложна, но преодолима. Проблема №2 требует дополнительных исследований. Либо модуль должен задокументировать точные ошибки, которые он вернет, и при каких обстоятельствах, либо вам придется выяснить это самостоятельно. Последнее обычно включает в себя копание в исходном коде.

Изучение точного поведения этого модуля PAM выходит за рамки непосредственной задачи, и, кроме того, у меня сейчас немного времени. :)