Kinit команда что делает
Перейти к содержимому

Kinit команда что делает

  • автор:

kinit — Получают и кэш билет выдачи билетов Kerberos

kinit используется, чтобы получить и кэшировать билеты выдачи билетов Kerberos. Этот инструмент подобен в функциональности kinit инструменту, которые обычно находятся в других реализациях Kerberos, таких как ШОВ и Ссылочные реализации MIT.

Пользователь должен быть зарегистрирован как принципал с Центром распределения ключей (KDC) до выполнения kinit.

РЕЗЮМЕ

ОПИСАНИЕ

По умолчанию на платформе Windows файл кэша называют \krb5cc_ будет сгенерирован. число идентификатора пользователя пользователя, зарегистрированного в систему.

получается из java.lang.System свойство user.home . получается из java.lang.System свойство user.name . Если нуль, файл кэша хранился бы в текущем каталоге, от которого работает программа. имя пользователя входа в систему операционной системы. Это имя пользователя могло отличаться чем основное имя пользователя. Например на Windows NT, это могло быть c:\winnt\profiles\duke\krb5cc_duke , в котором duke и c:\winnt\profiles\duke .

По умолчанию имя keytab получается от конфигурационного файла Kerberos. Если имя keytab не является specifed в конфигурационном файле Kerberos, имя берется, чтобы быть \krb5.keytab

Если Вы не определяете пароль, используя password опция на командной строке, kinit запросит Вас пароль.

Отметьте: password обеспечивается только для тестирования. Не помещайте свой пароль в сценарий или обеспечивайте Ваш пароль на командной строке. Выполнение так поставит под угрозу Ваш пароль.

Для получения дополнительной информации см. страницы справочника для kinit .

КОМАНДЫ

Использование: kinit [-fp] [-c cache_name>] [-k] [-t keytab_filename>] [principal>] [password>] [-help]

Опция команды Описание
-A Не включайте адреса.
-f Выпустите forwardable билет.
-p Выпустите proxiable билет.
-c cache_name> Имя кэша (то есть, FILE:d:\temp\mykrb5cc ).
-k Используйте keytab
-t keytab_filename> Имя keytab (то есть, d:\winnt\profiles\duke\krb5.keytab ).
principal> Основное имя (то есть, duke@java.sun.com ).
password> Пароль Kerberos принципала.
(DO НЕ ОПРЕДЕЛЯЕТ НА КОМАНДНОЙ СТРОКЕ ИЛИ В СЦЕНАРИИ.)
-help Инструкции дисплеев.

ПРИМЕРЫ

Запрос учетных данных, допустимых для аутентификации от текущего хоста клиента, для служб по умолчанию, хранение кэша учетных данных в расположении по умолчанию ( c:\winnt\profiles\duke\krb5cc_duke ):

kinit duke@JAVA.SUN.COM

Запрос proxiable учетные данные для различного принципала и хранение этих учетных данных в указанном кэше файла:

kinit -p -c FILE:c:\winnt\profiles\duke\credentials\krb5cc_cafebeef cafebeef@JAVA.SUN.COM

Запрос proxiable и forwardable учетные данные для различного принципала и хранение этих учетных данных в указанном кэше файла:

kinit -f -p -c FILE:c:\winnt\profiles\duke\credentials\krb5cc_cafebeef cafebeef@JAVA.SUN.COM

Отображение меню помощи для kinit:

kinit -help

ПРЕДУПРЕЖДЕНИЕ БЕЗОПАСНОСТИ

password флаг для тестирования только. Не определяйте свой пароль на командной строке. Выполнение так является дырой в системе безопасности, так как атакующий мог обнаружить Ваш пароль, перечисляя все рабочие процессы в системе, например.

Kerberos

Kerberos это система сетевой аутентифиации, основанная на принципах доверия третьей стороне. Другие две стороны — это пользователь и сервис, на котором он хочет авторизоваться. Не все сервисы и приложения могут использовать Kerberos, но те, которые могут, приближают сетевое окружение на один шаг к технологии единого входа (Single Sign On — SSO).

Этот раздел раскрывает установку и настройку сервера Kerberos, а также некоторые примеры клиентских настроек.

Обзор

Если вы новичок в Kerberos, есть несколько терминов, которые хорошо понять до установки сервера Kerberos. Большинство терминов связаны с вещами, которые могут быть вам знакомы по другим окружениям:

Учетная запись (Principal): любые пользователи, компьютеры или сервисы, предоставляемые серверами, должны быть определены как учетные записи Kerberos .

Требования (Instances): используются для сервисных и специальных административных учетных записей.

