Udostępnij za pośrednictwem


Dołączanie programu SQL Server na hoście z systemem Linux do domeny usługi Active Directory

Dotyczy:programu SQL Server — Linux

Ten artykuł zawiera ogólne wskazówki dotyczące dołączania maszyny hosta z systemem Linux programu SQL Server do domeny usługi Active Directory. Istnieją dwie metody: użyj wbudowanego pakietu SSSD lub użyj dostawców usługi Active Directory innych firm. Przykłady produktów dołączania do domeny innych firm to PowerBroker Identity Services (PBIS), One Identityi Centrify.

Ten przewodnik zawiera kroki umożliwiające sprawdzenie konfiguracji usługi Active Directory. Nie jest to jednak przeznaczone do udostępniania instrukcji dotyczących dołączania maszyny do domeny podczas korzystania z narzędzi innych firm.

Notatka

Aby uzyskać informacje na temat konfigurowania usługi Active Directory z nowszymi wersjami systemu Ubuntu, RHEL lub SLES, zobacz Samouczek: użycie adutil do konfigurowania uwierzytelniania usługi Active Directory z SQL Server w systemie Linux.

Warunki wstępne

Przed skonfigurowaniem uwierzytelniania usługi Active Directory należy skonfigurować kontroler domeny usługi Active Directory, system Windows w sieci. Następnie dołącz program SQL Server na hoście z systemem Linux do domeny usługi Active Directory.

Przykładowe kroki opisane w tym artykule są przeznaczone wyłącznie do celów orientacyjnych i odnoszą się do systemów operacyjnych Ubuntu 16.04, Red Hat Enterprise Linux (RHEL) 7.x oraz SUSE Linux Enterprise Server (SLES) 12. Rzeczywiste kroki mogą się nieznacznie różnić w danym środowisku w zależności od tego, jak skonfigurowano ogólne środowisko i wersję systemu operacyjnego. Na przykład system Ubuntu 18.04 używa netplan, podczas gdy system Red Hat Enterprise Linux (RHEL) 8.x używa nmcli między innymi narzędziami do zarządzania i konfigurowania sieci. Należy zaangażować administratorów systemu i domeny w środowisku w celu uzyskania określonych narzędzi, konfiguracji, dostosowywania i wszelkich wymaganych rozwiązań.

Odwrotny DNS (rDNS)

Podczas konfigurowania komputera z systemem Windows Server jako kontrolera domeny może nie być domyślnie skonfigurowana strefa rDNS. Upewnij się, że istnieje odpowiednia strefa rDNS zarówno dla kontrolera domeny, jak i adresu IP maszyny z systemem Linux, na którym będzie uruchomiony program SQL Server.

Upewnij się również, że istnieje rekord PTR wskazujący kontrolery domeny.

Sprawdzanie połączenia z kontrolerem domeny

Sprawdź, czy możesz skontaktować się z kontrolerem domeny przy użyciu krótkich i w pełni kwalifikowanych nazw domeny oraz przy użyciu nazwy hosta kontrolera domeny. Adres IP kontrolera domeny powinien również zostać rozpoznany jako nazwa FQDN kontrolera domeny:

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

Napiwek

W tym samouczku użyto contoso.com jako przykładowej nazwy domeny, a CONTOSO.COM jako przykładowej nazwy obszaru. Używa również DC1.CONTOSO.COM jako przykładowej w pełni kwalifikowanej nazwy domeny kontrolera domeny. Należy zastąpić te nazwy własnymi wartościami.

Aby zapewnić prawidłowe rozpoznawanie nazw domen, należy zaktualizować plik /etc/resolv.conf, jeśli podczas sprawdzania nazw zostaną znalezione jakiekolwiek rozbieżności. Procedura aktualizacji różni się w różnych dystrybucjach; dlatego zaleca się zapoznanie się z oficjalną dokumentacją w celu uzyskania dokładnych wskazówek. Poniższa lista zawiera linki do niektórych dystrybucji i ich kluczowych wersji:

Dystrybucja Artykuł referencyjny
RHEL 8 Ręczne konfigurowanie /etc/resolv.conf
RHEL 9 Ręczne konfigurowanie /etc/resolv.conf
SLES 15 Ustawienia NETCONFIG_DNS_STATIC_SEARCHLIST i NETCONFIG_DNS_STATIC_SERVERS
ubuntu sekcji rozpoznawania nazw

Celem jest skonfigurowanie /etc/resolv.conf poprawnie dla twojej dystrybucji, aby ułatwić rozpoznawanie nazw domen. Jeśli na przykład Twoja domena to contoso.com, a adres IP usługi Active Directory wynosi 10.0.0.4, należy odpowiednio skonfigurować element /etc/resolv.conf, aby zapewnić pomyślne rozpoznawanie nazw z hosta.

cat /etc/resolv.conf

