SSSD-KRB5(5)

NAME
sssd-krb5 - Поставщик данных Kerberos SSSD

ОПИСАНИЕ

На этой справочной странице представлено описание настройки внутреннего сервера проверки подлинности Kerberos 5 для sssd(8). Подробные сведения о синтаксисе доступны в разделе “ФОРМАТ ФАЙЛА” справочной страницы sssd.conf(5).

Внутренний сервер проверки подлинности Kerberos 5 содержит поставщиков данных для проверки подлинности (auth) и смены пароля (chpass). Для корректной работы его необходимо использовать совместно с поставщиком данных идентификации (например, id_provider = ldap). Некоторые данные, которые требуются внутреннему серверу проверки подлинности Kerberos 5, должны предоставляться поставщиком данных идентификации (например, имя участника Kerberos пользователя (UPN)). В конфигурации поставщика данных идентификации должна быть запись с указанием UPN. Сведения о том, как выполнить такую настройку, доступны на справочной странице соответствующего поставщика данных идентификации.

Этот внутренний сервер также предоставляет возможность управления доступом на основе файла .k5login в домашнем каталоге пользователя. Дополнительные сведения доступны на справочной странице k5login(5). Обратите внимание, что пользователю будет отказано в доступе, если файл .k5login пуст. Чтобы активировать эту возможность, укажите «access_provider = krb5» в конфигурации SSSD.

Если на внутреннем сервере идентификации недоступен UPN, sssd создаст UPN в формате username@krb5_realm.

ПАРАМЕТРЫ КОНФИГУРАЦИИ

Если в домене SSSD используется модуль проверки подлинности krb5, необходимо использовать следующие параметры. Сведения о конфигурации домена SSSD доступны на справочной странице sssd.conf(5), в разделе “РАЗДЕЛЫ ДОМЕНА”.

krb5_server, krb5_backup_server (строка)
    Разделённый запятыми список IP-адресов или имён узлов серверов Kerberos, к которым SSSD следует подключаться в порядке приоритета. Дополнительные сведения об отработке отказа и избыточности сервера доступны в разделе “ОТРАБОТКА ОТКАЗА”. После адресов или имён узлов можно (необязательно) добавить номер порта (предварив его двоеточием). Если у параметра пустое значение, будет включено обнаружение служб — дополнительные сведения доступны в разделе “ОБНАРУЖЕНИЕ СЛУЖБ”.

    При использовании обнаружения служб для серверов KDC или kpasswd SSSD сначала выполняет поиск записей DNS, в которых в качестве протокола указан _udp. Если такие записи не удаётся найти, SSSD выполняет поиск записей DNS, в которых в качестве протокола указан _tcp.

    В предыдущих версиях SSSD этот параметр назывался “krb5_kdcip”. Это устаревшее имя всё ещё распознаётся, но пользователям рекомендуется перейти на использование “krb5_server” в файлах конфигурации.

krb5_realm (строка)
    Имя области Kerberos. Этот параметр является обязательным и должен быть указан.

krb5_kpasswd, krb5_backup_kpasswd (строка)
    Если на KDC не запущена служба смены паролей, здесь можно задать альтернативные серверы. После адресов или имён узлов можно добавить необязательный номер порта (предварив его двоеточием).

    Дополнительные сведения об отработке отказа и избыточности сервера доступны в разделе “ОТРАБОТКА ОТКАЗА”. ПРИМЕЧАНИЕ: даже если список серверов kpasswd будет исчерпан, внутренний сервер не перейдёт в автономный режим работы, если всё ещё возможна проверка подлинности с помощью KDC.

    По умолчанию: использовать KDC

krb5_ccachedir (строка)
    Каталог для хранения кэшей учётных данных. Здесь также можно использовать все последовательности замещения krb5_ccname_template, за исключением %d и %P. Каталог создаётся как закрытый, его владельцем является пользователь, права доступа — 0700.

    По умолчанию: /tmp

