Bagikan melalui


Bergabung dengan SQL Server pada host Linux ke domain Direktori Aktif

Berlaku untuk:SQL Server - Linux

Artikel ini menyediakan panduan umum tentang cara menggabungkan komputer host SQL Server Linux ke domain Direktori Aktif. Ada dua metode: gunakan paket SSSD bawaan atau gunakan penyedia Direktori Aktif pihak ketiga. Contoh produk gabungan domain pihak ketiga adalah PowerBroker Identity Services (PBIS), One Identity, dan Centrify. Panduan ini mencakup langkah-langkah untuk memeriksa konfigurasi Direktori Aktif Anda. Namun, tidak dimaksudkan untuk memberikan instruksi tentang cara bergabung dengan komputer ke domain saat menggunakan utilitas pihak ketiga.

Prasyarat

Sebelum mengonfigurasi autentikasi Direktori Aktif, Anda perlu menyiapkan pengendali domain Active Directory, Windows, di jaringan Anda. Kemudian gabungkan SQL Server Anda di host Linux ke domain Direktori Aktif.

Langkah-langkah sampel yang dijelaskan dalam artikel ini hanya untuk panduan dan merujuk ke sistem operasi Ubuntu 16.04, Red Hat Enterprise Linux (RHEL) 7.x dan SUSE Linux Enterprise Server (SLES) 12. Langkah-langkah aktual mungkin sedikit berbeda di lingkungan Anda tergantung pada bagaimana lingkungan Keseluruhan Anda dikonfigurasi dan versi sistem operasi. Misalnya, Ubuntu 18.04 menggunakan netplan sementara Red Hat Enterprise Linux (RHEL) 8.x menggunakan nmcli di antara alat lain untuk mengelola dan mengonfigurasi jaringan. Disarankan untuk melibatkan administrator sistem dan domain Anda untuk lingkungan Anda untuk alat, konfigurasi, penyesuaian, dan pemecahan masalah tertentu yang diperlukan.

Catatan

Untuk informasi tentang mengonfigurasi Direktori Aktif dengan versi Ubuntu, RHEL, atau SLES yang lebih baru, lihat Tutorial: Menggunakan adutil untuk mengonfigurasi autentikasi Direktori Aktif dengan SQL Server di Linux.

Reverse DNS (rDNS)

Ketika Anda menyiapkan komputer yang menjalankan Windows Server sebagai pengendali domain, Anda mungkin tidak memiliki zona rDNS secara default. Pastikan bahwa zona rDNS yang berlaku ada untuk pengontrol domain dan alamat IP komputer Linux yang akan menjalankan SQL Server.

Pastikan juga bahwa catatan PTR yang menunjuk ke pengendali domain Anda ada.

Memeriksa koneksi ke pengendali domain

Periksa apakah Anda dapat menghubungi pengendali domain dengan menggunakan nama domain yang pendek dan sepenuhnya memenuhi syarat, dan dengan menggunakan nama host pengendali domain. IP pengendali domain juga harus diselesaikan ke FQDN pengontrol domain:

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

Tip

Tutorial ini menggunakan contoso.com dan CONTOSO.COM sebagai contoh nama domain dan realm, masing-masing. Ini juga menggunakan DC1.CONTOSO.COM sebagai contoh nama domain yang sepenuhnya memenuhi syarat dari pengendali domain. Anda harus mengganti nama-nama ini dengan nilai Anda sendiri.

Jika salah satu pemeriksaan nama ini gagal, perbarui daftar pencarian domain Anda. Bagian berikut memberikan instruksi untuk Ubuntu, Red Hat Enterprise Linux (RHEL), dan SUSE Linux Enterprise Server (SLES) masing-masing.

Ubuntu 16.04

  1. /etc/network/interfaces Edit file, sehingga domain Direktori Aktif Anda berada di daftar pencarian domain:

    # The primary network interface
    auto eth0
    iface eth0 inet dhcp
    dns-nameservers <Domain controller IP address>
    dns-search <Active Directory domain name>
    

    Catatan

    Antarmuka jaringan, eth0, mungkin berbeda untuk komputer yang berbeda. Untuk mengetahui mana yang Anda gunakan, jalankan ifconfig. Kemudian salin antarmuka yang memiliki alamat IP dan dikirimkan dan diterima byte.

  2. Setelah mengedit file ini, mulai ulang layanan jaringan:

    sudo ifdown eth0 && sudo ifup eth0
    
  3. Selanjutnya, periksa apakah file Anda /etc/resolv.conf berisi baris seperti contoh berikut:

    search contoso.com com
    nameserver <Domain controller IP address>
    

