Фон / поведение: если вы используете ssh для бокса через и GSSAPI / Kerberos успешно, и у вас есть локальный пользователь в / etc / passwd, вы входите в систему в соответствии с конфигурацией PAM ниже. Все хорошо.
Но если у вас нет локального пользователя в / etc / passwd но вы можете получить билет службы host / XXXXXX (GSSAPI работает), sshd не сможет войти в систему и никогда не получит подсказки для SecurID (наш радиус pam указывает на SecurID). Я это понимаю. Поскольку сервер аутентифицировал пользователя и pam_unix знает пользователь не находится в / etc / passwd, нет необходимости задействовать какие-либо другие методы аутентификации.
Однако у меня вопрос: почему, если я сначала запускаю kdestroy (намеренно сбой GSSAPI) (и все еще не существует в / etc / passwd), я внезапно получаю приглашение Securid (т.е. задействован PAM)?
Запуск sshd с отладкой показывает: отложенное интерактивное взаимодействие с клавиатурой для недопустимого пользователя "user". Во-первых, почему бы просто не потерпеть неудачу? Во-вторых, почему откладывать? pam_radius является «обязательным», а не «обязательным».
Я бы ожидал, что тоже просто потерплю неудачу, потому что, хотя я не прошел аутентификацию, я никогда не смогу пройти мимо pam_unix.
Файлы:
/ и т.д. / SSH / sshd_config
....
ChallengeResponseAuthentication yes
GSSAPIAuthentication yes
HostbasedAuthentication no
KerberosAuthentication no
PasswordAuthentication no
PubkeyAuthentication yes
RhostsRSAAuthentication no
RSAAuthentication yes
UsePAM yes
....
/etc/pam.d/sshd
auth requisite pam_radius_auth.so conf=pam_radius_auth.conf debug retry=3
auth required pam_nologin.so
auth required pam_krb5.so.1
account sufficient pam_radius_auth.so conf=pam_radius_auth.conf
account required pam_stack.so service=system-auth
password required pam_stack.so service=system-auth
session required pam_stack.so service=system-auth
session required pam_limits.so
session optional pam_console.so
/etc/pam.d/system-auth
auth required pam_env.so
auth sufficient pam_krb5.so.1
auth sufficient pam_unix.so
auth required pam_deny.so
account required pam_unix.so
password required pam_cracklib.so retry=3
password sufficient pam_unix.so use_authtok md5 shadow
password required pam_deny.so
session required pam_limits.so
session required pam_unix.so
Аутентификация GSSAPI не обрабатывается PAM. Модуль PAM для kerberos используется для аутентификации пользователя по паролю, используя протокол kerberos для получения действительного билета.
Есть 3 результата аутентификации GSSAPI.
Если результат равен 1, запрос отклоняется полностью, поскольку токен был отправлен, но не прошел. SSHD не пытается использовать другие методы аутентификации.
Если результат 3, sshd
в следующий раз попытается использовать другие методы аутентификации, включая PAM auth
раздел.
Я не знаком с pam_radius
но я предполагаю, что он запрашивает токен аутентификации независимо от того, существует ли пользователь по соображениям безопасности. Сбой сразу указывает пользователю / злоумышленнику, что такой пользователь не существуют, поэтому в процессе исключения вы можете перечислить пользователей.
Что касается опции «Requisite», в настройке стека данные «required» и «Requisite» имеют одинаковый эффект. pam_krb
в любом случае не может запросить билет без действительного пользователя, поэтому он немедленно завершится неудачей.
Для приведенного конфига pam_unix
используется не для аутентификации, а для авторизации, это шаг, который происходит после аутентификации. Чтобы уточнить; аутентификация имеет дело с доказательством того, что вы являетесь тем, кем вы себя называете, в то время как авторизация связана с тем, что у вас есть правильные разрешения для выполнения того, что вы хотите делать (что в данном случае является логином).