Бөлісу құралы:


Присоединение SQL Server на узле Linux к домену Active Directory

Область применения: SQL Server — Linux

В этой статье приведены общие рекомендации по присоединению хост-компьютера SQL Server Linux к домену Active Directory. Существует два метода: использование встроенного пакета SSSD или использование сторонних поставщиков Active Directory. Примерами сторонних продуктов для присоединения к домену являются PowerBroker Identity Services (PBIS), One Identity и Centrify.

Это руководство содержит инструкции по проверке конфигурации Active Directory. Однако он не предназначен для предоставления инструкций по присоединению компьютера к домену при использовании сторонних служебных программ.

Примечание.

Сведения о настройке Active Directory с более новыми версиями Ubuntu, RHEL или SLES см. в руководстве. Использование adutil для настройки проверки подлинности Active Directory с помощью SQL Server на Linux.

Необходимые компоненты

Перед настройкой проверки подлинности Active Directory необходимо настроить контроллер домена Active Directory в сети Windows. Затем присоедините SQL Server на узле Linux к домену Active Directory.

Примеры шагов, описанные в этой статье, предназначены только для руководства и относятся только к операционным системам Ubuntu 16.04, Red Hat Enterprise Linux (RHEL) 7.x и SUSE Linux Enterprise Server (SLES) 12. Фактические шаги могут немного отличаться в вашей среде в зависимости от того, как настроена общая среда и версия операционной системы. Например, Ubuntu 18.04 использует netplan, а Red Hat Enterprise Linux (RHEL) 8.x использует nmcli среди других средств для управления и настройки сети. Вы должны привлечь системных администраторов и администраторов домена к вашей среде для конкретных инструментов, настройки, настройки и любых необходимых неполадок.

Обратный DNS (rDNS)

При настройке компьютера под управлением Windows Server в качестве контроллера домена может не быть зоны rDNS по умолчанию. Убедитесь, что соответствующая зона rDNS существует как для контроллера домена, так и ДЛЯ IP-адреса компьютера Linux, который будет работать под управлением SQL Server.

Также проверьте существование записи типа PTR, указывающей на контроллеры домена.

Проверка подключения к контроллеру домена

Убедитесь, что вы можете связаться с контроллером домена как по короткому, так и по полному доменному имени, а также с помощью имени узла контроллера домена. IP-адрес контроллера домена также должен разрешаться в полное доменное имя контроллера домена:

ping contoso
ping contoso.com
ping dc1.contoso.com
nslookup <IP address of dc1.contoso.com>

Совет

В этом руководстве используются contoso.com и CONTOSO.COM в качестве примеров доменных и доменных имен соответственно. Он также используется DC1.CONTOSO.COM в качестве примера полного доменного имени контроллера домена. Эти имена нужно заменить собственными значениями.

Чтобы обеспечить надлежащее разрешение доменных имен, важно обновить /etc/resolv.conf файл, если при проверке имени обнаружены какие-либо несоответствия. Процедура обновления зависит от распределения; следовательно, консультации с официальной документацией рекомендуется для точного руководства. В следующем списке приведены ссылки для некоторых дистрибутивов и их ключевых версий:

Распределение Справочная статья
RHEL 8 Настройка /etc/resolv.conf вручную
RHEL 9 Настройка /etc/resolv.conf вручную
SLES 15 параметры NETCONFIG_DNS_STATIC_SEARCHLIST и NETCONFIG_DNS_STATIC_SERVERS
Ubuntu Раздел "Разрешение имен"

Цель заключается в правильной настройке /etc/resolv.conf дистрибутива для упрощения разрешения доменных имен. Например, если домен contoso.com, а IP-адрес Active Directory равен 10.0.0.4, необходимо настроить соответствующим образом, /etc/resolv.conf чтобы обеспечить успешное разрешение имен с узла.

cat /etc/resolv.conf

Вот результирующий набор.

# Generated by NetworkManager
search contoso.com com
nameserver 10.0.0.4