Ubuntu 18.04

  1. Edit file [sudo vi /etc/netplan/******.yaml], sehingga domain Direktori Aktif Anda berada di daftar pencarian domain:

    network:
      ethernets:
        eth0:
                dhcp4: true
    
                dhcp6: true
                nameservers:
                        addresses: [<Domain controller IP address>]
                        search: [<Active Directory domain name>]
      version: 2
    

    Catatan

    Antarmuka jaringan, eth0, mungkin berbeda untuk komputer yang berbeda. Untuk mengetahui mana yang Anda gunakan, jalankan ifconfig. Kemudian salin antarmuka yang memiliki alamat IP dan dikirimkan dan diterima byte.

  2. Setelah mengedit file ini, mulai ulang layanan jaringan:

    sudo netplan apply
    
  3. Selanjutnya, periksa apakah file Anda /etc/resolv.conf berisi baris seperti contoh berikut:

    search contoso.com com
    nameserver <Domain controller IP address>
    

RHEL 7.x

  1. /etc/sysconfig/network-scripts/ifcfg-eth0 Edit file, sehingga domain Direktori Aktif Anda berada di daftar pencarian domain. Atau edit file konfigurasi antarmuka lain yang sesuai:

    PEERDNS=no
    DNS1=<Domain controller IP address>
    DOMAIN="contoso.com com"
    
  2. Setelah mengedit file ini, mulai ulang layanan jaringan:

    sudo systemctl restart network
    
  3. Sekarang periksa apakah file Anda /etc/resolv.conf berisi baris seperti contoh berikut:

    search contoso.com com
    nameserver <Domain controller IP address>
    
  4. Jika Anda masih tidak dapat melakukan ping pada pengendali domain, temukan nama domain dan alamat IP pengontrol domain yang sepenuhnya memenuhi syarat. Contoh nama domain adalah DC1.CONTOSO.COM. Tambahkan entri berikut ke /etc/hosts:

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

SLES 12

  1. /etc/sysconfig/network/config Edit file, sehingga IP pengendali domain Anda digunakan untuk kueri DNS dan domain Direktori Aktif Anda berada di daftar pencarian domain:

    NETCONFIG_DNS_STATIC_SEARCHLIST=""
    NETCONFIG_DNS_STATIC_SERVERS="<Domain controller IP address>"
    
  2. Setelah mengedit file ini, mulai ulang layanan jaringan:

    sudo systemctl restart network
    
  3. Selanjutnya, periksa apakah file Anda /etc/resolv.conf berisi baris seperti contoh berikut:

    search contoso.com com
    nameserver <Domain controller IP address>
    

Bergabung ke domain Direktori Aktif

Setelah konfigurasi dasar dan konektivitas dengan pengendali domain diverifikasi, ada dua opsi untuk bergabung dengan komputer host Linux SQL Server dengan pengontrol domain Direktori Aktif:

Opsi 1: Gunakan paket SSSD untuk bergabung dengan domain Direktori Aktif

Metode ini menggabungkan host SQL Server ke domain Direktori Aktif menggunakan paket realmd dan sssd .

Catatan

Ini adalah metode yang disukai untuk bergabung dengan host Linux ke pengontrol domain Direktori Aktif.

Gunakan langkah-langkah berikut untuk menggabungkan host SQL Server ke domain Direktori Aktif:

  1. Gunakan realmd untuk menggabungkan komputer host Anda ke Domain Direktori Aktif Anda. Anda harus terlebih dahulu menginstal paket klien realmd dan Kerberos pada komputer host SQL Server menggunakan manajer paket distribusi Linux Anda:

    RHEL:

    sudo yum install realmd krb5-workstation
    

    SLES 12:

    Langkah-langkah ini khusus untuk 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
    
  2. Jika penginstalan paket klien Kerberos meminta nama realm, masukkan nama domain Anda dalam huruf besar.

  3. Setelah Anda mengonfirmasi bahwa DNS Anda dikonfigurasi dengan benar, gabungkan domain dengan menjalankan perintah berikut. Anda harus mengautentikasi menggunakan akun Direktori Aktif yang memiliki hak istimewa yang memadai di Direktori Aktif untuk bergabung dengan komputer baru ke domain. Perintah ini membuat akun komputer baru di Direktori Aktif, membuat /etc/krb5.keytab file keytab host, mengonfigurasi domain di /etc/sssd/sssd.conf, dan memperbarui /etc/krb5.conf.

    Karena masalah dengan realmd, pertama-tama atur nama host komputer ke FQDN alih-alih ke nama komputer. Jika tidak, realmd mungkin tidak membuat semua SPN yang diperlukan untuk komputer dan entri DNS tidak akan diperbarui secara otomatis, bahkan jika pengendali domain Anda mendukung pembaruan DNS dinamis.

    sudo hostname <old hostname>.contoso.com
    

    Setelah menjalankan perintah di atas, file /etc/hostname Anda harus berisi <hostname.contoso.com> lama.

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

    Anda akan melihat pesan, Successfully enrolled machine in realm.

    Tabel berikut ini mencantumkan beberapa pesan kesalahan yang bisa Anda terima dan saran untuk menyelesaikannya:

    Pesan kesalahan Rekomendasi
    Necessary packages are not installed Instal paket tersebut menggunakan manajer paket distribusi Linux Anda sebelum menjalankan perintah realm join lagi.
    Insufficient permissions to join the domain Tanyakan kepada administrator domain bahwa Anda memiliki izin yang memadai untuk bergabung dengan komputer Linux ke domain Anda.
    KDC reply did not match expectations Anda mungkin belum menentukan nama realm yang benar untuk pengguna. Nama realm peka huruf besar/kecil, biasanya huruf besar, dan dapat diidentifikasi dengan realm perintah yang ditemukan contoso.com.

    SQL Server menggunakan SSSD dan NSS untuk memetakan akun pengguna dan grup ke pengidentifikasi keamanan (SID). SSSD harus dikonfigurasi dan berjalan untuk SQL Server agar berhasil membuat login Direktori Aktif. realmd biasanya melakukan ini secara otomatis sebagai bagian dari bergabung dengan domain, tetapi dalam beberapa kasus, Anda harus melakukan ini secara terpisah.

    Untuk informasi selengkapnya, lihat cara mengonfigurasi SSSD secara manual, dan mengonfigurasi NSS untuk bekerja dengan SSSD.

  4. Verifikasi bahwa Anda sekarang dapat mengumpulkan informasi tentang pengguna dari domain, dan bahwa Anda dapat memperoleh tiket Kerberos sebagai pengguna tersebut. Contoh berikut menggunakan perintah id, kinit, dan klist untuk ini.

    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
    

    Catatan

    Jika id user\@contoso.com mengembalikan, No such user, pastikan bahwa layanan SSSD berhasil dimulai dengan menjalankan perintah sudo systemctl status sssd. Jika layanan berjalan dan Anda masih melihat kesalahan, coba aktifkan pengelogan verbose untuk SSSD. Untuk informasi selengkapnya, lihat dokumentasi Red Hat untuk Pemecahan Masalah SSSD.

    Jika kinit user\@CONTOSO.COM mengembalikan, KDC reply didn't match expectations while getting initial credentials, pastikan Anda menentukan realm dalam huruf besar.

Untuk informasi selengkapnya, lihat dokumentasi Red Hat untuk Menemukan dan Bergabung dengan Domain Identitas.

Opsi 2: Gunakan utilitas penyedia OpenLDAP pihak ketiga

Anda dapat menggunakan utilitas pihak ketiga seperti PBIS, VAS, atau Centrify. Artikel ini tidak mencakup langkah-langkah untuk setiap utilitas individu. Anda harus terlebih dahulu menggunakan salah satu utilitas ini untuk bergabung dengan host Linux untuk SQL Server ke domain sebelum melanjutkan.

SQL Server tidak menggunakan kode atau pustaka integrator pihak ketiga untuk kueri terkait Direktori Aktif apa pun. SQL Server selalu meminta Direktori Aktif menggunakan panggilan pustaka OpenLDAP langsung dalam penyiapan ini. Integrator pihak ketiga hanya digunakan untuk bergabung dengan host Linux ke domain Direktori Aktif, dan SQL Server tidak memiliki komunikasi langsung dengan utilitas ini.

Penting

Silakan lihat rekomendasi untuk menggunakan opsi konfigurasi mssql-confnetwork.disablesssd di bagian Opsi konfigurasi tambahan di artikel Menggunakan autentikasi Direktori Aktif dengan SQL Server di Linux.

Verifikasi bahwa Anda /etc/krb5.conf dikonfigurasi dengan benar. Untuk sebagian besar penyedia Direktori Aktif pihak ketiga, konfigurasi ini dilakukan secara otomatis. Namun, periksa /etc/krb5.conf nilai berikut untuk mencegah masalah di masa mendatang:

[libdefaults]
default_realm = CONTOSO.COM

[realms]
CONTOSO.COM = {
}

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

Periksa apakah DNS terbalik dikonfigurasi dengan benar

Perintah berikut harus mengembalikan nama domain yang sepenuhnya memenuhi syarat (FQDN) dari host yang menjalankan SQL Server. Contohnya SqlHost.contoso.com.

host <IP address of SQL Server host>

Output perintah ini harus mirip <reversed IP address>.in-addr.arpa domain name pointer SqlHost.contoso.comdengan . Jika perintah ini tidak mengembalikan FQDN host Anda, atau jika FQDN salah, tambahkan entri DNS terbalik untuk SQL Server Anda di host Linux ke server DNS Anda.

Langkah selanjutnya

Dalam artikel ini, Anda membahas cara mengonfigurasi SQL Server pada komputer host Linux dengan Autentikasi Direktori Aktif. Untuk menyelesaikan konfigurasi SQL Server di Linux untuk mendukung akun Direktori Aktif, ikuti instruksi berikut.