krb5_ccname_template (строка)
    Расположение кэша учётных данных пользователя. В настоящее время поддерживаются три типа кэша учётных данных: “FILE”, “DIR” и “KEYRING:persistent”. Кэш можно указать либо как TYPE:RESIDUAL, либо как абсолютный путь, что предполагает тип “FILE”. В шаблоне заменяются следующие последовательности:

    %u
        имя для входа

    %U
        UID для входа

    %p
        имя участника

    %r
        имя области

    %h
        домашний каталог

    %d
        значение krb5_ccachedir

    %P
        идентификатор процесса клиента SSSD

    %%
        литерал «%»

    Если шаблон заканчивается на «XXXXXX», для безопасного создания уникального имени файла используется mkstemp(3).

    Если используются типы KEYRING, единственным поддерживаемым механизмом является “KEYRING:persistent:%U”, то есть использование набора ключей ядра Linux для хранения учётных данных на основе разделения по UID. Этот вариант также является рекомендуемым, так как этот способ обеспечивает наибольшую безопасность и предсказуемость.

    Источником стандартного значения имени кэша учётных данных является профиль, который хранится в общесистемном файле конфигурации krb5.conf в разделе [libdefaults]. Имя параметра — default_ccache_name. Дополнительные сведения о формате расширения, определённом krb5.conf, доступны в абзаце о расширении параметров (PARAMETER EXPANSION) krb5.conf(5).

    ПРИМЕЧАНИЕ: обратите внимание, что в шаблоне расширения ccache libkrb5 из krb5.conf(5) используются другие последовательности расширения, чем в SSSD.

    По умолчанию: (из libkrb5)

krb5_keytab (строка)
    Расположение таблицы ключей, которую следует использовать при проверке учётных данных, полученных от KDC.

    По умолчанию: системная таблица ключей, обычно /etc/krb5.keytab

krb5_store_password_if_offline (логическое значение)
    Сохранять пароль пользователя, если поставщик не в сети, и использовать его для запроса TGT, когда поставщик снова появляется в сети.

    ПРИМЕЧАНИЕ: эта возможность доступна только в Linux. Пароли, сохранённые таким образом, хранятся как простой текст в наборе ключей ядра и потенциально доступны пользователю root (потребуются некоторые усилия).

    По умолчанию: false

krb5_use_fast (строка)
    Включает защищённое туннелирование гибкой проверки подлинности (FAST) для предварительной проверки подлинности Kerberos. Поддерживаются следующие параметры:

    never — никогда не использовать FAST. Это равнозначно тому варианту, когда значение этого параметра вообще не указано.

    try — пытаться использовать FAST. Если сервер не поддерживает FAST, проверка подлинности будет продолжена без него.

    demand — требовать использования FAST. Проверка подлинности будет неудачной, если сервер не требует использования FAST.

    По умолчанию: не задано, то есть FAST не используется.

    ПРИМЕЧАНИЕ: для использования FAST необходима таблица ключей или поддержка анонимного PKINIT.

    ПРИМЕЧАНИЕ: SSSD поддерживает FAST только для MIT Kerberos версии 1.8 и выше. Если SSSD используется с более ранней версией MIT Kerberos, использование этого параметра является ошибкой конфигурации.

krb5_fast_principal (строка)
    Указывает участник-сервер, который следует использовать для FAST.

krb5_fast_use_anonymous_pkinit (логическое значение)
    Если установлено значение «true», попытаться воспользоваться анонимным PKINIT вместо таблицы ключей для получения необходимых учётных данных для FAST. В этом случае параметры krb5_fast_principal игнорируются.

    По умолчанию: false

krb5_use_kdcinfo (логическое значение)
    Позволяет указать, следует ли SSSD сообщать библиотекам, какую область и какие KDC нужно использовать. Этот параметр включён по умолчанию. Если отключить его, потребуется настроить библиотеку Kerberos с помощью файла конфигурации krb5.conf(5).

    Дополнительные сведения о модуле локатора доступны на справочной странице sssd_krb5_locator_plugin(8).

    По умолчанию: true

krb5_kdcinfo_lookahead (строка)
    Когда параметр krb5_use_kdcinfo установлен в значение «true», можно ограничить количество серверов, которые передаются sssd_krb5_locator_plugin(8). Это может быть полезно, когда с помощью записи SRV обнаруживается слишком много серверов.

    Параметр krb5_kdcinfo_lookahead содержит два числа, разделённых двоеточием. Первое число представляет количество используемых основных серверов, а второе — количество резервных серверов.

    Например, 10:0 означает, что sssd_krb5_locator_plugin(8) будут переданы 10 основных серверов, но ни одного резервного сервера.

    По умолчанию: 3:1

krb5_use_enterprise_principal (логическое значение)
    Позволяет указать, следует ли обрабатывать участника-пользователя как участника-предприятие. Дополнительные сведения об участниках-предприятиях доступны в разделе 5 RFC 6806.

    По умолчанию: false (поставщик данных AD: true)

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

krb5_use_subdomain_realm (логическое значение)
    Указывает использовать области поддоменов для проверки подлинности пользователей из доверенных доменов. Этот параметр можно установить в значение «true», если участники-предприятия используются с upnSuffixes, неизвестными KDC родительского домена. Если этот параметр установлен в значение «true», SSSD будет пытаться отправить запрос напрямую KDC того доверенного домена, из которого пришёл пользователь.

    По умолчанию: false

