Присоединение 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
Измените
/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"
После изменения этого файла перезапустите сетевую службу.
sudo systemctl restart network
Теперь убедитесь, что файл
/etc/resolv.conf
содержит строку, как показано в следующем примере:sudo vi /etc/resolv.conf
Содержимое должно выглядеть примерно так:
search contoso.com com nameserver <Domain controller IP address>
Если вы по-прежнему не можете выполнить связь с контроллером домена, найдите полное доменное имя и 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
- Вариант 2. Использование сторонних служебных программ поставщика OpenLDAP
Вариант 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 сделайте следующее.
Используйте область для присоединения хост-компьютера к домен Active Directory. Сначала нужно установить пакеты realmd и клиента Kerberos на хост-компьютере SQL Server с помощью диспетчера пакетов дистрибутива Linux.
Если при установке пакета клиента Kerberos запрашивается имя области, введите имя домена прописными буквами.
Убедившись, что 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.
Убедитесь, что теперь вы можете собирать сведения о пользователе из домена и получить билет 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, выполните следующие инструкции.