Присоединение 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 необходимо настроить контроллер домена 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 среди других средств для управления и настройки сети. Рекомендуется привлечь системных и доменных администраторов для вашей среды для конкретных инструментов, настройки, настройки и любых необходимых неполадок.
Примечание.
Сведения о настройке Active Directory с более новыми версиями Ubuntu, RHEL или SLES см. в руководстве. Использование adutil для настройки проверки подлинности Active Directory с помощью SQL Server на Linux.
Обратный 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
в качестве примера полного доменного имени контроллера домена. Эти имена нужно заменить собственными значениями.
Если любая из этих проверок имен завершается ошибкой, обновите список поиска доменов. В следующих разделах приведены инструкции для Ubuntu, Red Hat Enterprise Linux (RHEL) и SUSE Linux Enterprise Server (SLES) соответственно.
Ubuntu 16.04
Измените
/etc/network/interfaces
файл, чтобы домен Active Directory был в списке поиска домена:# The primary network interface auto eth0 iface eth0 inet dhcp dns-nameservers <Domain controller IP address> dns-search <Active Directory domain name>
Примечание.
Сетевой интерфейс (
eth0
) может отличаться для разных компьютеров. Чтобы узнать, какой из них вы используете, выполните команду ifconfig. Затем скопируйте интерфейс, имеющий IP-адрес и переданные и полученные байты.После изменения этого файла перезапустите сетевую службу.
sudo ifdown eth0 && sudo ifup eth0
Затем проверка, что файл
/etc/resolv.conf
содержит строку, как показано в следующем примере:search contoso.com com nameserver <Domain controller IP address>
Ubuntu 18.04
Измените файл [sudo vi /etc/netplan/******.yaml], чтобы ваш домен Active Directory находился в списке поиска доменов.
network: ethernets: eth0: dhcp4: true dhcp6: true nameservers: addresses: [<Domain controller IP address>] search: [<Active Directory domain name>] version: 2
Примечание.
Сетевой интерфейс (
eth0
) может отличаться для разных компьютеров. Чтобы узнать, какой из них вы используете, выполните команду ifconfig. Затем скопируйте интерфейс, имеющий IP-адрес и переданные и полученные байты.После изменения этого файла перезапустите сетевую службу.
sudo netplan apply
Затем проверка, что файл
/etc/resolv.conf
содержит строку, как показано в следующем примере:search contoso.com com nameserver <Domain controller IP address>
RHEL 7.x
Измените
/etc/sysconfig/network-scripts/ifcfg-eth0
файл, чтобы домен Active Directory был в списке поиска домена. Или измените другой файл конфигурации интерфейса соответствующим образом.PEERDNS=no DNS1=<Domain controller IP address> DOMAIN="contoso.com com"
После изменения этого файла перезапустите сетевую службу.
sudo systemctl restart network
Теперь проверка, что файл
/etc/resolv.conf
содержит строку, как показано в следующем примере:search contoso.com com nameserver <Domain controller IP address>
Если вы по-прежнему не можете выполнить связь с контроллером домена, найдите полное доменное имя и IP-адрес контроллера домена. Примером доменного имени является
DC1.CONTOSO.COM
. Добавьте следующую запись/etc/hosts
в:<IP address> DC1.CONTOSO.COM CONTOSO.COM CONTOSO
SLES 12
Измените
/etc/sysconfig/network/config
файл, чтобы IP-адрес контроллера домена использовался для DNS-запросов, и домен Active Directory находится в списке поиска домена:NETCONFIG_DNS_STATIC_SEARCHLIST="" NETCONFIG_DNS_STATIC_SERVERS="<Domain controller IP address>"
После изменения этого файла перезапустите сетевую службу.
sudo systemctl restart network
Затем проверка, что файл
/etc/resolv.conf
содержит строку, как показано в следующем примере:search contoso.com com nameserver <Domain controller IP address>
Присоединение к домену Active Directory
После проверки базовой конфигурации и подключения к контроллеру домена существует два варианта присоединения хост-компьютера SQL Server Linux к контроллеру домена Active Directory:
- Вариант 1. Использование пакета SSSD
- Вариант 2. Использование сторонних служебных программ поставщика OpenLDAP
Вариант 1. Использование пакета SSSD для присоединения к домену Active Directory
Этот метод присоединяет узел SQL Server к домену Active Directory с помощью областей и пакетов sssd .
Примечание.
Это предпочтительный способ присоединения узла Linux к контроллеру домена Active Directory.
Для присоединение узла SQL Server к домену Active Directory сделайте следующее.
Используйте область для присоединения хост-компьютера к домен Active Directory. Сначала нужно установить пакеты realmd и клиента Kerberos на хост-компьютере SQL Server с помощью диспетчера пакетов дистрибутива Linux.
RHEL:
sudo yum install realmd krb5-workstation
SLES 12:
Эти действия относятся к SLES 12.
sudo zypper addrepo https://download.opensuse.org/repositories/network/SLE_12/network.repo sudo zypper refresh sudo zypper install realmd krb5-client sssd-ad
Ubuntu 16.04:
sudo apt-get install realmd krb5-user software-properties-common python-software-properties packagekit
Ubuntu 18.04:
sudo apt-get install realmd krb5-user software-properties-common python3-software-properties packagekit sudo apt-get install adcli libpam-sss libnss-sss sssd sssd-tools
Если при установке пакета клиента 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 должен содержать <прежнее имя узла>.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-confnetwork.disablesssd
в разделе "Дополнительные параметры конфигурации" статьи "Использование проверки подлинности Active Directory с SQL Server на Linux".
Убедитесь, что настроено /etc/krb5.conf
правильно. Для большинства сторонних поставщиков Active Directory эта конфигурация выполняется автоматически. Однако проверка /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, выполните следующие инструкции.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по