я добавил
auth requisite pam_deny.so
в качестве первой строки каждого файла в /etc/pam.d/
(включая sshd
), но соединения SSH по-прежнему устанавливаются без проблем. Он находится в экземпляре Google Cloud Ubuntu по умолчанию, поэтому в нем настроена таинственная аутентификация. Как мне применить мою команду deny?
/etc/ssh/sshd_config
есть линия UsePAM yes
/etc/ssh/sshd_config
отключены другие методы аутентификации:
HostbasedAuthentication no
IgnoreUserKnownHosts yes
IgnoreRhosts yes
PasswordAuthentication no
ChallengeResponseAuthentication no
KerberosAuthentication no
GSSAPIAuthentication no
UseLogin no
/etc/nsswitch.conf
не имеет обычаев passwd
записи:
passwd: compat
group: compat
shadow: compat
gshadow: files
hosts: files dns
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
перезапущен sshd
служба
google
во имяjournalctl -f
при входе по SSHgoogle_oslogin_control
показывает свой статус как deactivated
Я вхожу в систему, используя SSH-ключ для всего проекта, настроенный в метаданных проекта Google Cloud. Экземпляр использует cloud-init
для настройки ключей SSH и т. д., но я не могу найти никаких намеков относительно того, что может быть настроено для переопределения механизма аутентификации PAM.
Мы будем очень благодарны за любой намек на то, что может переопределить механизм аутентификации PAM!
N.B. Дело в том, чтобы в конечном итоге включить модуль PAM для двухфакторной аутентификации.
Команда deny игнорируется по двум отдельным причинам, которые соответствуют двум системам, которые обходят аутентификацию PAM.
Игнорируется при запуске sudo
, потому что пользователь настроен с NOPASSWD
флаг. Этот флаг установлен в файле в /etc/sudoers.d
это линия
%google-sudoers ALL=(ALL:ALL) NOPASSWD:ALL
и мой пользователь принадлежит к google-sudoers
группа. Как руководство говорит:
По умолчанию sudo требует, чтобы пользователь аутентифицировал себя перед запуском команды. Это поведение можно изменить с помощью тега NOPASSWD.
Итак, используя sudo
полностью обходит аутентификацию (включая PAM).
Он игнорируется при входе в систему по SSH с использованием открытого ключа, поскольку аутентификация с открытым ключом SSH обходит PAM. Руководство, доступное через man sshd_config
на Ubuntu 18.04 говорит
Если установлено значение «Да», это включит аутентификацию PAM с использованием ChallengeResponseAuthentication и PasswordAuthentication в дополнение к обработке учетной записи PAM и модуля сеанса для всех типов аутентификации.
Таким образом, аутентификация PAM работает только с двумя типами аутентификации: ответ на запрос и пароль. PAM не используется для аутентификации с открытым ключом.
Вы можете принудительно применить отказ, добавив AuthenticationMethods publickey,keyboard-interactive
к /etc/sshd_config
. Это требует от пользователя аутентификации с использованием двух методов: сначала с помощью открытого ключа (при этом PAM не используется), а затем путем ответа на запрос (при этом будет использоваться PAM).