Kerberos что это linux

Поддержка аутентификации Kerberos для компьютеров под управлением UNIX и Linux

Поддержка этой версии Operations Manager прекращена. Рекомендуем перейти на Operations Manager 2019.

System Center Operations Manager версии 1801 и более поздних версий взаимодействует с компьютерами с UNIX и Linux с использованием протокола SSH и веб-служб для управления (WS-Management). Все действия с агентами, например установка, обновление и удаление агентов, выполняются через SSH и для них нужна привилегированная учетная запись. Обнаружение и мониторинг агентов выполняются через WS-Management и для них достаточно учетной записи низкого уровня.

Теперь Operations Manager поддерживает аутентификацию Kerberos во всех сценариях, где сервер управления взаимодействует с компьютерами UNIX и Linux по протоколу WS-Management. Поддержка аутентификации Kerberos для компьютеров UNIX и Linux повышает безопасность, поскольку серверу управления теперь не нужно использовать обычную аутентификацию для службы удаленного управления Windows (WinRM).

Не отключайте обычную проверку подлинности для WinRM, если не используете проверку подлинности Kerberos Windows.

Поддержка Kerberos для компьютеров UNIX и Linux в Operations Manager

ДействиеПротоколПоддержка аутентификации Kerberos
Установка агентаSSHНет
Удаление агентаSSHНет
Обновление агентаSSHНет
Восстановление агентаSSHНет
Мониторинг с использованием агентаWS-ManДа
Обнаружение агентаWS-ManДа

Предварительные требования

Мониторинг UNIX и Linux с помощью Operations Manager поддерживается для нескольких операционных систем.

В настоящее время взаимодействие WS-Management по протоколу Kerberos поддерживается для следующих операционных систем (только для самой свежей версии каждого дистрибутива).

