Aracılığıyla paylaş


Linux konağındaki SQL Server'ı Active Directory etki alanına ekleme

Şunlar için geçerlidir:Linux üzerinde SQL Server

Bu makalede, BIR SQL Server Linux konak makinesini Active Directory etki alanına ekleme hakkında genel yönergeler sağlanmaktadır. İki yöntem vardır: yerleşik bir SSSD paketi kullanın veya üçüncü taraf Active Directory sağlayıcıları kullanın. Üçüncü taraf etki alanına katılma ürünlerine örnek olarak PowerBroker Identity Services (PBIS), One Identityve Centrifyverilebilir.

Bu kılavuz, Active Directory yapılandırmanızı denetleme adımlarını içerir. Ancak, üçüncü taraf yardımcı programları kullanırken bir makinenin etki alanına nasıl katılacağını gösteren yönergeler sağlamak amaçlanmamıştır.

Not

Active Directory'yi daha yeni Ubuntu, RHEL veya SLES sürümleriyle yapılandırma hakkında bilgi için bkz. Öğretici: Linuxüzerinde SQL Server ile Active Directory kimlik doğrulamasını yapılandırmak için adutil kullanma .

Önkoşullar

Active Directory kimlik doğrulamasını yapılandırmadan önce ağınızda bir Active Directory etki alanı denetleyicisi (Windows) ayarlamanız gerekir. Ardından Linux konağındaki SQL Server'ınızı bir Active Directory etki alanına ekleyin.

Bu makalede açıklanan örnek adımlar yalnızca yönergeler içindir ve Ubuntu 16.04, Red Hat Enterprise Linux (RHEL) 7.x ve SUSE Linux Enterprise Server (SLES) 12 işletim sistemlerine başvurur. Gerçek adımlar, genel ortamınızın nasıl yapılandırıldığına ve işletim sistemi sürümüne bağlı olarak ortamınızda biraz farklılık gösterebilir. Örneğin, Ubuntu 18.04 netplan kullanırken Red Hat Enterprise Linux (RHEL) 8.x ağı yönetmek ve yapılandırmak için diğer araçlar arasında nmcli kullanır. Belirli araçlar, yapılandırma, özelleştirme ve gerekli sorun giderme işlemleri için ortamınız için sistem ve etki alanı yöneticilerinizle etkileşim kurmanız gerekir.

Ters DNS (rDNS)

Windows Server çalıştıran bir bilgisayarı etki alanı denetleyicisi olarak ayarladığınızda, varsayılan olarak bir rDNS bölgeniz olmayabilir. SQL Server'ı çalıştıracak Linux makinesinin hem etki alanı denetleyicisi hem de IP adresi için geçerli bir rDNS bölgesinin mevcut olduğundan emin olun.

Ayrıca etki alanı denetleyicilerinize işaret eden bir PTR kaydının mevcut olduğundan emin olun.

Etki alanı denetleyicisi bağlantısını denetleme

Etki alanının hem kısa hem de tam tanımlı adlarını ve etki alanı denetleyicisinin ana bilgisayar adını kullanarak etki alanı denetleyicisine ulaşabildiğinizi kontrol edin. Etki alanı denetleyicisinin IP'sinin de etki alanı denetleyicisinin FQDN'sine çözümlenmesi gerekir:

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

Bahşiş

Bu öğreticide sırasıyla örnek etki alanı ve bölge adları olarak contoso.com ve CONTOSO.COM kullanılır. Ayrıca, etki alanı denetleyicisinin tam nitelikli etki alanı adı örneği olarak DC1.CONTOSO.COM kullanır. Bu adları kendi değerlerinizle değiştirmeniz gerekir.

Doğru etki alanı adı çözümlemesini sağlamak için, ad denetimleri sırasında herhangi bir tutarsızlık bulunması durumunda /etc/resolv.conf dosyasını güncelleştirmek çok önemlidir. Güncelleştirme yordamı dağıtımlar arasında farklılık gösterir; bu nedenle, doğru rehberlik için resmi belgelere danışmanız önerilir. Aşağıdaki listede bazı dağıtımlar ve bunların temel sürümleri için bağlantılar sağlanır:

Dağıtım Referans makalesi
RHEL 8 /etc/resolv.conf el ile yapılandırma
RHEL 9 /etc/resolv.conf el ile yapılandırma
SLES 15 NETCONFIG_DNS_STATIC_SEARCHLIST ve NETCONFIG_DNS_STATIC_SERVERS ayarları
Ubuntu Ad Çözümlemesi bölümü

Amacınız, alan adı çözümünü kolaylaştırmak için dağıtımınızda /etc/resolv.conf'ı doğru şekilde yapılandırmaktır. Örneğin, alan adınız contoso.com ve Active Directory IP adresiniz 10.0.0.4 ise, ana bilgisayardan başarılı bir ad çözümlemesi sağlamak için /etc/resolv.conf doğru bir şekilde yapılandırılmalıdır.

