Я настраивал конфигурацию PAM для sshd
, и на данный момент /etc/pam.d/sshd
выглядит так :
# Custom PAM config for sshd
# Disallow login if /etc/nologin exists, inherited from old sshd config
account required pam_nologin.so
# SELinux rule. Inherited from old sshd
session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so close
# Check username and password with custom binary
auth [success=ok default=bad] pam_exec.so expose_authtok /usr/bin/ssh-hash-checker
# Set the loginuid process attribute. Inherited from old sshd
session required pam_loginuid.so
# Create a new session keyring. Inherited from old sshd
session optional pam_keyinit.so force revoke
# Standard Un*x session setup and teardown. Inherited from old sshd
@include common-session
# MOTD. Inherited from old sshd
session optional pam_motd.so motd=/run/motd.dynamic
session optional pam_motd.so noupdate
# Mail. Inherited from old sshd
session optional pam_mail.so standard noenv
# Set up user limits from /etc/security/limits.conf. Inherited from old sshd
session required pam_limits.so
# PAM Env. Inherited from old sshd
session required pam_env.so # [1]
# In Debian 4.0 (etch), locale-related environment variables were moved to
# /etc/default/locale, so read that as well. Inherited from old sshd
session required pam_env.so user_readenv=1 envfile=/etc/default/locale
# Another SELinux Rule Inherited from old sshd
session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so open
На данный момент я протестировал специальный двоичный файл, который проверяет пользователя и пароль, и, похоже, он работает нормально, поскольку пароль отклоняется без каких-либо дополнительных проблем, если данный логин неверен, как я могу судить из systemctl status
отчет.
Однако при действительной попытке входа в систему я получаю следующий журнал systemctl status
:
фатальный: доступ запрещен для пользователя <отредактировано> конфигурацией учетной записи PAM [preauth]
Погуглив проблему, я обнаружил, что это часто происходит из-за неправильно настроенного access.conf, поэтому это текущее содержимое /etc/security/access.conf
:
# Many lines of comments at the top...
# Allow root to login from wherever
+:root:ALL
# Allow <redacted> to login to SSH through PAM
+:<redacted>:ALL
# Deny access to everyone else from anywhere else
-:ALL:ALL
Я не недавно менял пароли пользователей и никогда не менял вручную ни / etc / shadow
, ни / etc / passwd
.
Есть идеи, что это могло быть, или какие дальнейшие шаги по отладке я мог бы предпринять?
Нашел ответ после долгих поисков. По какой-то причине я еще не понимаю, модуль pam_nologin.so
отказывает в доступе, несмотря на то, что файл / etc / nologin
фактически не существует. Я поищу дополнительные ответы о том, как заставить этот механизм работать должным образом, и опубликую ссылку на второй вопрос, если и когда найду окончательный ответ.
Изменить: Новый вопрос