RHEL 7.x

  1. Измените /etc/sysconfig/network-scripts/ifcfg-eth0 файл, чтобы домен Active Directory был в списке поиска домена. Или измените другой файл конфигурации интерфейса соответствующим образом.

    sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
    

    Содержимое должно выглядеть примерно так:

    PEERDNS=no
    DNS1=<Domain controller IP address>
    DOMAIN="contoso.com com"
    
  2. После изменения этого файла перезапустите сетевую службу.

    sudo systemctl restart network
    
  3. Теперь убедитесь, что файл /etc/resolv.conf содержит строку, как показано в следующем примере:

    sudo vi /etc/resolv.conf
    

    Содержимое должно выглядеть примерно так:

    search contoso.com com
    nameserver <Domain controller IP address>
    
  4. Если вы по-прежнему не можете выполнить связь с контроллером домена, найдите полное доменное имя и IP-адрес контроллера домена. Примером доменного имени является DC1.CONTOSO.COM. Добавьте следующую запись /etc/hostsв:

    sudo vi /etc/hosts
    

    Содержимое должно выглядеть примерно так:

    <IP address> DC1.CONTOSO.COM CONTOSO.COM CONTOSO
    

Присоединение к домену Active Directory

После проверки базовой конфигурации и подключения к контроллеру домена существует два варианта присоединения хост-компьютера SQL Server Linux к контроллеру домена Active Directory:

Вариант 1. Использование пакета SSSD для присоединения к домену Active Directory

Этот метод присоединяет узел SQL Server к домену Active Directory с помощью областей и пакетов sssd .

Это предпочтительный способ присоединения узла Linux к контроллеру домена Active Directory.

Наиболее актуальные инструкции см. в официальной документации, предоставленной партнерами по распространению.

Распределение Справочная статья
RHEL 8 Обнаружение и присоединение домена AD с помощью SSSD
RHEL 9 Обнаружение и присоединение домена AD с помощью SSSD
SLES Присоединение AD с помощью области в SUSE Linux Enterprise Server 15
Ubuntu Настройка SSSD в Active Directory

Для присоединение узла SQL Server к домену Active Directory сделайте следующее.

  1. Используйте область для присоединения хост-компьютера к домен Active Directory. Сначала нужно установить пакеты realmd и клиента Kerberos на хост-компьютере SQL Server с помощью диспетчера пакетов дистрибутива Linux.

    RHEL:

    sudo yum install realmd krb5-workstation
    

  1. Если при установке пакета клиента Kerberos запрашивается имя области, введите имя домена прописными буквами.

  2. Убедившись, что DNS настроена правильно, присоединитесь к домену с помощью указанной ниже команды. Для присоединения нового компьютера к домену необходимо выполнить проверку подлинности с помощью учетной записи Active Directory, которая имеет достаточные привилегии в Active Directory. Эта команда создает новую учетную запись компьютера в Active Directory, создает /etc/krb5.keytab файл ключей узла, настраивает домен в /etc/sssd/sssd.confи обновляется /etc/krb5.conf.

    Из-за проблемы с realmd сначала укажите для узла компьютера полное доменное имя, а не имя компьютера. В противном случае realmd может не создать все необходимые имена субъекта-службы для компьютера, а записи DNS не будут обновляться автоматически, даже если контроллер домена поддерживает динамические обновления DNS.

    sudo hostname <old hostname>.contoso.com
    

    После выполнения этой команды /etc/hostname файл должен содержаться <old hostname>.contoso.com.

    sudo realm join contoso.com -U 'user@CONTOSO.COM' -v
    

    Должно появиться сообщение Successfully enrolled machine in realm.

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

    Сообщение об ошибке Рекомендация
    Necessary packages are not installed Установите эти пакеты с помощью диспетчера пакетов дистрибутива Linux, прежде чем снова выполнять команду realm join.
    Insufficient permissions to join the domain Выясните у администратора домена, достаточно ли у вас разрешений для присоединения компьютеров Linux к домену.
    KDC reply did not match expectations Возможно, вы не указали правильное имя области для пользователя. В именах областей учитывается регистр, обычно используются прописные буквы, и их можно определить с помощью команды realm discover contoso.com.

    SQL Server использует SSSD и NSS для сопоставления учетных записей пользователей и групп с идентификаторами безопасности (SID). SSSD необходимо настроить и запустить для SQL Server, чтобы успешно создать имена входа Active Directory. realmd обычно выполняет это автоматически при присоединении к домену, но в некоторых случаях это нужно делать отдельно.

    Дополнительные сведения см. в статьях о настройке SSSD вручную и настройке NSS для работы с SSSD.

  3. Убедитесь, что теперь вы можете собирать сведения о пользователе из домена и получить билет Kerberos от имени этого пользователя. В следующем примере для этого используются команды id, kinit и klist.

    id user@contoso.com
    
    uid=1348601103(user@contoso.com) gid=1348600513(domain group@contoso.com) groups=1348600513(domain group@contoso.com)
    
    kinit user@CONTOSO.COM
    
    Password for user@CONTOSO.COM:
    
    klist
    Ticket cache: FILE:/tmp/krb5cc_1000
    Default principal: user@CONTOSO.COM
    

    Если id user\@contoso.com возвращается, убедитесь, No such userчто служба SSSD успешно запущена, выполнив команду sudo systemctl status sssd. Если служба запущена и вы по-прежнему видите ошибку, попробуйте включить подробное ведение журнала для SSSD. Дополнительные сведения см. в разделе об устранении неполадок SSSD в документации по Red Hat.

    Если kinit user\@CONTOSO.COM возвращается, убедитесь, KDC reply didn't match expectations while getting initial credentialsчто вы указали область в верхнем регистре.