cat /etc/resolv.conf

Sonuç kümesi aşağıdadır.

# Generated by NetworkManager
search contoso.com com
nameserver 10.0.0.4

RHEL 7.x

  1. Active Directory etki alanınızın etki alanı arama listesinde yer alabilmesi için /etc/sysconfig/network-scripts/ifcfg-eth0 dosyasını düzenleyin. Veya başka bir arabirim yapılandırma dosyasını uygun şekilde düzenleyin:

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

    İçerikler aşağıdaki örneğe benzer görünmelidir:

    PEERDNS=no
    DNS1=<Domain controller IP address>
    DOMAIN="contoso.com com"
    
  2. Bu dosyayı düzenledikten sonra ağ hizmetini yeniden başlatın:

    sudo systemctl restart network
    
  3. Şimdi /etc/resolv.conf dosyanızın aşağıdaki örneğe benzer bir satır içerdiğini denetleyin:

    sudo vi /etc/resolv.conf
    

    İçerikler aşağıdaki örneğe benzer görünmelidir:

    search contoso.com com
    nameserver <Domain controller IP address>
    
  4. Etki alanı denetleyicisine hâlâ ping gönderemiyorsanız, denetleyicinin tam etki alanı adını ve IP adresini bulun. Örnek etki alanı adı DC1.CONTOSO.COM. Aşağıdaki girdiyi /etc/hosts'a ekleyin:

    sudo vi /etc/hosts
    

    İçerikler aşağıdaki örneğe benzer görünmelidir:

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

Active Directory etki alanına katılma

Temel yapılandırma ve etki alanı denetleyicisiyle bağlantı doğrulandıktan sonra, bir SQL Server Linux makineyi Active Directory etki alanı denetleyicisiyle birleştirmek için iki seçenek vardır.

1. Seçenek: Active Directory etki alanına katılmak için SSSD paketini kullanma

Bu yöntem, realmd ve sssd paketlerini kullanarak SQL Server ana bilgisayarını bir Active Directory etki alanı alanına ekler.

Bu, Bir Linux ana bilgisayarını Active Directory etki alanı denetleyicisine eklemek için tercih edilen yöntemdir.

En güncel yönergeler için dağıtım ortakları tarafından sağlanan resmi belgelere bakın.

Dağıtım Referans makalesi
RHEL 8 SSSD kullanarak AD Etki Alanı'nı keşfetme ve katılma
RHEL 9 SSSD kullanarak AD Etki Alanı'nı keşfetme ve katılma
SLES Windows etki alanı üyeliğini kullanarak Active Directory'ye katılma
Ubuntu Active Directory ile SSSD'yi ayarlama

Bir SQL Server konasını Active Directory etki alanına eklemek için aşağıdaki adımları kullanın:

  1. Ana makinenizi Active Directory Etki Alanınıza eklemek için realmd kullanın. Öncelikle Linux dağıtımınızın paket yöneticisini kullanarak SQL Server konak makinesine hem bölge hem de Kerberos istemci paketlerini yüklemeniz gerekir:

    RHEL:

    sudo yum install realmd krb5-workstation
    

  1. Kerberos istemci paketi yüklemesi sizden bölge adı isterse, etki alanı adınızı büyük harfle girin.

  2. DNS'nizin düzgün yapılandırıldığını onayladıktan sonra aşağıdaki komutu çalıştırarak etki alanına katılın. Etki alanına yeni bir makine eklemek için Active Directory'de yeterli ayrıcalıklara sahip bir Active Directory hesabı kullanarak kimlik doğrulaması yapmanız gerekir. Bu komut Active Directory'de yeni bir bilgisayar hesabı oluşturur, /etc/krb5.keytab ana bilgisayar anahtar sekmesi dosyasını oluşturur, etki alanını /etc/sssd/sssd.confiçinde yapılandırır ve /etc/krb5.conf'yi günceller.

    realmd ile ilgili bir sorun nedeniyle, önce makine ana bilgisayar adını makine adı yerine tamamen belirlenmiş etki alanı adı (FQDN) olarak ayarlayın. Aksi takdirde, bölge makine için gerekli tüm SPN'leri oluşturmayabilir ve etki alanı denetleyiciniz dinamik DNS güncelleştirmelerini desteklese bile DNS girişleri otomatik olarak güncelleştirilmeyebilir.

    sudo hostname <old hostname>.contoso.com
    

    Bu komutu çalıştırdıktan sonra, /etc/hostname dosyanız <old hostname>.contoso.comiçermelidir.

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

    Successfully enrolled machine in realmiletisini görmeniz gerekir.

    Aşağıdaki tabloda, alabileceğiniz bazı hata iletileri ve bunların çözümüyle ilgili öneriler listelenmektedir:

    Hata mesajı Tavsiye
    Necessary packages are not installed Bölge birleştirme komutunu yeniden çalıştırmadan önce Linux dağıtımınızın paket yöneticisini kullanarak bu paketleri yükleyin.
    Insufficient permissions to join the domain Bir etki alanı yöneticisine Linux makinelerini etki alanınıza eklemek için yeterli izinlere sahip olup olmadığınızı denetleyin.
    KDC reply did not match expectations Kullanıcı için doğru bölge adını belirtmemiş olabilirsiniz. Bölge adları büyük/küçük harfe duyarlıdır, genellikle büyük harfle yazılır ve "realm discover contoso.com" komutuyla tanımlanabilir.

    SQL Server, kullanıcı hesaplarını ve gruplarını güvenlik tanımlayıcılarıyla (SID) eşlemek için SSSD ve NSS kullanır. Active Directory oturum açma bilgilerinin başarıyla oluşturulabilmesi için SQL Server için SSSD'nin yapılandırılması ve çalıştırılması gerekir. realmd bunu genellikle etki alanına katılırken otomatik olarak yapar, ancak bazı durumlarda bunu ayrıca yapmanız gerekir.

    Daha fazla bilgi için bkz. SSSD'yiel ile yapılandırma ve NSS'yi SSSDile çalışacak şekilde yapılandırma.

  3. Artık etki alanından bir kullanıcı hakkında bilgi toplayabileceğinizi ve bu kullanıcı olarak bir Kerberos bileti edinebileceğinizi doğrulayın. Aşağıdaki örnekte, bunun için kimlik, kinitve klist komutları kullanılır.

    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 döndürürse No such usersudo systemctl status sssdkomutunu çalıştırarak SSSD hizmetinin başarıyla başlatıldığından emin olun. Hizmet çalışıyorsa ve hata almaya devam ediyorsanız, SSSD için ayrıntılı günlük kaydını etkinleştirmeyi deneyin. Daha fazla bilgi için Sorun Giderme SSSDiçin Red Hat belgelerine bakın.

    kinit user\@CONTOSO.COM döndürürse KDC reply didn't match expectations while getting initial credentials, alanı büyük harfle belirttiğinizden emin olun.