Oto zestaw wyników.

# Generated by NetworkManager
search contoso.com com
nameserver 10.0.0.4

RHEL 7.x

  1. Zmodyfikuj plik /etc/sysconfig/network-scripts/ifcfg-eth0, aby domena usługi Active Directory znajduje się na liście wyszukiwania domen. Możesz też edytować inny plik konfiguracji interfejsu zgodnie z potrzebami:

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

    Zawartość powinna wyglądać podobnie do poniższego przykładu:

    PEERDNS=no
    DNS1=<Domain controller IP address>
    DOMAIN="contoso.com com"
    
  2. Po edycji tego pliku uruchom ponownie usługę sieciową:

    sudo systemctl restart network
    
  3. Teraz sprawdź, czy plik /etc/resolv.conf zawiera wiersz podobny do następującego przykładu:

    sudo vi /etc/resolv.conf
    

    Zawartość powinna wyglądać podobnie do poniższego przykładu:

    search contoso.com com
    nameserver <Domain controller IP address>
    
  4. Jeśli nadal nie możesz wysłać polecenia ping do kontrolera domeny, znajdź w pełni kwalifikowaną nazwę domeny i adres IP kontrolera domeny. Przykładowa nazwa domeny to DC1.CONTOSO.COM. Dodaj następujący wpis do /etc/hosts:

    sudo vi /etc/hosts
    

    Zawartość powinna wyglądać podobnie do poniższego przykładu:

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

Dołączanie do domeny usługi Active Directory

Po zweryfikowaniu podstawowej konfiguracji i łączności z kontrolerem domeny, istnieją dwie opcje dołączania maszyny hosta z systemem SQL Server na Linuxie z kontrolerem domeny Active Directory.

Opcja 1. Dołączanie do domeny usługi Active Directory przy użyciu pakietu SSSD

Ta metoda łączy hosta serwera SQL z domeną Active Directory przy użyciu pakietów realmd i sssd.

Jest to preferowana metoda dołączania hosta systemu Linux do kontrolera domeny usługi Active Directory.

Aby uzyskać najbardziej aktualne instrukcje, zapoznaj się z oficjalną dokumentacją dostarczoną przez partnerów dystrybucyjnych.

Dystrybucja Artykuł referencyjny
RHEL 8 Odkrywanie i przyłączanie do domeny AD przy użyciu SSSD
RHEL 9 Odkrywanie i dołączanie do domeny AD przy użyciu SSSD
SLES dołączanie do usługi Active Directory przy użyciu członkostwa w domenie systemu Windows
ubuntu Jak skonfigurować usługę SSSD przy użyciu usługi Active Directory

Wykonaj następujące kroki, aby dołączyć hosta programu SQL Server do domeny usługi Active Directory:

  1. Użyj realmd, aby dołączyć hosta do domeny Active Directory. Najpierw należy zainstalować na maszynie hosta SQL Server zarówno pakiet realmd , jak i pakiety klienta Kerberos, używając menedżera pakietów dystrybucji systemu Linux.

    RHEL:

    sudo yum install realmd krb5-workstation
    

  1. Jeśli instalacja pakietu klienta Kerberos wyświetli monit o podanie nazwy obszaru, wprowadź nazwę domeny w wielkich literach.

  2. Po potwierdzeniu, że system DNS jest poprawnie skonfigurowany, dołącz do domeny, uruchamiając następujące polecenie. Musisz uwierzytelnić się przy użyciu konta usługi Active Directory, które ma wystarczające uprawnienia w usłudze Active Directory, aby dołączyć nową maszynę do domeny. To polecenie tworzy nowe konto komputera w Active Directory, tworzy plik klucza hosta /etc/krb5.keytab, konfiguruje domenę w /etc/sssd/sssd.confi aktualizuje /etc/krb5.conf.

    Ze względu na problem z realmd, najpierw ustaw nazwę hosta maszyny na FQDN zamiast na nazwę maszyny. W przeciwnym razie realmd na może nie utworzyć wszystkich wymaganych nazw SPN dla maszyny, a wpisy DNS nie zostaną automatycznie zaktualizowane, nawet jeśli kontroler domeny obsługuje dynamiczne aktualizacje DNS.

    sudo hostname <old hostname>.contoso.com
    

    Po uruchomieniu tego polecenia plik /etc/hostname powinien zawierać <old hostname>.contoso.com.

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

    Powinieneś zobaczyć komunikat Successfully enrolled machine in realm.

    W poniższej tabeli wymieniono niektóre komunikaty o błędach, które można otrzymywać, i sugestie dotyczące ich rozwiązywania:

    Komunikat o błędzie Zalecenie
    Necessary packages are not installed Zainstaluj te pakiety za pomocą menedżera pakietów swojej dystrybucji systemu Linux przed ponownym uruchomieniem polecenia realm join.
    Insufficient permissions to join the domain Sprawdź, czy administrator domeny ma wystarczające uprawnienia, aby dołączyć maszyny z systemem Linux do domeny.
    KDC reply did not match expectations Być może nie określono poprawnej nazwy obszaru dla użytkownika. Nazwy obszarów rozróżniają wielkość liter, zazwyczaj zaczynają się wielką literą i można je zidentyfikować za pomocą polecenia 'realm discover contoso.com'.

    Program SQL Server używa SSSD i NSS do mapowania kont użytkowników i grup na identyfikatory zabezpieczeń (SID). Aby pomyślnie utworzyć loginy Active Directory, należy skonfigurować i uruchomić SSSD oraz usługę SQL Server. realmd zazwyczaj wykonuje to automatycznie jako część dołączania do domeny, ale w niektórych przypadkach musisz zrobić to osobno.

    Aby uzyskać więcej informacji, zobacz jak ręcznie skonfigurować usługę SSSDi skonfigurować NSS do pracy z usługą SSSD.

  3. Sprawdź, czy możesz teraz zbierać informacje o użytkowniku z domeny oraz czy możesz uzyskać bilet Kerberos jako ten użytkownik. W poniższym przykładzie użyto poleceń id, kiniti 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
    

    Jeśli id user\@contoso.com zwróci No such user, upewnij się, że usługa SSSD została uruchomiona pomyślnie, uruchamiając polecenie sudo systemctl status sssd. Jeśli usługa jest uruchomiona i nadal widzisz błąd, spróbuj włączyć szczegółowe rejestrowanie dla usługi SSSD. Aby uzyskać więcej informacji, zobacz dokumentację oprogramowania Red Hat dotyczącą rozwiązywania problemów z usługą SSSD.

    Jeśli kinit user\@CONTOSO.COM zwraca KDC reply didn't match expectations while getting initial credentials, upewnij się, że obszar jest określony dużymi literami.