Области (Realms): уникальная область управления, обеспечиваемая установкой Kerberos. Представляйте ее себе как домен или группу ваших компьютеров и пользователей, ей принадлежащих. По умолчанию Ubuntu использует имя DNS домена в верхнем регистре (EXAMPLE.COM) в качестве имени области.

Центр распространения ключей (KDC): состоит из трех частей: базы данных всех учетных записей, сервера аутентификации и сервера предоставления билетов. Для каждой области должен быть хотя бы один KDC.

Билет для получения билета (TGT): изданный сервером аутентификации, TGT зашифровывается на пароле пользователя, который известен только пользователю и KDC.

Сервер распространения билетов (TGS): выпускает сервисные билеты для клиентов по запросу.

Билеты (Tickets): подтверждение идентичности двух учетных записей. Одна учетная запись — пользователь, а другая — сервис, запрашиваемый этим пользователем. Билеты устанавливают секретный ключ, используемый для защищенного соединения во время авторизованной сессии.

Файлы ключей (Keytab Files): файлы, извлеченные из базы учетных записей KDC и содержащие ключ шифрования для сервиса или компьютера.

Чтобы сложить все вместе: Область содержит как минимум один KDC, лучше больше для обеспечения безотказности, которые содержат базу данных учетных записей. Когда пользователь под учетной записью заходит на рабочую станцию, которая настроена на Kerberos аутентификацию, KDC выпускает билет для получения билетов (TGT). Если пользователь предоставляет совпадающие параметры, он считается аутентифицированным и может запрашивать билеты для сервисов, поддерживающих Kerberos, на сервере распространения билетов (TGS). Сервисные билеты позволяют пользователю аутентифицироваться на сервисах без ввода имени и пароля.

Сервер Kerberos

Установка

Протокол Kerberos разработан в Масачусетском технологическом университете ( MIT ), поэтому полное название протокола MIT Kerberos. (прим. переводчика).

Для данного обсуждения мы создадим домен MIT Kerberos со следующими параметрами (изменяйте их для соответствия вашим требованиям):

Область: EXAMPLE.COM
Первичный KDC: kdc01.example.com (192.168.0.1)
Вторичный KDC: kdc02.example.com (192.168.0.2)
Учетная запись пользователя: steve
Учетная запись администратора: steve/admin

Настоятельно рекомендуется, чтобы ваши авторизованные в сети пользователи имели uid в отдельном диапазоне от ваших локальных пользователей (скажем, начиная с 5000).

Перед установкой сервера Kerberos требуется правильно настроить DNS сервер для вашего домена. Поскольку область Kerberos по соглашению совпадает с именем домена, этот раздел использует домен EXAMPLE.COM, настроенный как Primary Master по документации DNS.

Кроме того, Kerberos — протокол, зависимый от времени. Поэтому если локальное время системы на клиентской машине и на сервере отличается более чем на 5 минут (по умолчанию), рабочая станция не будет аутентифицирована. Для решения проблемы все узлы сети должны синхронизировать свое время по одному серверу NTP. Детали настройки NTP смотрите в разделе Синхронизация времени по NTP.

Первый шаг по созданию области Kerberos — это установка пакетов krb5-kdc и krb5-admin-server. Введите в терминале:

sudo apt-get install krb5-kdc krb5-admin-server

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

По умолчанию область создается из доменного имени KDC.

Далее создаем новую область с помощью утилиты kdb5_newrealm:

sudo krb5_newrealm
Настройка

Вопросы, задаваемые в процессе установки, используются для настройки файла /etc/krb5.conf. Если вам требуется скорректировать настройки KDC, просто измените файл и перезапустите сервис krb5-kdc. Если вам требуется перенастроить Kerberos сначала, возможно для изменения имени области, вы можете это сделать набрав следующее:

sudo dpkg-reconfigure krb5-kdc

Как только KDC запущен правильно, требуется административный пользователь (учетная запись администратора). Рекомендуется использовать имя пользователя, отличное от вашего повседневного пользователя. Для использования утилиты kadmin.local, наберите терминале:

sudo kadmin.local Authenticating as principal root/admin@EXAMPLE.COM with password. kadmin.local: addprinc steve/admin WARNING: no policy specified for steve/admin@EXAMPLE.COM; defaulting to no policy Enter password for principal "steve/admin@EXAMPLE.COM": Re-enter password for principal "steve/admin@EXAMPLE.COM": Principal "steve/admin@EXAMPLE.COM" created. kadmin.local: quit

В примере выше steve — учетная запись, /admin — требование, а @EXAMPLE.COM — определяет область. «Ежедневная» учетная запись, она же пользовательская — steve@EXAMPLE.COM и она будет иметь только обычные права пользователя.