krb5_map_user (строка)
    Перечень сопоставлений указывается в виде разделённого запятыми списка пар “username:primary”, где “username” — имя пользователя UNIX, а “primary” — часть пользователя в записи участника Kerberos. Это сопоставление задействуется, когда для проверки подлинности пользователя используется “auth_provider = krb5”.

    пример:

        krb5_realm = REALM
        krb5_map_user = joe:juser,dick:richard

    “joe” и “dick” — имена пользователей UNIX, а “juser” и “richard” — основные части участников Kerberos. Для пользователей “joe” и “dick” SSSD попытается выполнить kinit как, соответственно, “juser@REALM” и “richard@REALM”.

    По умолчанию: не задано

krb5_auth_timeout (целое число)
    Тайм-аут в секундах после прерывания запроса проверки подлинности или смены пароля в сетевом режиме. Обработка запроса проверки подлинности будет продолжена в автономном режиме, если это возможно.

    По умолчанию: 6

krb5_validate (логическое значение)
    Проверить с помощью krb5_keytab, что полученный TGT не был подменён. Проверка записей в таблице ключей выполняется последовательно, для проверки действительности используется первая запись с соответствующей областью. Если области не соответствует ни одна из записей, используется последняя запись в таблице ключей. Этот процесс можно использовать для проверки сред, где используются межобластные отношения доверия, поместив соответствующую запись таблицы ключей в качестве последней или единственной записи в файле таблицы ключей.

    По умолчанию: false (для поставщиков данных IPA и AD: true)

    Обратите внимание, что проверка билета — это первый шаг при проверке PAC (дополнительные сведения доступны в описании параметра «pac_check» на справочной странице sssd.conf(5)). Если проверка билета отключена, проверки PAC также будут пропущены.

krb5_renewable_lifetime (строка)
    Запросить обновляемый билет с общим временем жизни, указанным как целое число, сразу после которого следует единица измерения времени:

    s для секунд

    m для минут

    h для часов

    d для дней.

    Если единица измерения не указана, предполагается, что используется значение s.

    ПРИМЕЧАНИЕ: единицы измерения нельзя смешивать. Чтобы установить обновляемое время жизни равным полутора часам, укажите «90m», а не «1h30m».

    По умолчанию: не задано, то есть TGT не является обновляемым

krb5_lifetime (строка)
    Запросить билет с временем жизни, указанным как целое число, сразу после которого следует единица измерения времени:

    s для секунд

    m для минут

    h для часов

    d для дней.

    Если единица измерения не указана, предполагается, что используется значение s.

    ПРИМЕЧАНИЕ: единицы измерения нельзя смешивать. Чтобы установить время жизни равным полутора часам, укажите «90m», а не «1h30m».

    По умолчанию: не задано, то есть стандартное время жизни билета, настроенное в параметрах KDC.

krb5_renew_interval (строка)
    Время в секундах между двумя проверками того, следует ли обновить TGT. Обновление TGT выполняется в том случае, если прошла примерно половина времени жизни билета, указанного как целое число, сразу после которого следует единица измерения времени:

    s для секунд

    m для минут

    h для часов

    d для дней.

    Если единица измерения не указана, предполагается, что используется значение s.

    ПРИМЕЧАНИЕ: единицы измерения нельзя смешивать. Чтобы установить обновляемое время жизни равным полутора часам, укажите «90m», а не «1h30m».

    Если этот параметр не указан или установлен в значение «0», автоматическое обновление отключено.

    По умолчанию: не задано

krb5_canonicalize (логическое значение)
    Позволяет указать, следует ли приводить в каноническую форму имя участника-узла и участника-пользователя. Эта возможность доступна в MIT Kerberos 1.7 и выше.

    По умолчанию: false

ОТРАБОТКА ОТКАЗА

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

  Синтаксис обработки отказа

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

Для каждого параметра конфигурации с поддержкой отработки отказа существуют два варианта: основной (primary) и резервный (backup). Смысл в том, что приоритет получают серверы из списка основных, а поиск резервных серверов выполняется только в том случае, если не удалось связаться с основными серверами. Если выбран резервный сервер, устанавливается 31-секундный тайм-аут. По его истечении SSSD будет периодически пытаться восстановить подключение к одному из основных серверов. Если попытка будет успешной, текущий активный (резервный) сервер будет заменён на основной.

  Механизм отработки отказа

Механизм отработки отказа различает компьютеры и службы. Внутренний сервер сначала пытается разрешить имя узла указанного компьютера; если попытка разрешения завершается неудачей, компьютер считается работающим в автономном режиме. Дальнейшие попытки подключиться к этому компьютеру для доступа к другим службам не выполняются. Если попытка разрешения успешна, внутренний сервер пытается подключиться к службе на этом компьютере. Если попытка подключения к службе завершается неудачей, работающей в автономном режиме будет считаться только эта служба, и внутренний сервер автоматически переключится на следующую службу. Компьютер продолжает считаться находящимся в сети, возможны дальнейшие попытки подключения к другим службам на нём.