Aby uzyskać więcej informacji, zobacz dokumentację systemu Red Hat dotyczącą odnajdywania i dołączania do domen tożsamości.

Opcja 2. Korzystanie z narzędzi dostawcy OpenLDAP innych firm

Można użyć narzędzi innych firm, takich jak PBIS, VASlub Centrify. W tym artykule nie opisano kroków poszczególnych narzędzi. Przed kontynuowaniem należy najpierw użyć jednego z tych narzędzi, aby dołączyć hosta systemu Linux dla programu SQL Server do domeny.

Program SQL Server nie używa kodu ani biblioteki integratora innej firmy dla żadnych zapytań związanych z usługą Active Directory. Program SQL Server zawsze wysyła zapytania do usługi Active Directory przy użyciu biblioteki OpenLDAP bezpośrednio w tej konfiguracji. Integratorzy innych firm są używani tylko do dołączania hosta systemu Linux do domeny Active Directory, a SQL Server nie komunikuje się bezpośrednio z tymi narzędziami.

Ważny

Zapoznaj się z zaleceniami dotyczącymi używania opcji konfiguracji mssql-conf network.disablesssd w sekcji Dodatkowe opcje konfiguracji artykułu Używanie uwierzytelniania usługi Active Directory z programem SQL Server w systemie Linux.

Sprawdź, czy /etc/krb5.conf jest poprawnie skonfigurowany. W przypadku większości dostawców usługi Active Directory innych firm ta konfiguracja jest wykonywana automatycznie. Sprawdź jednak /etc/krb5.conf dla następujących wartości, aby zapobiec wszelkim przyszłym problemom:

sudo vi /etc/krb5.conf

Zawartość powinna wyglądać podobnie do poniższego przykładu:

[libdefaults]
default_realm = CONTOSO.COM

[realms]
CONTOSO.COM = {
}

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

Sprawdź, czy odwrotny system DNS jest prawidłowo skonfigurowany

Następujące polecenie powinno zwrócić w pełni kwalifikowaną nazwę domeny (FQDN) hosta z uruchomionym programem SQL Server. Przykładem jest SqlHost.contoso.com.

host <IP address of SQL Server host>

Dane wyjściowe tego polecenia powinny być podobne do <reversed IP address>.in-addr.arpa domain name pointer SqlHost.contoso.com. Jeśli to polecenie nie zwraca FQDN hosta lub jeśli FQDN jest niepoprawne, dodaj odwrotny wpis DNS dla hosta z SQL Serverem na systemie Linux do swojego serwera DNS.

Następny krok

W tym artykule opisano sposób konfigurowania programu SQL Server na maszynie hosta z systemem Linux przy użyciu uwierzytelniania usługi Active Directory. Aby zakończyć konfigurowanie programu SQL Server w systemie Linux w celu obsługi kont usługi Active Directory, postępuj zgodnie z tymi instrukcjami.