Замените EXAMPLE.COM и steve на ваши имена области и администратора.

Далее, новому пользователю-администратору требуется предоставить соответствующие права доступа ACL . Права настраиваются в файле /etc/krb5kdc/kadm5.acl:

steve/admin@EXAMPLE.COM *

Эта запись предоставляет для steve/admin возможность выполнять любые операции над любыми учетными записями в этой области. Вы можете настроить учетные записи более ограниченными правами, которые удобны если вам требуется учетная запись младшего администратора, которую можно использовать на клиентах Kerberos. Пожалуйста, посмотрите страницу руководства (man) по kadm5.acl.

Теперь перезапустите krb5-admin-server чтобы применились новые ACL :

sudo /etc/init.d/krb5-admin-server restart

Новая пользовательская учетная запись может быть протестирована утилитой kinit:

kinit steve/admin steve/admin@EXAMPLE.COM's Password:

После ввода пароля используйте утилиту klist чтобы увидеть информацию о билете для получения билетов (TGT):

klist Credentials cache: FILE:/tmp/krb5cc_1000 Principal: steve/admin@EXAMPLE.COM Issued Expires Principal Jul 13 17:53:34 Jul 14 03:53:34 krbtgt/EXAMPLE.COM@EXAMPLE.COM

где имя файла кэша krb5cc_1000 составлено из префикса krb5cc_ и id пользователя (uid), который в нашем случае 1000. У вас может возникнуть необходимость добавить запись в /etc/hosts для KDC чтобы клиент мог его найти. Например:

192.168.0.1 kdc01.example.com kdc01

Замените 192.168.0.1 на IP адрес вашего KDC. Обычно такое требуется, когда ваша Kerberos область охватывает различные сети, разделенные роутерами.

Лучший способ позволить клиентам автоматически определить KDC для области это использование SRV записей DNS . Добавьте следующие записи в /etc/named/db.example.com:

_kerberos._udp.EXAMPLE.COM. IN SRV 1 0 88 kdc01.example.com. _kerberos._tcp.EXAMPLE.COM. IN SRV 1 0 88 kdc01.example.com. _kerberos._udp.EXAMPLE.COM. IN SRV 10 0 88 kdc02.example.com. _kerberos._tcp.EXAMPLE.COM. IN SRV 10 0 88 kdc02.example.com. _kerberos-adm._tcp.EXAMPLE.COM. IN SRV 1 0 749 kdc01.example.com. _kpasswd._udp.EXAMPLE.COM. IN SRV 1 0 464 kdc01.example.com.

Замените EXAMPLE.COM, kdc01 и kdc02 на ваши имя домена, первичный и вторичный KDC

Смотрите Служба доменных имен (DNS) для детальных инструкций по настройке DNS .

Ваша новая область Kerberos теперь готова аутентифицировать клиентов.

Вторичный KDC

Когда у вас есть один центр распространения ключей (KDC) в сети, хорошей практикой является создание вторичного KDC на случай, если первичный будет недоступен. Также, если у вас Kerberos клиенты расположены в различных сетях (возможно разделенные роутерами, использующими NAT), разумно будет поместить вторичные KDC в каждую такую сеть.

Сначала установим пакеты и на вопросы о Kerberos и административном серверах введем имя первичного KDC:

sudo apt-get install krb5-kdc krb5-admin-server

Как только пакеты установлены, создавайте учетную запись вторичного KDC. Из терминала набираем:

kadmin -q "addprinc -randkey host/kdc02.example.com"

После, выполняя любые команды kadmin, у вас будет запрашиваться пароль вашей учетной записи username/admin@EXAMPLE.COM

Извлекаем файл ключей:

kadmin -q "ktadd -norandkey -k keytab.kdc02 host/kdc02.example.com"

Теперь в текущем каталоге появился keytab.kdc02, переместите его в /etc/krb5.keytab:

sudo mv keytab.kdc02 /etc/krb5.keytab

Если путь до файла keytab.kdc02 иной, замените соответственно.

Также вы можете вывести список учетных записей в файл keytab, который может быть полезен при решении проблем, используя утилиту klist:

sudo klist -k /etc/krb5.keytab

Опция -k показывает, что это keytab файл.

Затем на каждом KDC должен быть файл kpropd.acl, который содержит список всех KDC в области. В нашем примере на первичном и вторичном KDC создайте /etc/krb5kdc/kpropd.acl:

host/kdc01.example.com@EXAMPLE.COM host/kdc02.example.com@EXAMPLE.COM

Создаем пустую базу данных на вторичном KDC:

sudo kdb5_util -s create

Теперь запускаем сервис kpropd, который слушает соединения от утилиты kprop. kprop используется для передачи файлов выгрузки данных:

