CentOS 7 SSH и 2FA (ESET Secure Authentication)

Я застрял в том, чтобы заставить работать двухфакторную аутентификацию в CentOS 7; особенно аутентификация через SSH и OTP.

Я был бы очень признателен, если бы кто-нибудь мог мне помочь с этим. :)

Edit: Как я понял из лога ниже, модуль pam запрашивает аутентификацию у RADIUS-сервера, сервер отвечает кодом 11, так что pam-модуль запрашивает у пользователя OTP, но вместо этого модуль просто сообщает «ошибка аутентификации». Значит, проблема должна быть в клиенте, не так ли?

Вот журнал попытки входа через SSH с учетной записью "ws-admin@test.local ":

sshd[3652]: pam_radius_auth: Got user name ws-admin@test.local
sshd[3652]: pam_radius_auth: ignore last_pass, force_prompt set
sshd[3652]: pam_radius_auth: Sending RADIUS request code 1
sshd[3652]: pam_radius_auth: DEBUG: getservbyname(radius, udp) returned 0x7fa56490e1c0.
sshd[3652]: pam_radius_auth: Got RADIUS response code 11
sshd[3652]: pam_radius_auth: authentication failed
sshd[3652]: pam_sepermit(sshd:auth): Parsing config file:     /etc/security/sepermit.conf
sshd[3652]: pam_sepermit(sshd:auth): Enforcing mode, access will be allowed on match
sshd[3652]: pam_sepermit(sshd:auth): sepermit_match returned: -1
sshd[3652]: pam_sss(sshd:auth): authentication success; logname= uid=0 euid=0 tty=ssh ruser= rhost=10.0.0.31 user=ws-admin@test.local
sshd[3652]: Failed password for ws-admin@test.local from 10.0.0.31 port 57962 ssh2
sshd[3652]: Connection closed by 10.0.0.31 [preauth]

Ниже следует информация о конфигурации и настройке

Тестовая среда предоставляется инфраструктурой моей компании; в основном мы используем Windows-клиенты и примерно такую ​​же долю Windows- и Linux -Серверы.

Win-Server: Windows Server 2016 x64

  • Active Directory: Test.local
  • ESET Secure Authentication (сервер RADIUS) d / sshd

    #%PAM-1.0
    auth       required     pam_radius_auth.so    debug
    auth       required pam_sepermit.so      debug
    auth       substack     password-auth      debug
    auth       include      postlogin     debug
    # Used with polkit to reauthorize users in remote sessions
    -auth      optional     pam_reauthorize.so prepare
    account    required     pam_nologin.so
    account    include      password-auth
    password   include      password-auth
    # pam_selinux.so close should be the first session rule
    session    required     pam_selinux.so close
    session    required     pam_loginuid.so
    # pam_selinux.so open should only be followed by sessions to be executed in the user context
    session    required     pam_selinux.so open env_params
    session    required     pam_namespace.so
    session    optional     pam_keyinit.so force revoke
    session    include      password-auth
    session    include      postlogin
    # Used with polkit to reauthorize users in remote sessions
    -session   optional     pam_reauthorize.so prepare
    

    / etc / raddb / server

    # server[:port] shared_secret      timeout (s)
    10.0.0.1        test345            5
    
2
задан 6 January 2017 в 10:13
1 ответ

Мне удалось решить эту проблему самостоятельно.

По-видимому, единственное, что нужно изменить, это порядок pam-модулей в / etc / pam. d / sshd .

Строка auth достаточная pam_radius_auth.so должна быть ниже pam_sepermit.so и выше password-auth .

] На самом деле порядок модулей в /etc/pam.d/login тоже был неправильным.

Там строка auth достаточная pam_radius_auth.so должна быть ниже pam_securetty .so и выше system-auth .

Вот как теперь выглядят файлы:

/etc/pam.d/login

#%PAM-1.0
auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so
auth       sufficient   pam_radius_auth.so
auth       substack     system-auth
auth       include      postlogin
# auth       sufficient   pam_radius_auth.so
account    required     pam_nologin.so
account    include      system-auth
password   include      system-auth
# pam_selinux.so close should be the first session rule
session    required     pam_selinux.so close
session    required     pam_loginuid.so
session    optional     pam_console.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session    required     pam_selinux.so open
session    required     pam_namespace.so
session    optional     pam_keyinit.so force revoke
session    include      system-auth
session    include      postlogin
-session   optional     pam_ck_connector.so

/etc/pam.d/ sshd

#%PAM-1.0
auth       required pam_sepermit.so
auth       sufficient   pam_radius_auth.so
auth       substack     password-auth
auth       include      postlogin
# Used with polkit to reauthorize users in remote sessions
-auth      optional     pam_reauthorize.so prepare
account    required     pam_nologin.so
account    include      password-auth
password   include      password-auth
# pam_selinux.so close should be the first session rule
session    required     pam_selinux.so close
session    required     pam_loginuid.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session    required     pam_selinux.so open env_params
session    required     pam_namespace.so
session    optional     pam_keyinit.so force revoke
session    include      password-auth
session    include      postlogin
# Used with polkit to reauthorize users in remote sessions
-session   optional     pam_reauthorize.so prepare
0
ответ дан 3 December 2019 в 14:15

Теги

Похожие вопросы