Домен/Использование Kerberos: различия между версиями

Материал из ALT Linux Wiki
Строка 51: Строка 51:


Для того, чтобы установить настройки для всех пользователей машины, создайте /etc/chromium/policies/recommended/kerberos.json со следующим содержимым (например):
Для того, чтобы установить настройки для всех пользователей машины, создайте /etc/chromium/policies/recommended/kerberos.json со следующим содержимым (например):
<pre>
{
{
"AuthServerWhitelist": "*.etersoft.ru,*.eterhost.ru",
"AuthServerWhitelist": "*.etersoft.ru,*.eterhost.ru",
<!-- "AuthNegotiateDelegateWhitelist": "*.etersoft.ru,*.eterhost.ru" -->
"AuthNegotiateDelegateWhitelist": "*.etersoft.ru,*.eterhost.ru"
}
}
</pre>


Должен быть ещё способ задания настроек по умолчанию на уровне пользователя.
Должен быть ещё способ задания настроек по умолчанию на уровне пользователя.
* https://dev.chromium.org/administrators/linux-quick-start
* https://dev.chromium.org/administrators/policy-list-3#AuthServerWhitelist


== curl ==
== curl ==
Строка 72: Строка 73:
== Firefox ==
== Firefox ==


Добавить в about:config в firefox
Открыть about:config в firefox и добавить через запятую нужные узлы:
network.negotiate-auth.delegation-uris .etersoft.ru
<!-- network.negotiate-auth.delegation-uris .etersoft.ru,.eterhost.ru -->
  network.negotiate-auth.trusted-uris    .etersoft.ru
  network.negotiate-auth.trusted-uris    .etersoft.ru,.eterhost.ru
 
Либо добавить в prefs.js при закрытом браузере:
user_pref("network.negotiate-auth.trusted-uris", ".etersoft.ru,.eterhost.ru");


(неизвестно, как указать несколько)
Способ общесистемных настроек пока не найден.


* https://insinuator.net/2016/02/how-to-test-kerberos-authenticated-web-applications/
* https://insinuator.net/2016/02/how-to-test-kerberos-authenticated-web-applications/
* https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/5/html/Deployment_Guide/sso-config-firefox.html
* https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/5/html/Deployment_Guide/sso-config-firefox.html
* https://forum.altlinux.org/index.php?topic=15876.msg165572#msg165572
* https://forum.altlinux.org/index.php?topic=15876.msg165572#msg165572
* https://people.redhat.com/mikeb/negotiate/


== IE ==
== IE ==

Версия от 16:15, 20 октября 2019

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 со следующим содержимым (например):

{
"AuthServerWhitelist": "*.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.trusted-uris    .etersoft.ru,.eterhost.ru

Либо добавить в prefs.js при закрытом браузере:

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

  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