sudo kpropd -S

Из терминала на первичном KDC создаем файл выгрузки для базы данных учетных записей:

sudo kdb5_util dump /var/lib/krb5kdc/dump

Извлекаем keytab файл первичного KDC и копируем его в /etc/krb5.keytab:

kadmin -q "ktadd -k keytab.kdc01 host/kdc01.example.com" sudo mv keytab.kdc01 /etc/krb5.keytab

Убедитесь, что это host для kdc01.example.com, перед извлечением Keytab.
Используя утилиту kprop, загрузите базу данных на вторичный KDC:

sudo kprop -r EXAMPLE.COM -f /var/lib/krb5kdc/dump kdc02.example.com

Должно вернуться сообщение SUCCEEDED, если распространение сработало. Если вернулось сообщение об ошибке, проверьте /var/log/syslog на вторичном KDC для дополнительной информации.

Вы можете также создать задачу cron для периодического обновления базы данных на вторичных KDC. Например, следующий код будет выгружать базу данных каждый час (обратите внимание, что длинная строка разделена чтобы соответствовать формату документа):

# m h dom mon dow command 0 * * * * /usr/sbin/kdb5_util dump /var/lib/krb5kdc/dump && /usr/sbin/kprop -r EXAMPLE.COM -f /var/lib/krb5kdc/dump kdc02.example.com

Вернемся на вторичный KDC, создадим скрытый (stash) файл для хранения Kerberos master key (главного ключа Kerberos):

sudo kdb5_util stash

Под конец запустим сервис krb5-kdc на вторичном KDC:

sudo /etc/init.d/krb5-kdc start

Вторичный KDC теперь должен иметь возможность выдавать билеты для своей области. Вы можете это проверить, остановив сервис krb5-kdc на первичном KDC и затем запросив билет с помощью kinit. Если все пойдет хорошо, вы получите билет со вторичного KDC. В противном случае проверяйте /var/log/syslog и /var/log/auth.log на вторичном KDC.

Линукс клиент Kerberos

Эта часть освещает настройку клиента Kerberos на системе Линукс. Это позволит получить доступ к любому керберезированному сервису как только пользователь удачно авторизуется в системе.

Установка

Чтобы аутентифицироваться в области Kerberos, требуются пакеты krb5-user и libpam-krb5, а также некоторые другие, которые не являются необходимыми, но делают жизнь проще. Для установки пакетов наберите следующую команду в терминале:

sudo apt-get install krb5-user libpam-krb5 libpam-ccreds auth-client-config

Пакет auth-client-config позволяет просто настроить PAM для аутентификации множества сервисов, а libpam-ccreds будет кэшировать параметры аутентификации, позволяя вам подключаться когда центр распространения ключей (KDC) недоступен. Этот пакет также полезен для переносных компьютеров, которые могут авторизовываться с использованием Kerberos в корпоративной сети, но также должны быть доступны и вне сети.

Настройка

Для настройки клиента наберите в терминале:

sudo dpkg-reconfigure krb5-config

Вас попросят ввести имя области Kerberos. Также, если у вас нет DNS сервера с настроенными записями Kerberos SRV, меню запросит у вас сетевое имя центра распространения ключей (KDC) и административного сервера области.

dpkg-reconfigure добавит записи в файл /etc/krb5.conf для вашей области. У вас будут записи, похожие на следующие:

[libdefaults] default_realm = EXAMPLE.COM . [realms] EXAMPLE.COM =

Если вы установите uid каждого вашего авторизованного в сети пользователя начиная с 5000, как предложено в Установке, вы затем сможете указать pam аутентифицировать с помощью Kerberos только пользователей с uid > 5000:

# Kerberos should only be applied to ldap/kerberos users, not local ones. for i in common-auth common-session common-account common-password; do sudo sed -i -r \ -e 's/pam_krb5.so minimum_uid=1000/pam_krb5.so minimum_uid=5000/' \ /etc/pam.d/$i done

Это поможет избежать запросов (несуществующих) паролей Kerberos для локально аутентифицированных пользователей при смене у них пароля с помощью passwd.

Вы можете проверить настройки запросив билет с помощью утилиты kinit. Например:

kinit steve@EXAMPLE.COM Password for steve@EXAMPLE.COM:

Когда билет будет предоставлен, детали можно увидеть с помощью klist:

klist Ticket cache: FILE:/tmp/krb5cc_1000 Default principal: steve@EXAMPLE.COM Valid starting Expires Service principal 07/24/08 05:18:56 07/24/08 15:18:56 krbtgt/EXAMPLE.COM@EXAMPLE.COM renew until 07/25/08 05:18:57 Kerberos 4 ticket cache: /tmp/tkt1000 klist: You have no tickets cached