Дополнительные сведения см. в разделе об обнаружении доменов удостоверений и присоединении к ним в документации по Red Hat.

Вариант 2. Использование сторонних служебных программ поставщика OpenLDAP

Вы можете использовать сторонние служебные программы, такие как PBIS, VAS или Centrify. В этой статье не рассматриваются шаги для каждой отдельной служебной программы. Прежде чем продолжить, нужно воспользоваться одной из этих служебных программ, чтобы присоединить узел Linux для SQL Server к домену.

SQL Server не использует код или библиотеку сторонних интеграторов для любых запросов, связанных с Active Directory. SQL Server всегда запрашивает Active Directory с помощью вызовов библиотеки OpenLDAP непосредственно в этой настройке. Сторонние интеграторы используются только для присоединения узла Linux к домену Active Directory, а SQL Server не имеет прямого взаимодействия с этими служебными программами.

Внимание

Ознакомьтесь с рекомендациями по использованию mssql-conf network.disablesssd параметра конфигурации в разделе "Дополнительные параметры конфигурации" статьи "Использование проверки подлинности Active Directory с SQL Server на Linux".

Убедитесь, что настроено /etc/krb5.conf правильно. Для большинства сторонних поставщиков Active Directory эта конфигурация выполняется автоматически. Однако проверьте /etc/krb5.conf следующие значения, чтобы предотвратить любые будущие проблемы:

sudo vi /etc/krb5.conf

Содержимое должно выглядеть примерно так:

[libdefaults]
default_realm = CONTOSO.COM

[realms]
CONTOSO.COM = {
}

[domain_realm]
contoso.com = CONTOSO.COM
.contoso.com = CONTOSO.COM

Проверка правильности настройки обратной DNS

Следующая команда должна возвращать полное доменное имя узла, на котором выполняется SQL Server. Например, SqlHost.contoso.com.

host <IP address of SQL Server host>

Выходные данные этой команды должны быть похожи на <reversed IP address>.in-addr.arpa domain name pointer SqlHost.contoso.com. Если эта команда не возвращает полное доменное имя узла или полное доменное имя, добавьте обратную запись DNS для узла SQL Server на Linux на DNS-сервер.

Следующий шаг

В этой статье описано, как настроить SQL Server на хост-компьютере Linux с проверкой подлинности Active Directory. Чтобы завершить настройку SQL Server на Linux для поддержки учетных записей Active Directory, выполните следующие инструкции.