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

Материал из ALT Linux Wiki
Перейти к: навигация, поиск

Журнал ALT-review

Использование Kerberos
ALT-review logo.png
Аутентификация в сервисах с использованием билетов Kerberos

Раздел: практика   Тег: kerberos,домен,приложения

Alt Club.png
Alt linux team.png

Навигация

Главная: ALT-review

Все статьи

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

Ресурсы

FAQ


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

kinit / klist / kdestroy[править]

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

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

$ kinit [USER][@DOMAIN]

В настроенной системе достаточно просто 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 = ETERSOFT.RU
...
[realms]
 ETERSOFT.RU = {
  default_domain = etersoft.ru
 }

Браузеры[править]

Chromium[править]

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

Для того, чтобы настройки применялись общесистемно:

/etc/chromium/default
@@ -5,6 +5,8 @@
 # Default:
 CHROMIUM_FLAGS="--enable-seccomp-sandbox"
 
+CHROMIUM_FLAGS="$CHROMIUM_FLAGS  --auth-server-whitelist=*.etersoft.ru,*.eterhost.ru"
+

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

curl[править]

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

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

wget[править]

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

Firefox[править]

Добавить в about:config в firefox

network.negotiate-auth.delegation-uris .etersoft.ru
network.negotiate-auth.trusted-uris    .etersoft.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[править]

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

положил тикет с SPN

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

      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

другой вариант:

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

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

sshd[править]

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

GSSAPIAuthentication yes

nodejs[править]

RunaWFE[править]