Затем используйте auth-client-config для настройки модуля libpam-krb5 для запроса билета в процессе входа:

sudo auth-client-config -a -p kerberos_example

Теперь вы будете получать билет в случае удачной авторизации на входе.

Ссылки

Для дополнительной информации по версии MIT Kerberos, смотрите сайт MIT Kerberos.
Ubuntu Wiki Kerberos для деталей.
Kerberos: The Definitive Guide от O’Reilly — великолепное руководство по установке Kerberos.

Также почувствуйте свободу без остановки на IRC каналах #ubuntu-server и #kerberos на Freenode, если у вас остались вопросы по Kerberos.

  • Сайт
  • Об Ubuntu
  • Скачать Ubuntu
  • Семейство Ubuntu
  • Новости
  • Форум
  • Помощь
  • Правила
  • Документация
  • Пользовательская документация
  • Официальная документация
  • Семейство Ubuntu
  • Материалы для загрузки
  • Совместимость с оборудованием
  • RSS лента
  • Сообщество
  • Наши проекты
  • Местные сообщества
  • Перевод Ubuntu
  • Тестирование
  • RSS лента

© 2018 Ubuntu-ru — Русскоязычное сообщество Ubuntu Linux.
© 2012 Canonical Ltd. Ubuntu и Canonical являются зарегистрированными торговыми знаками Canonical Ltd.

Пример настройки Kerberos-аутентификации для Linux-версии сервера 1С:Предприятия 8

Статья предназначена для версий 1С:Предприятия, начиная с 8.1.12 и 8.2.8 .

В данном примере описывается настройка Kerberos-аутентификации сервера 1С:Предприятия 8.1 для некоторой базовой системы, состоящей из трех компьютеров: контроллера домена, центрального сервера кластера 1С:Предприятия и рабочей станции.

Настройка сервера 1С:Предприятия версии 8.2 выполняется аналогично с учетом следующего:

  • Вместо usr1cv81 следует использовать usr1cv82
  • Вместо grp1cv81 — grp1cv82
  • Вместо /opt/1C/v8.1 — /opt/1C/v8.2

Описание базовой системы

В базовой системе присутствуют следующие компьютеры:

Контроллер домена Active Directory
имя компьютера (hostname) — main
IP-адрес — 192.168.29.150
имя домена — krb.local
Центральный сервер кластера 1С:Предприятия
Операционная система Fedora 6
Имя компьютера (hostname) — srv1c
IP-адрес — 192.168.29.151
Установлена реализация Kerberos от MIT, поддерживающая алгоритм RC4-HMAC (пакет krb5-workstation).
Рабочая станция

Настройка контроллера домена

В нашем примере мы полагаем, что контроллер домена Active Directory настроен и работает. Исходя из этого, для настройки Kerberos-аутентификации нужно выполнить следующие шаги:

В DNS-сервере следует «вручную» зарегистрировать все Linux-компьютеры. Регистрация Windows-компьютеров происходит автоматически при включении их в домен. В нашем случае, «вручную» необходимо зарегистрировать центральный сервер кластера 1С:Предприятия (т.к. на нем исполняется Linux-версия сервера), а рабочую станцию включить в домен (зарегистрирована она будет автоматически).

После этого следует создать учетную запись пользователя, с которой будут ассоциироваться запросы авторизации к серверу 1С:Предприятия . В нашем примере это будет пользователь usr1cv8 с паролем pass1cv8 . В свойствах этой учетной записи следует сбросить флажок «Use DES encryption types with this account» . Если ваша реализация Kerberos не поддерживает алгоритм шифрования RC4-HMAC, то флажок обязательно нужно выставить.

Затем для пользователя usr1cv8 следует сгенерировать файл с секретным ключом. Для этого используется утилита ktpass , входящая в состав в пакет Windows Support Tools (Его можно найти в подкаталоге SUPPORT установочного диска Windows).

В командной строке запустим утилиту ktpass . В нашем примере командная строка должна выглядеть следующим образом:

Копировать в буфер обмена

C:\>ktpass -princ usr1cv81/srv1c.krb.local@KRB.LOCAL -mapuser usr1cv8 -pass pass1cv8 -out usr1cv81.keytab C:\> 

Если алгоритм RC4-HMAC не поддерживается, командная строка должна выглядеть так:

Копировать в буфер обмена

C:\>ktpass -crypto DES-CBC-CRC -princ usr1cv81/srv1c.krb.local@KRB.LOCAL -mapuser usr1cv8 -pass pass1cv8 -out usr1cv81.keytab C:\> 

