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

Настройка PAM для доступа к Kerberized кластеру

У меня такая ситуация: у меня есть сервер под управлением RHEL 7.4. Основное назначение этого сервера - разместить экземпляр RStudio Server Pro, который позволяет пользователям подключаться к керберизованному кластеру Hadoop в другом царство для использования его возможностей распределенных вычислений.

Это отлично работает, если пользователь открывает сеанс R в RStudio IDE и запускает system("kinit -kt /path/to/keytab username"). С помощью этого вызова пользователь может получить и кэшировать билет Kerberos.

Теперь мне интересно, как я могу освободить пользователей от выполнения этой команды и предложить скрытое решение.

В настоящее время пользователи проходят аутентификацию с помощью PAM. Мне известен сервисный модуль Kerberos для PAM pam_krb5 но я действительно не понимаю, как мне настроить существующий rstudio профиль:

#%PAM-1.0
auth    [user_unknown=ignore success=ok ignore=ignore default=bad]      pam_securetty.so
auth    substack        system-auth
auth    include postlogin
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

Я прочитал RStudio документация на Kerberos, но он не говорит мне, как я могу аутентифицировать пользователей с помощью клавиш на сервере в другой области Kerberos (межсферная аутентификация?).

Как должен выглядеть мой профиль RStudio PAM для этого?

Изменить: добавление system-auth

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth    required        pam_env.so
auth    required        pam_faillock.so preauth audit silent deny=5 unlock_time=900
auth    sufficient      pam_vas3.so create_homedir get_nonvas_pass try_first_pass
auth    requisite       pam_vas3.so echo_return
auth    sufficient      pam_unix.so likeauth nullok use_first_pass
auth    [default=die]   pam_faillock.so authfail audit deny=5 unlock_time=900
auth    sufficient      pam_faillock.so authsucc audit deny=5 unlock_time=900
auth    [success=1 default=bad] pam_unix.so
auth    sufficient      pam_krb5.so use_first_pass
#auth   sufficient      pam_winbind.so use_first_pass
auth    required        pam_deny.so

account sufficient      pam_vas3.so
account requisite       pam_vas3.so echo_return
account required        pam_unix.so broken_shadow
account required        pam_faillock.so
account sufficient      pam_succeed_if.so uid < 100 quiet
account sufficient      pam_succeed_if.so user ingroup UNIX_ADMINISTRATORS
account sufficient      pam_succeed_if.so user ingroup UNIX_OPERATORS
account sufficient      pam_succeed_if.so user ingroup TSM_ADMINISTRATORS
account sufficient      pam_succeed_if.so user ingroup smadming
account required        pam_succeed_if.so user ingroup SERVER_STAFF
account optional        /lib64/security/pam_krb5.so
account required        pam_permit.so

password        requisite       pam_pwquality.so try_first_pass retry=3 retry=3 minlen=8 lcredit=-1 ucredit=-1 ocredit=-1 dcredit=-1 difok=4
password        sufficient      pam_vas3.so
password        requisite       pam_vas3.so echo_return
password        sufficient      pam_unix.so nullok use_authtok md5 shadow remember=15
password        sufficient      pam_krb5.so use_authtok
#password       sufficient      pam_winbind.so use_authtok
password        required        pam_deny.so

session required        pam_mkhomedir.so skel=/etc/skel/ umask=0077
session required        pam_limits.so
session required        pam_vas3.so create_homedir
session requisite       pam_vas3.so echo_return
session required        pam_unix.so
session optional        pam_krb5.so