Daha fazla bilgi için Kimlik Etki Alanlarını Bulma ve Birleştirmeiçin Red Hat belgelerine bakın.

Seçenek 2: Üçüncü taraf OpenLDAP sağlayıcı yardımcı programlarını kullanma

PBIS, VASveya Centrifygibi üçüncü taraf yardımcı programlarını kullanabilirsiniz. Bu makale, her bir yardımcı program için adımları kapsamaz. Öncelikle, devam etmeden önce, Linux ana bilgisayarını SQL Server için etki alanına katmak amacıyla bu yardımcı programlardan birini kullanmalısınız.

SQL Server, Active Directory ile ilgili sorgular için üçüncü taraf tümleştirici kodunu veya kitaplığını kullanmaz. SQL Server her zaman doğrudan bu kurulumda OpenLDAP kitaplık çağrılarını kullanarak Active Directory'i sorgular. Üçüncü taraf tümleştiriciler yalnızca Linux ana bilgisayarını Active Directory etki alanına eklemek için kullanılır ve SQL Server'ın bu yardımcı programlarla doğrudan bir iletişimi yoktur.

Önemli

Linuxüzerinde SQL Server ile Active Directory kimlik doğrulamasını kullanma makalenin Ek yapılandırma seçenekleri bölümündeki yapılandırma seçeneğini kullanma önerilerine bakın.

/etc/krb5.conf'ın doğru yapılandırıldığını doğrulayın. Çoğu üçüncü taraf Active Directory sağlayıcısı için bu yapılandırma otomatik olarak gerçekleştirilir. Ancak, gelecekteki sorunları önlemek için /etc/krb5.conf aşağıdaki değerleri denetleyin:

sudo vi /etc/krb5.conf

İçerikler aşağıdaki örneğe benzer görünmelidir:

[libdefaults]
default_realm = CONTOSO.COM

[realms]
CONTOSO.COM = {
}

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

Ters DNS'nin düzgün yapılandırıldığından emin olun

Aşağıdaki komut, SQL Server çalıştıran sunucunun tam etki alanı adını (FQDN) döndürmelidir. Örneğin SqlHost.contoso.com.

host <IP address of SQL Server host>

Bu komutun çıktısı <reversed IP address>.in-addr.arpa domain name pointer SqlHost.contoso.combenzer olmalıdır. Bu komut ana bilgisayarınızın FQDN'sini döndürmezse veya FQDN yanlışsa, DNS sunucunuza Linux ana bilgisayar üzerinde SQL Server'ınız için ters DNS girdisi ekleyin.

Sonraki adım

Bu makalede, Active Directory Kimlik Doğrulaması ile Linux konak makinesinde SQL Server yapılandırmayı ele aldık. Linux üzerinde SQL Server'ı Active Directory hesaplarını destekleyecek şekilde yapılandırmayı tamamlamak için bu yönergeleri izleyin.