В результате будет создан файл usr1cv81.keytab в текущей директории (в нашем случае — это корень диска C:), а c пользователем usr1cv8 будет ассоциировано имя участника службы usr1cv81/srv1c.krb.local .

Обратите внимание на различие между именем usr1cv81 и usr1cv8 . В нашем примере usr1cv81/srv1c.krb.local@KRB.LOCAL — это стандартное имя службы. Оно включает в себя имя локального пользователя, от имени которого на центральном сервере кластера запускается сервер 1С:Предприятия ( usr1cv81 ). А usr1cv8 , указываемое в параметре mapuser, — это имя доменного пользователя, которое мы создали в пункте 2.

В параметре pass передается пароль учетной записи usr1cv8 — pass1cv8 .

В параметре out указывается имя файла с ключом. В нашем случае это usr1cv81.keytab .

Настройка центрального сервера кластера 1С:Предприятия

В нашем примере мы полагаем, что кластер серверов 1С:Предприятия уже установлен и работает на центральном сервере кластера.

Прежде всего следует указать DNS-сервер для центрального сервера кластера. Это должен быть DNS контроллер домена. Процесс настройки зависит от конкретного дистрибутива Linux, в нашем случае отредактируем «вручную» файл /etc/resolv.conf, указав в нем IP адрес контроллера домена. В результате файл должен содержать следующие строки:

srv1c:~# cat /etc/resolv.conf nameserver 192.168.29.150 search krb.local srv1c:~# 

Теперь проверим работу DNS. Для этого выполним команду ping :

srv1c:~# ping main -c 1 PING main.krb.local (192.168.29.150) 56(84) bytes of data. 64 bytes from 192.168.29.150: icmp_seq=1 ttl=128 time=0.177 ms --- main.krb.local ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.177/0.177/0.177/0.000 ms srv1c:~# 

Для компьютеров, участвующих в процессе аутентификации, не допускается большого расхождения системных часов, так как аутентификационные пакеты (тикеты) имеют ограниченное время действия. Соответственно, нужно синхронизировать время центрального сервера кластера с контроллером домена. Используем для этого команду ntpdate:

srv1c:~# ntpdate main 4 Jun 11:51:53 ntpdate[2527]: step time server 192.168.29.150 offset -56.766439 sec srv1c:~# 

Теперь настроим Kerberos. Для этого отредактируем файл /etc/krb5.conf . При этом, нам понадобится NETBIOS-имя контроллера домена. Оно, как правило, представляет собой имя домена в верхнем регистре. Поэтому в нашем случае NETBIOS-имя будет KRB.LOCAL .

В результате файл /etc/krb5.conf должен выглядеть следующим образом:

srv1c:~# cat /etc/krb5.conf [logging] default = FILE:/var/log/krb5libs.log kdc = FILE:/var/log/krb5kdc.log admin_server = FILE:/var/log/kadmind.log [libdefaults] default_realm = KRB.LOCAL dns_lookup_realm = false dns_lookup_kdc = false default_tkt_enctypes = rc4-hmac default_tgs_enctypes = rc4-hmac [realms] KRB.LOCAL = < kdc = main.krb.local:88 default_domain = krb.local >[domain_realm] krb.local = KRB.LOCAL .krb.local = KRB.LOCAL KRB.LOCAL = KRB.LOCAL .KRB.LOCAL = KRB.LOCAL [kdc] profile = /var/kerberos/krb5kdc/kdc.conf [appdefaults] pam = < debug = true ticket_lifetime = 36000 renew_lifetime = 36000 forwardable = false krb4_convert = false >srv1c:~# 

Если алгоритм RC4-HMAC не поддерживается, то значения параметров default_tkt_enctypes и default_tgs_enctypes должны быть следующими:

. . . default_tkt_enctypes = des-cbc-crc des-cbc-md5 default_tgs_enctypes = des-cbc-crc des-cbc-md5 . . .

Теперь проверим работу системы аутентификации. Для этого выполним команду kinit , где имя — это имя произвольного пользователя, зарегистрированного в домене krb.local. В следующем примере это имя user. Далее введем пароль этого пользователя и нажмем Enter. Если после этого программа не выдаст никаких сообщений — значит все хорошо.

Убедиться в этом можно с помощью команды klist . Как видно на рисунке, мы получили от KDC (Key Distribution Center — центр распределения ключей. Эту функцию выполняет контроллер домена) так называемый ticket-granting ticket . После этого следует с помощью команды kdestroy очистить локальный кэш тикетов, чтобы вернуться в исходное состояние.