Дальнейшие попытки подключения к компьютерам или службам, обозначенным, как работающие в автономном режиме, выполняются по истечении определённого периода времени; в настоящее время это значения является жёстко заданным и составляет 30 секунд.

Если список компьютеров исчерпан, внутренний сервер целиком переключается на автономный режим и затем пытается восстановить подключение каждые 30 секунд.

  Тайм-ауты и тонкая настройка отработки отказа

Разрешение имени сервера, к которому следует подключиться, может быть выполнено как за один запрос DNS, так и за несколько шагов, например, при поиске корректного сайта или переборе нескольких имён узлов, если некоторые из настроенных серверов недоступны. Для более сложных сценариев требуется больше времени, и SSSD требуется соблюсти баланс между предоставлением достаточного количества времени для завершения процесса разрешения и не слишком долгим ожиданием перед переходом в автономный режим. Если в журнале отладки SSSD есть данные о том, что время на разрешение сервера истекло до обращения к реальному серверу, рекомендуется изменить значения тайм-аутов.

В этом разделе перечислены доступные настраиваемые параметры. Их описание содержится на справочной странице sssd.conf(5).

dns_resolver_server_timeout
    Время (в миллисекундах), в течение которого SSSD будет обращаться к одному серверу DNS перед переходом к следующему.

    По умолчанию: 1000

dns_resolver_op_timeout
    Время (в секундах), в течение которого SSSD будет пытаться разрешить один запрос DNS (например, разрешение имени узла или записи SRV) перед переходом к следующему имени узла или домену обнаружения.

    По умолчанию: 3

dns_resolver_timeout
    Как долго SSSD будет пытаться разрешить резервную службу. Это разрешение службы может включать несколько внутренних шагов, например, при разрешении запросов SRV DNS или определении расположения сайта.

    По умолчанию: 6

Для поставщиков данных на основе LDAP операция разрешения выполняется как часть операции установления LDAP-соединения. Следовательно, тайм-аут “ldap_opt_timeout” также следует установить в большее значение, чем “dns_resolver_timeout”, который, в свою очередь, следует установить в большее значение, чем “dns_resolver_op_timeout”, который должен быть больше “dns_resolver_server_timeout”.

ОБНАРУЖЕНИЕ СЛУЖБ

Функция обнаружения служб позволяет внутренним серверам автоматически находить серверы, к которым следует подключиться, с помощью специального запроса DNS. Эта возможность не поддерживается для резервных серверов.

  Конфигурация

Если серверы не указаны, внутренний сервер будет автоматически использовать обнаружение служб, чтобы попытаться найти сервер. Пользователь может (необязательно) задать использование сразу и фиксированных адресов серверов, и обнаружения служб, вставив в список серверов специальное ключевое слово “_srv_”. Обработка выполняется в порядке приоритета. Эта возможность полезна, например, если пользователь предпочитает использовать обнаружение служб всегда, когда это возможно, и подключаться к определённому серверу только в тех случаях, когда серверы не удалось обнаружить с помощью DNS.

  Имя домена

Дополнительные сведения доступны в описании параметра “dns_discovery_domain” на справочной странице sssd.conf(5).

  Протокол

В запросах обычно указан протокол _tcp. Исключения задокументированы в описаниях соответствующих параметров.

  См. также

Дополнительные сведения о механизме обнаружения служб доступны в RFC 2782.

ПРИМЕР

В следующем примере предполагается, что конфигурация SSSD корректна и что FOO — один из доменов в разделе [sssd]. В примере показана только конфигурация проверки подлинности Kerberos; он не включает какого-либо поставщика данных идентификации.

    [domain/FOO]
    auth_provider = krb5
    krb5_server = 192.168.1.1
    krb5_realm = EXAMPLE.COM

СМ. ТАКЖЕ

sssd(8), sssd.conf(5), sssd-ldap(5), sssd-ldap-attributes(5), sssd-krb5(5), sssd-simple(5), sssd-ipa(5), sssd-ad(5), sssd-files(5), sssd-sudo(5), sssd-session-recording(5), sss_cache(8), sss_debuglevel(8), sss_obfuscate(8), sss_seed(8), sssd_krb5_locator_plugin(8), sss_ssh_authorizedkeys(1), sss_ssh_knownhosts(1), sssd-ifp(5), pam_sss(8). sss_rpcidmapd(5)

AUTHORS

Восходящий источник («апстрим») SSSD — https://github.com/SSSD/sssd/