Операционная системаВерсия
Red Hat Enterprise Linux Server6
Red Hat Enterprise Linux Server7
CentOS6
CentOS7
UBUNTU Server14
UBUNTU Server15

    Агенты UNIX или Linux должны быть присоединены к домену.

    Для учетных записей запуска от имени следует настроить использование доменных учетных записей, которые связаны с соответствующим профилем Unix/Linux запуска от имени.

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

    Включение или отключение проверки подлинности Kerberos на сервере управления или сервере шлюза

    Используйте следующую процедуру, чтобы включить или отключить проверку подлинности Kerberos на сервере управления или сервере шлюза.

    Откройте консоль управления от имени учетной записи, которая включена в роль «Администраторы» для Operations Manager.

    Выберите значение для параметра Management Server State (Состояние сервера управления) или Gateway Server State (Состояние сервера шлюза), как показано ниже:

    Kerberos что это linux. Смотреть фото Kerberos что это linux. Смотреть картинку Kerberos что это linux. Картинка про Kerberos что это linux. Фото Kerberos что это linux

    В области задач справа выберите Enable Linux Authentication Type (Включить проверку подлинности Linux).

    Эта задача позволяет включить или отключить проверку подлинности Kerberos для мониторинга Linux на сервере управления или сервере шлюза.

    Нажмите кнопку Запустить.

    Эта задача устанавливает параметр реестра Authentication, расположенный по следующему адресу:

    HKLM:\Software\Microsoft\Microsoft Operations Manager\3.0\Setup\Linux Auth to Kerberos.

    Повторите описанные выше шаги на всех серверах управления, которые взаимодействуют с агентами UNIX или Linux.

    Проверка аутентификации Kerberos с помощью консоли

    Чтобы убедиться, что аутентификация Kerberos работает правильно, выполните следующие действия в консоли Operations Manager.

    Щелкните Мониторинг > Компьютеры UNIX или Linux, а затем выберите любой компьютер под управлением UNIX или Linux.

    В области задач справа выберите Сведения о памяти.

    Убедитесь, что задача выполняется успешно.

    Kerberos что это linux. Смотреть фото Kerberos что это linux. Смотреть картинку Kerberos что это linux. Картинка про Kerberos что это linux. Фото Kerberos что это linux

    Проверка аутентификации Kerberos с помощью командной строки

    Чтобы средствами командной строки проверить работу аутентификации Kerberos для взаимодействий между сервером управления и агентами UNIX или Linux, выполните следующие действия.

    Запустите командную строку на сервере управления от имени администратора и запустите приведенный ниже скрипт, указав в нем правильные сведения для параметров servername (имя сервера), username (имя пользователя) и password (пароль).

    Убедитесь, что выходные данные демонстрируют успешное выполнение команды.

    Источник

    Домен/Kerberos

    Kerberos — сетевой протокол аутентификации, позволяющий передавать данные через незащищённые сети для безопасной идентификации. Более подробно узнать об этом протоколе можете в статье про Kerberos на Wikipedia. В домене ALT Linux этот протокол занимает важное место, так как обеспечивает инфраструктуру для аутентификации пользователей (для входа в систему, для использования сетевых ресурсов по протоколу SMB и доступа в Интернет через прокси-сервер).

    Сервер аутентификации выполняет одну функцию: получает запрос, содержащий имя клиента, запрашивающего аутентификацию, и возвращает ему зашифрованный TGT (Ticket Granting Ticket, билет для получения билета). Затем пользователь может использовать этот TGT для запроса дальнейших билетов на другие службы. Часто специалисты билет называют «тикетом».

    С практической точки зрения нас интересуют нюансы использования и отладки Kerberos.

    Содержание

    Проверка работы сервера [ править ]

    В модуле «Домен» веб-интерфейса показывается текущее состояние в том числе и службы Kerberos. Если всё в порядке, то показывается

    Альтернативный способ получить статус домена:

    Если служба krb5kdc не запущена, то попробуйте запустить её вручную:

    Настройка сервера Kerberos (KDC) осуществляется в файле /var/lib/kerberos/krb5kdc/kdc.conf

    Принципалы (пользователи) [ править ]

    В Kerberos билеты (тикеты) выдаются только членам профсоюза зарегистрированным принципалам. Это могут быть как пользователи, так и службы. При создании домена создаются и принципалы поддерживаемых служб. В базу Kerberos пользователи добавляются через веб-интерфейс (раздел «Пользователи») или из командной строки в программе ldap-useradd.

    Для заведения пользователей и в базе Kerberos в файле /etc/sysconfig/system должна быть указана роль сервера master:

    kadmin.local [ править ]

    Проверка заведённых принципалов:

    Обратите внимание, выводятся как обычные пользователи, так и службы. Последние идут с FQDN (полным доменным именем) сервера, указанным через / от названия службы.

    Authenticating as principal root/admin@TEST.ALTLINUX with password. cas@TEST.ALTLINUX

    Вообще рекомендуется использовать функции alterator-kdc-princ-functions.

    Далее проверяем заведённого пользователя (пусть у нас есть принципал cas):

    И смена пароля у принципала Kerberos:

    Проверка получения билета [ править ]

    Запросить билет у Kerberos [ править ]

    Укажите пароль и нажмите Enter

    Показ полученных билетов [ править ]

    Обратите внимание, что билет для службы krbtgt выдан на сутки. Как управлять сроком выдаваемого билета и его обновлением, будет рассказано ниже.

    Очистить локальный кэш билетов [ править ]

    Синхронизация времени [ править ]

    Одним из основных требований успешного использования Kerberos является обеспечение одинакового времени на сервере и клиенте. В рамках ALT-домена эта задача решена использованием синхронизации по RFC 867. Для этого на сервере включается через xinetd daytime-tcp:

    А на клиенте — служба settime-rfc867 :

    Нюансы работы [ править ]

    Увеличиваем срок выдаваемого билета [ править ]

    Тикет Kerberos по умолчанию выдаётся не более чем на 1 сутки. Если хотите выдавать тикет больше, чем на сутки, пропишите:

    Использование старых версий Kerberos с новыми [ править ]

    В новых версиях Kerberos слабые алгоритмы (например, des-cbc-crc:afs3 ) по умолчанию запрещены к использованию. А на старых системах (клиентах или серверах на Пятой или Шестой платформе) они используются. Чтобы включить их поддержку, на новой системе пропишите в раздел [libdefaults] файла /etc/krb5.conf строку

    Без этого с билетами Kerberos (и, как следствие с монтированием каталогов и доступом к прокси-серверу) будут проблемы.

    Ошибка запуска службы krb5kdc [ править ]

    Если в журнале при запуске службы krb5kdc появляется ошибка:

    то это означает, что сервер LDAP ( slapd ) ещё не успел проинициализироваться для доступа krb5kdc. Увеличьте уровень загрузки службы krb5kdc с 40 до 41 (между запуском этих служб появится служба anacron ):

    Источник

    Национальная библиотека им. Н. Э. Баумана
    Bauman National Library

    Персональные инструменты

    Kerberos

    Kerberos что это linux. Смотреть фото Kerberos что это linux. Смотреть картинку Kerberos что это linux. Картинка про Kerberos что это linux. Фото Kerberos что это linux

    Kerberos — сетевой протокол аутентификации, позволяющий передавать данные через незащищённые сети для безопасной идентификации. Ориентирован, в первую очередь, на клиент-серверную модель и обеспечивает взаимную аутентификацию — оба пользователя через сервер подтверждают личности друг друга. Данная модель является одним из вариантов протокола аутентификации Нидхема — Шрёдера на основе доверенной третьей стороны. [1]

    Содержание

    История создания

    Kerberos был создан MIT в качестве решения проблем с безопасностью сети. Протокол Kerberos использует стойкую криптографию, так что клиент может идентифицироваться на сервере (и обратно) через незащищенное сетевое соединение. Kerberos это и имя сетевого протокола аутентификации и общий термин для описания программ, где он реализован (например, Kerberos telnet). Доступно несколько свободных реализаций этого протокола, работающих на множестве операционных систем. Massachusetts Institute of Technology (MIT), где Kerberos был первоначально разработан, продолжает разрабатывать собственный пакет Kerberos. Он обычно использовался в США как криптографический продукт, и в этом качестве попадал под действие ограничений на экспорт. MIT Kerberos доступен в виде порта (security/krb5). Heimdal Kerberos это другая реализация версии 5, которая разрабатывалась исключительно вне США для обхода экспортных ограничений (и поэтому часто включалась в некоммерческие реализации UNIX(R)). Heimdal Kerberos доступен в виде порта (security/heimdal), его минимальный комплект включен в базовую установку FreeBSD. [2]

    Терминология Kerberos

    Общие сведения

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

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

    Протокол Kerberos может использовать централизованное хранение аутентификационных данных и является основой для построения механизмов Single Sign-On (возможность использования единой учетной записи пользователя для доступа к любым ресурсам области).

    Протокол основан на понятии Ticket (билет).

    Ticket (билет) является зашифрованным пакетом данных, который выдается доверенным центром аутентификации, в терминах протокола Kerberos — Key Distribution Center (KDC, центр распределения ключей).

    Когда пользователь выполняет первичную аутентификацию, после успешного подтверждения его подлинности KDC выдает первичное удостоверение пользователя для доступа к сетевым ресурсам — Ticket Granting Ticket (TGT). В дальнейшем, при обращении к отдельным ресурсам сети, пользователь, предъявляя TGT, получает от KDC удостоверение для доступа к конкретному сетевому ресурсу — Service Ticket (TGS).

    Одним из преимуществ протокола Kerberos, обеспечивающим высокий уровень безопасности, является то, что при любых взаимодействиях не передаются ни пароли, ни значения хеша паролей в открытом виде.

    Работая с протоколом Kerberos, необходимо, чтобы системные часы всех участвующих во взаимодействии узлов были синхронизированы.

    В качестве примера реализации протокола Kerberos имеет смысл отметить доменную аутентификацию пользователей в операционных системах Microsoft, начиная с Windows 2000. [4]

    Развитие протокола

    Ранние версии

    Ранние версии Kerberos (c 1 по 3) были созданы внутри МIT и использовались в целях тестирования. Эти реализации содержали существенные ограничения и были полезны только для изучения новых идей и выявления проблем, которые могли возникнуть во время разработки.

    Kerberos 4

    Kerberos 4 впервые была опубликована 24 января 1989 года. Она стала первой версией, распространяемой за пределами MIT, подготовленной для нескольких производителей, которые включили её в свои операционные системы. Кроме того, другие крупные проекты по распределённым системам (например, AFS) использовали идеи Kerberos 4 для своих систем аутентификации. Основными разработчиками данной версии были Стив Миллер (Steve Miller) и Клиффорд Ньюман (Clifford Neuman). Основы того, что должно было стать Kerberos 4, были описаны в техническом плане «Афина», а окончательный вариант был закреплён в исходном коде эталонной реализации, опубликованной MIT. Однако из-за ограничений на экспорт программного обеспечения, использующего шифрование, наложенных американским правительством, Kerberos 4 не мог быть распространён за пределами Соединённых Штатов. Так как Kerberos 4 при шифровании использовал алгоритм DES, организации за пределами США не могли по закону использовать данное программное обеспечение. В ответ на это команда разработчиков из MIT создала специальную версию Kerberos 4, исключив из неё весь код, касающийся шифрования. Данные меры позволили обойти ограничение на экспорт. Позже Эррол Янг (Errol Young) в Университете связи Австралии (Bond University of Australia) добавил в эту версию собственную реализацию DES. Она называлась «E-Bones» (сокращение от «encrypted bones») и могла свободно распространяться за пределами США. В 2006 году было объявлено о прекращении поддержки Kerberos 4.

    Kerberos 5

    С целью преодоления проблем безопасности предыдущей версии Джоном Колем (John Kohl) и Клиффордом Ньюманом (Clifford Neuman) была разработана 5 версия протокола, которая в 1993 году была опубликована в RFC 1510. По прошествии времени, в 2005 спецификацией начала заниматься IETF Kerberos work group. Опубликованные ими документы включают в себя:

    В июне 2006 года был представлен RFC 4556 описывающий расширение для 5-й версии под названием PKINIT (англ. public key cryptography for initial authentication in Kerberos). Данный RFC описывал, как использовать асимметричное шифрование на этапе аутентификации клиента. На следующий год (2007) MIT сформировали Kerberos Консорциум (Kerberos Consortium) по содействию дальнейшему развитию.

    Использование и распространение

    Как работает Kerberos?

    Вход пользователя в систему

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

    Аутентификация клиента

    Kerberos что это linux. Смотреть фото Kerberos что это linux. Смотреть картинку Kerberos что это linux. Картинка про Kerberos что это linux. Фото Kerberos что это linux

    Клиент отсылает запрос (AS_REQ) на СА для получения аутентификационных верительных данных и последующего их предоставления TGS серверу (впоследствии он будет их использовать для получения мандатов без дополнительных запросов на применение секретного ключа пользователя.) Данный запрос содержит:

    Kerberos что это linux. Смотреть фото Kerberos что это linux. Смотреть картинку Kerberos что это linux. Картинка про Kerberos что это linux. Фото Kerberos что это linux

    Kerberos что это linux. Смотреть фото Kerberos что это linux. Смотреть картинку Kerberos что это linux. Картинка про Kerberos что это linux. Фото Kerberos что это linux

    Если политика KDC требует предварительной аутентификации, то пользователь получает сообщение KRB_ERROR, в ответ на которое посылает повторный запрос, но уже c данными для установления подлинности.

    Kerberos что это linux. Смотреть фото Kerberos что это linux. Смотреть картинку Kerberos что это linux. Картинка про Kerberos что это linux. Фото Kerberos что это linux

    СА проверяет, есть ли такой клиент в базе. Если есть, то назад СА отправляет сообщение (AS_REP), включающее:

    Kerberos что это linux. Смотреть фото Kerberos что это linux. Смотреть картинку Kerberos что это linux. Картинка про Kerberos что это linux. Фото Kerberos что это linux

    Если же нет, то клиент получает новое сообщение, говорящее о произошедшей ошибке.

    Kerberos что это linux. Смотреть фото Kerberos что это linux. Смотреть картинку Kerberos что это linux. Картинка про Kerberos что это linux. Фото Kerberos что это linux

    Получив сообщение, клиент расшифровывает свою часть для получения Сессионного Ключа Клиент/TGS. Этот сессионный ключ используется для дальнейшего обмена с сервером TGS. (Важно: Клиент не может расшифровать TGT, так как оно зашифровано секретным ключом TGS) В этот момент у пользователя достаточно данных, чтобы авторизоваться на TGS.

    Авторизация клиента на TGS

    Для запроса сервиса клиент формирует запрос на TGS (TGS_REQ) содержащий следующие данные:

    После получения TGS_REQ, TGS извлекает из него TGT и расшифровывает его используя секретный ключ TGS. Это дает ему Сессионный Ключ Клиент/TGS. Им он расшифровывает аутентификатор. Затем он генерирует сессионный ключ клиент/сервис и посылает ответ (TGS_REP) включающий:

    Запрос сервиса клиентом

    После получения TGS_REP, у клиента достаточно информации для авторизации на сервисе. Клиент соединяется с ним и посылает сообщение содержащее:

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

    Клиент расшифровывает подтверждение, используя сессионный ключ клиент/сервис и проверяет, действительно ли метка времени корректно обновлена. Если это так, то клиент может доверять серверу и может начать посылать запросы на сервер.

    Сервер предоставляет клиенту требуемый сервис. [6]

    Принцип работы

    Kerberos 4

    Kerberos 4 в значительной степени основан на протоколе Нидхема-Шрёдера, но с двумя существенными изменениями.

    Как результат, протокол Kerberos 4 содержит два логических компонента:

    Обычно эти компоненты поставляются как единая программа, которая запускается на центре распределения ключей (KDC — содержит базу данных логинов/паролей для пользователей и сервисов использующих Kerberos). Сервер аутентификации выполняет одну функцию: получает запрос, содержащий имя клиента, запрашивающего аутентификацию, и возвращает ему зашифрованный TGT. Затем пользователь может использовать этот TGT для запроса дальнейших мандатов на другие сервисы. В большинстве реализаций Kerberos время жизни TGT 8-10 часов. После этого клиент снова должен запросить его у СА.

    Первое сообщение, отправляемое центру распределения ключей — запрос к СА, так же известен как AS_REQ. Это сообщение отправляется открытым текстом и содержит идентификационные данные клиента, метку времени клиента и идентификатор сервера, предоставляющего мандат (TGS).

    Когда KDC получает AS_REQ сообщение — он проверяет, что клиент, от которого пришёл запрос, существует, и его метка времени близка к локальному времени KDC (обычно ± 5 минут). Данная проверка производится не для защиты от повторов (сообщение посылается открытым текстом), а для проверки соответствия времени. Если хотя бы одна из проверок не проходит — клиенту отправляется сообщение об ошибке, и он не аутентифицируется.

    В случае удачной проверки СА генерирует случайный сеансовый ключ, который будет совместно использоваться клиентом и TGS (данный ключ защищает дальнейшие запросы мандатов у TGS на другие сервисы). KDC создает 2 копии сессионного ключа: одну для клиента и одну для TGS.

    Затем KDC отвечает клиенту сообщением сервера аутентификации (AS_REP), зашифрованным долгосрочным ключом клиента. Это сообщение включает TGT, зашифрованный TGS ключом, копию сессионного ключа для клиента, время жизни мандата и идентификатор TGS (TGT содержит: копию сессионного ключа для TGS, идентификатор клиента, время жизни мандата, метку времени KDC, IP адрес клиента).

    Когда пользователь захочет получить доступ к сервису — он подготовит сообщение для TGS (TGS_REQ), содержащее 3 части: идентификатор сервиса, копию TGT, полученную ранее, и аутентификатор (аутентификатор состоит из метки времени, зашифрованной сессионным ключом, полученным от СА, и служит для защиты от повторов).

    При получении запроса мандата от клиента KDC формирует новый сессионный ключ для взаимодействия клиент/сервис. Затем отправляет ответное сообщение (TGS_REP), зашифрованное сессионным ключом, полученным от СА. Это сообщение содержит новый сеансовый ключ, мандат сервиса, зашифрованный долговременным ключом сервиса, идентификатор сервиса и время жизни мандата (Service ticket содержит: копию нового сессионного ключа, идентификатор клиента, время жизни мандата, локальное время KDC, IP клиента).

    Детали последнего шага — отправки мандата службы серверу приложений — не стандартизировались Kerberos 4, поэтому его реализация полностью зависит от приложения.

    Kerberos 5

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

    Основной причиной появления пятой версии являлась невозможность расширения. Со временем, атака полным перебором на DES используемом в Kerberos 4 стала актуальна, но используемые поля в сообщениях имели фиксированный размер и использовать более стойкий алгоритм шифрования не представлялось возможным.

    Для решения данной проблемы было решено создать расширяемый протокол с возможностью использования на различных платформах на основе технологии ASN.1. Это позволило использовать в транзакциях различные типы шифрования. Благодаря этому была реализована совместимость с предыдущей версией. Кроме того у KDC появляется возможность выбирать наиболее безопасный протокол шифрования, поддерживаемый участвующими сторонами.

    Кроме того оригинальный протокол Kerberos 4 подвержен перебору по словарю. Данная уязвимость связана с тем, что KDC выдает по требованию зашифрованный TGT любому клиенту. Важность данной проблемы также подчеркивает то, что пользователи обычно выбирают простые пароли.

    Чтобы усложнить проведение данной атаки, в Kerberos 5 было введено предварительное установление подлинности. На данном этапе KDC требует, чтобы пользователь удостоверил свою личность прежде, чем ему будет выдан мандат.

    Настройка Kerberos 5

    Настройка клиента Kerberos 5 выполняется гораздо проще, чем настройка сервера. Как минимум, вы должны установить пакеты клиента и сформировать для своих клиентов правильный файл конфигурации krb5.conf. Версии rsh и rlogin, поддерживающие Kerberos, также потребуют некоторых изменений в конфигурации.

    1.Убедитесь в том, что между клиентом Kerberos и KDC время синхронизировано. За дополнительной информаций обратитесь к разделу Настройка сервера Kerberos 5. Помимо этого, до установки на компьютере клиентских программ Kerberos необходимо убедиться в корректной работе DNS.

    2.Установите пакеты krb5-libs и krb5-workstation на всех клиентских компьютерах вашей сферы. Вы должны поместить собственную версию файла /etc/krb5.conf на клиентские компьютеры; обычно это тот же файл krb5.conf, что и на KDC.

    3.До того как определённая рабочая станция в вашей сфере позволит пользователям подключиться, используя rsh и rlogin, использующие Kerberos, на этом компьютере необходимо установить пакет xinetd, и создать для него собственную запись узла в базе данных Kerberos. Серверным программам kshd и klogind также понадобится получить ключи своих учётных записей служб.

    Обратите внимание, после создания учётной записи, вы можете извлечь ключи рабочей станции, выполнив команду kadmin на самой рабочей станции и воспользовавшись командой ktadd в kadmin:

    Чтобы использовать версии rsh и rlogin, поддерживающие Kerberos, вы должны включить klogin, eklogin и kshell.

    Использование и распространение

    Распространение реализации Kerberos происходит в рамках авторского права аналогичного правам для BSD.

    В настоящее время множество ОС поддерживают данный протокол, в число которых входят:

    Применение для централизованной аутентификации

    Применение протокола Kerberos для централизованной аутентификации в связке с централизованным созданием хранением и раздачей учетных записей (например, посредством каталога на базе OpenLDAP) позволяет создать «домен UNIX», полностью состоящий из машин под управлением свободного программного обеспечения. Такое решение может применяться в корпоративном секторе, а аутентификация по смарт-картам будет приятным бонусом как для администраторов, так и для пользователей сети компании. [10]

    Источник

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

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