srv1c:~# kinit user Password for user@KRB.LOCAL: srv1c:~# klist Ticket cache: FILE:/tmp/krb5cc_0 Default principal: user@KRB.LOCAL Valid starting Expires Service principal 06/04/08 11:29:21 06/04/08 21:28:28 krbtgt/KRB.LOCAL@KRB.LOCAL renew until 06/05/08 11:29:21 Kerberos 4 ticket cache: /tmp/tkt0 klist: You have no tickets cached srv1c:~# kdestroy srv1c:~# 

Далее, любым способом следует передать файл с секретным ключом usr1cv81.keytab , полученный во время настройки контроллера домена, на центральный сервер кластера 1С:Предприятия. Этот файл следует скопировать в директорию, где установлен сервер 1С:Предприятия (по умолчанию это /opt/1C/v8.1/i386), и установить права и владельца файла, как показано ниже:

srv1c:~# cd /opt/1C/v8.1/i386 srv1c:i386# chown usr1cv81:grp1cv81 usr1cv81.keytab srv1c:i386# chmod 600 usr1cv81.keytab srv1c:i386# 

При желании файл можно разместить в любом другом месте, нужно только изменить переменную SRV1CV8_KEYTAB в конфигурационном файле, чтобы она указывала на новое местоположение файла с секретным ключом.

После этого, с помощью команды klist проверяем, все ли мы сделали правильно. Для этого выполним команду:

srv1c:~# klist -e -k -t /opt/1C/v8.1/i386/usr1cv81.keytab

В нашем случае результат выполнения команды должен выглядеть следующим образом:

Keytab name: FILE:/opt/1C/v8.1/i386/usr1cv81.keytab KVNO Principal ---- --------------------------------------------------------------------- 13 usr1cv81/srv1c.krb.local@KRB.LOCAL (ArcFour with HMAC/md5)

Если алгоритм RC4-HMAC не поддерживается, результат выполнения команды будет выглядеть следующим образом:

Keytab name: FILE:/opt/1C/v8.1/i386/usr1cv81.keytab KVNO Principal ---- --------------------------------------------------------------------- 13 usr1cv81/srv1c.krb.local@KRB.LOCAL (DES cbc mode with RSA-MD5)

