Домен/Использование Kerberos

Материал из ALT Linux Wiki
ALT-review logo.png
Alt Club.png
Alt linux team.png

Навигация

Главная: ALT-review

Все статьи

Предложения и пожелания

Ресурсы

FAQ


На этой странице приводится пример использование билетов Kerberos в различных программах для подключения к сервисам. При правильной настройке пользователю выдаётся билет (TGT) при логине в систему.

kinit / klist / kdestroy

Отдельное управление билетами для отладки осуществляется следующими командами:

Получить билет:

$ kinit [USER][@REALM]

В настроенной системе достаточно просто kinit, а указание полной формы типа kinit user@EXAMPLE.COM позволяет получить тикет в системе сразу после установки epmi /usr/bin/kinit.

Удалить полученные билеты из кэша:

$ kdestroy

Просмотреть полученные билеты:

$ klist

Для отладки получения билета удобно использовать

$ export KRB5_TRACE=/dev/stdout

https://web.mit.edu/kerberos/krb5-devel/doc/admin/env_variables.html

Если машина находится в другой сети, то потребуется ручное указание REALM и соответствия его домену в /etc/krb5.conf:

default_realm = EXAMPLE.COM
...
[realms]
 EXAMPLE.COM = {
  default_domain = example.com
 }

Браузеры

Chromium

$ chromium --auth-server-whitelist="*.example.com,*.etersoft.ru"

Для того, чтобы установить настройки для всех пользователей машины, создайте /etc/chromium/policies/recommended/kerberos.json со следующим содержимым (например):

{
"AuthServerAllowlist": "*.etersoft.ru,*.eterhost.ru",
}

Должен быть ещё способ задания настроек по умолчанию на уровне пользователя.

Brave

Способ аналогичен chromium, но файл в другом каталоге:

 /etc/brave/policies/recommended/kerberos.json

curl

$ kinit
$ curl --negotiate -u : "http://example.com"

(если не работает, проверяйте $ epmqf curl — он может оказаться от CryptoPro, где он старый и не поддерживает GSSAPI)

wget

Судя по всему, поддержка GSSAPI так и не включена апстримом.

Firefox

Открыть about:config в firefox и добавить через запятую нужные узлы:

network.negotiate-auth.trusted-uris    .etersoft.ru,.eterhost.ru

Либо добавить в prefs.js в профиле браузера (в каталоге ~/.mozilla/firefox) при закрытом браузере:

user_pref("network.negotiate-auth.trusted-uris", ".etersoft.ru,.eterhost.ru");

Способ общесистемных настроек пока не найден.

IE

Добавить в доверенные сайты

https://ping.force.com/Support/PingFederate/Integrations/How-to-configure-supported-browsers-for-Kerberos-NTLM

  1. Свойства браузера -> Безопасность -> Надёжные сайты
  2. Нажать на кнопку "Сайты" и добавить адрес нужного сайта
  3. Нажать на кнопку "Другое" и найти раздел " Проверка подлинности пользователя" в окошке "Параметры"
  4. Выбрать пункт "Автоматический вход в сеть с текущим именем пользователя и паролем"

Файловые системы

Монтирование CIFS-ресурса

# kinit
# smbclient -k -L //SERVER
# mount -o sec=krb5 //SERVER/share /mnt/share

Не ясным остаётся вопрос с

$ kinit
$ sudo mount ...

(тикет перестаёт быть доступен после повышения привилегий)

Прочее

ssh

Просто подключаемся к ssh-серверу, настроив его (см. ниже настройку sshd)

Чтобы подключаться к пользователю с другим логином (ssh otheruser@host) нужно на удалённой машине создать файл ~/.k5login и в него вписать разрешённые адреса, например:

guest@ETERSOFT.RU
pv@ETERSOFT.RU

Так как содержимое файла .k5login перекрывает правила по умолчанию, нужно явно вписывать туда всех пользователей, которым разрешено подключение.

Подключение к LDAP

Windows

Список полученных билетов:

> klist

Очистить:

> klist purge

Серверная сторона

nginx

Apache

mod_auth_kerb

Не используйте mod_auth_kerb, он давно устарел и удалён, см. 39063. Перейдите к mod_auth_gssapi.


  1. epmi apache2-mod_auth_kerb
  2. a2enmod auth_krb5 && serv httpd2 reload

положил тикет с SPN в /etc/krb5.time.office.keytab

добавил такие настройки:

      AuthType Kerberos
      AuthName "Please enter your login and password for ETERSOFT.RU"
      KrbMethodNegotiate on
      KrbMethodK5Passwd on
      KrbServiceName HTTP/time.office.etersoft.ru@ETERSOFT.RU
      KrbAuthRealms ETERSOFT.RU
      Krb5Keytab /etc/krb5.time.office.keytab
      #KrbLocalUserMapping On

mod_auth_gssapi

  1. epmi apache2-mod_auth_gssapi
  2. a2enmod auth_gssapi && serv httpd2 reload
 AuthType GSSAPI
 AuthName "GSSAPI Login"
 GssapiBasicAuth On
 GssapiCredStore keytab:/etc/apache2/http.keytab
 require valid-user
 RequestHeader set REMOTE-USER %{REMOTE_USER}s

См. также полную статью Apache2/AD-auth.

https://github.com/haiwen/seafdav/issues/8

sshd

Для разрешения подключаться, используя билет Kerberos, нужно раскомментировать в /etc/openssh/sshd_config:

GSSAPIAuthentication yes

nodejs

RunaWFE