Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Применимо к: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 с помощью пакетов realmd и sssd.
Это предпочтительный способ присоединения узла Linux к контроллеру домена Active Directory.
Наиболее актуальные инструкции см. в официальной документации, предоставленной партнерами по распространению.
| Распределение | Справочная статья |
|---|---|
| RHEL 8 | Обнаружение и присоединение домена AD с помощью SSSD |
| RHEL 9 | Обнаружение и присоединение домена AD с помощью SSSD |
| SLES | Присоединение к Active Directory через членство в домене Windows |
| Ubuntu | Настройка SSSD в Active Directory |
Для присоединение узла SQL Server к домену Active Directory сделайте следующее.
Используйте realmd для присоединения хост-компьютера к домену 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 сначала установите имя хоста машины на полное квалифицированное доменное имя (FQDN), а не на имя хоста. В противном случае realmd может не создать все необходимые SPN для компьютера, и записи 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, выполните следующие инструкции.