Мы видим, что файл с секретным ключом содержит именно то, что нам нужно (в колонке Principal указано то самое имя службы, которое мы задавали при создании файла с секретным ключом (п. 3), и правильный алгоритм шифрования ( ArcFour with HMAC/md5 для RC4-HMAC или DES cbc mode with RSA-MD5 для DES).

Далее проверим возможность работы Kerberos без пароля с использованием секретного ключа. С помощью команды kinit укажем, что надо использовать аутентификационную информацию из файла (в нашем случае /opt/1C/v8.1/i386/usr1cv81.keytab ) и прочитать оттуда ключ для сервиса usr1cv81/srv1c.krb.local@KRB.LOCAL . В результате программа kinit должна отработать без каких-либо сообщений, не спрашивать никаких паролей и вернуть управление обратно в командную строку:

srv1c:~# kinit -k -t /opt/1C/v8.1/i386/usr1cv81.keytab usr1cv81/srv1c.krb.local@KRB.LOCAL srv1c:~# 

Теперь посмотрим на результаты работы с помощью команды klist . В случае успеха мы увидим примерно следующее:

srv1c:~# klist Ticket cache: FILE:/tmp/krb5cc_0 Default principal: usr1cv81/srv1c.krb.local@KRB.LOCAL Valid starting Expires Service principal 06/04/08 11:44:54 06/04/08 21:43:58 krbtgt/KRB.LOCAL@KRB.LOCAL renew until 06/05/08 11:44:54 Kerberos 4 ticket cache: /tmp/tkt0 klist: You have no tickets cached srv1c:~# 

Если что-то настроено не так, то эта команда выведет следующее:

srv1c:~# klist klist: No credentials cache found (ticket cache FILE:/tmp/krb5cc_1000) Kerberos 4 ticket cache: /tmp/tkt1000 klist: You have no tickets cached srv1c:~# 

Если проверка работоспособности прошла успешно, это значит, что с данного момента сервер кластера 1С:Предприятия способен обрабатывать запросы на аутентификацию. При этом перезапуск сервера не требуется, кроме того случая, когда в конфигурационном файле было изменено место расположения файла с секретным ключом.

Команда kinit: опции, ключи и примеры использования

Общие команды – Общие команды, присущие различным операционным системам.

kinit

Authenticate a principal with a Kerberos server to gain and cache a ticket. Note: A Kerberos principal can be either a user, service, or application. More information: https://web.mit.edu/kerberos/krb5-1.12/doc/user/user_commands/kinit.html.

  • Authenticate a user and obtain a ticket-granting ticket:
  • Renew a ticket-granting ticket:
  • Specify a lifetime for the ticket:
  • Specify a total renewable lifetime for the ticket:
  • Specify a different principal name to authenticate as:
  • Specify a different keytab file to authenticate with:

Изображение Выучи 10 хороших привычек для работы в UNIX от IBM

Примеры кода, демонстрирующие общие подходы в программировании или же решающие небольшие прикладные задачи. Языки программирования и библиотеки, позволяющие эффективно решать задачи разработки. Объектно-ориентированное программирование, функциональное программирование и прочие подходы и …

Фото Код

Трюки Bash

Полезные заметки по работе с командной строкой: bash и прочие *sh. Однострочники, скрипты, позволяющие решать большие и малые задачи администрирования и настройки Юникс систем. Zsh для современного MacOS, Bash для …

Фото Трюки Bash

Заметки о настройке различных IT-штуковин. Настройка, допиливание, полировка. Конфигурируем приложения и тюнингуем сервера. Полезные параметры и ключи запуска программ. Увеличиваем скорость, уменьшаем отклик, ускоряем работу и улучшаем результаты работы. Объясняем …

Фото Настройки

Терминал/Консоль

Команды и инструкции терминала (консоли) Linux, MacOS, Windows и прочих операционных систем. Трюки и особенности командных оболочек, скрипты для администрирования Unix. Программирование и скриптование Windows и Linux, тонкая настройка Macos. …

Фото Терминал/Консоль

Также может быть вам интересно:

  • Как получить дерево директорий на Bash одним однострочником
  • Python: Функции
  • Python: Встроенные типы данных (list, set, dict, etc)
  • Python: типы данных, переменные, логическое ветвление и циклы
  • Как сделать свою middleware в Django (с примерами)

Свежее на «Цифре»
MessageId или как дебажить систему с минимумом проблем
Программы, 09.09.2023
Проверочный список для выпуска промышленных приложений с иллюстрациями
Работа и управление, 30.07.2023
В Google Pixel и Windows Snipping Tool есть возможность восстановления обрезанных изображений
Новости, 23.03.2023
Два подарка «под ёлочку» от Heroes of Might and Magic
Новости, 25.12.2022
Вышел Pulsar – редактор кода на основе Atom
Новости, 25.12.2022
Ленивый backup PostgreSQL
Программы, 17.12.2022
Google анонсировала OSV-Scanner: сканер уязвимостей в программных проектах
Новости, 16.12.2022

Фото Gitea запускает коммерческую версию, а недовольные – форк Forĝejo

Gitea запускает коммерческую версию, а недовольные – форк Forĝejo

На днях группа бывших разработчиков Gitea решили создать на базе хостинга кода Gitea свою версию проекта – «Forgejo». Причиной тому …

Фото Пользователи и их создание в Django - своя регистрация на сайте

Пользователи и их создание в Django — своя регистрация на сайте

Если вашим сайтом должны активно пользоваться несколько человек, то полезно их различать, а значит — надо уметь создавать пользователей, либо …

Фото Новый синтаксис старой команды with в Python 3.10

Новый синтаксис старой команды with в Python 3.10

Как же долго моё чувство прекрасного страдало… Но в Python 3.10 появился новый парсер синтаксических конструкций Python!

Фото Добавляем постраничную пагинацию на Django сайт

Добавляем постраничную пагинацию на Django сайт

На сайтах часто встречаются многостраничные объекты: список товаров, список заметок и т.д. Поэтому важно уметь добавить навигацию по страницам на …

Фото Новый оператор match-case в Python

Новый оператор match-case в Python

В новой версии Python (3.10) появится новый оператор. Новый оператор сопоставления по шаблону (match-case).

Фото Нет слов, одни. однострочники

Нет слов, одни. однострочники

На днях вышел пост со списком полезных однострочников для JavaScript программистов. Памятуя Perl-овую молодость, заглянул туда.

Фото Добавляем переменные в контекст Django шаблонов (свой контекст-процессор)

Добавляем переменные в контекст Django шаблонов (свой контекст-процессор)

В Django вы можете передавать данные в шаблоны посредством контекстов. Контекст передаётся из контроллера (view в терминах Django), однако, если …

Фото Пример своей консольной команды в Django проекте

Пример своей консольной команды в Django проекте

Если вы работали с Django проектом, то, скорее всего, запускали команды из консоли (manage.py). В Django есть простой способ писать …

Фото Разграничение прав доступа на Django сайте

Разграничение прав доступа на Django сайте

Почти на любом веб-сайте необходимо разделять пользователей на группы и предоставлять им разные возможности. В Django есть довольно серьёзная система …

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *