Samba DC sebagai pengontrol kedua di domain AD Windows 2012R2 dan folder roaming untuk klien di Windows dan Linux

gambar

Kesadaran bahwa saya berada dalam campuran impor tidak segera datang. Hanya ketika pasokan baru PC mulai tiba secara stabil dari organisasi induk dengan distribusi Alt Linux di papan, saya menduga ada sesuatu yang salah.

Namun, dalam proses melewati tahap-tahap menerima yang tak terhindarkan, saya terlibat dan bahkan mulai sedikit menikmati prosesnya. Dan pada titik tertentu saya berpikir bahwa, pada kecepatan seperti itu, cepat atau lambat saya harus menyerahkan keputusan untuk mengatur layanan direktori Microsoft dan bergerak ke arah sesuatu yang lebih eksotis. Oleh karena itu, untuk mempersiapkan di muka untuk hal yang tak terhindarkan, dan jika mungkin untuk menangkap lebih banyak jebakan, diputuskan untuk memasang bangku tes, yang meliputi:

  • DC1 - Windows Server 2012R2
  • DC2 - Alt Server 8.2
  • File Server - Windows Server 2012R2
  • PC1 - Windows 7
  • PC2 - Alt Workstation 8.2

Tugas berdiri:


  1. Menyebarkan domain berdasarkan w2k12r2. Buat sekumpulan kebijakan grup minimal (mirip dengan yang digunakan dalam infrastruktur kerja), termasuk kebijakan untuk mentransfer folder kerja pengguna (Unduhan / Dokumen / Desktop). Pada akhirnya, saya ingin bahwa ketika pengguna mengubah tempat kerjanya dari Windows ke Linux dan sebaliknya, ia memiliki akses yang nyaman ke dokumen kerjanya.
  2. Memasuki Samba DC oleh pengontrol kedua. Memeriksa Layanan Direktori dan Replikasi DNS
  3. Mengkonfigurasi Klien Linux dengan Folder Roaming

Implementasi:


  1. Instal dan masukkan pengontrol baru

    Dengan instalasi MS Windows 2012R2, semuanya sederhana dan kurang jelas. Di Internet ada 1001 manual untuk menggelar domain di Windows menggunakan GUI dan Powershell, jadi saya tidak akan mengulanginya lagi, saya hanya akan membiarkan tautan mati. dokumentasi untuk yang penasaran dan mereka yang ingin menyegarkan ingatan mereka.

    Namun, ada satu poin penting dalam paragraf ini. Sampai saat ini, Samba tidak dapat bekerja dengan skema katalog di atas 2008R2.

    Judul spoiler
    Sebaliknya, pengembang dukungan ini dinyatakan sebagai eksperimental. Namun dalam praktiknya, upaya untuk memasukkan samba sebagai DC kedua ke domain Windows yang ada dengan skema 69 akan menemui Anda dengan kesalahan berikut
    DsAddEntry gagal dengan status WERR_ACCESS_DENIED info (8567, 'WERR_DS_INCOMPATIBLE_VERSION')


    Masalahnya adalah bahwa Windows 2012 dan 2012R2 menggunakan alat WMI untuk bekerja dengan domain dan hutan, dukungan stabil yang diumumkan hanya untuk Samba versi 4.11, yang akan keluar sebelum akhir tahun ini.
    Oleh karena itu, satu-satunya pilihan untuk memperkenalkan samba ke domain AD yang digunakan pada server 2012R2 adalah menurunkan skema dari 69 menjadi 47. Tentu saja, ini tidak diperlukan pada infrastruktur kerja tanpa alasan yang baik, tetapi kami memiliki bangku uji di sini, jadi mengapa sebenarnya tidak.

    Kami menempatkan Alt Server 8.2. Selama instalasi, pilih profil "Samba-DC Server (Pengontrol AD)." Di server yang digunakan, kami membuat pembaruan sistem yang lengkap dan menginstal paket task-samba-dc, yang akan menarik semua yang Anda butuhkan

    # apt-get install task-samba-dc 

    Jika task-samba-dc tiba-tiba, bertentangan dengan jaminan dokumentasi, Alta menolak untuk menginstal semua yang diperlukan.
     # apt-get install python-module-samba-DC samba-DC-common samba-DC-winbind-clients samba-DC-winbind samba-DC-common-libs libpytalloc-devel 


    Selanjutnya, lanjutkan untuk mengonfigurasi Kerberos dan menerima tiket. Buka file krb5.conf, buka bagian [libdefaults], dan bawa ke formulir berikut:

     # vim /etc/krb5.conf 

      dns_lookup_kdc = true dns_lookup_realm = true default_realm = TEST.LOCAL 

    Minta tiket

     # kinit administrator Password for administrator@TEST.LOCAL: 

    Memeriksa daftar tiket Kerberos yang diterima

     # klist Ticket cache: KEYRING:persistent:0:0 Default principal: administrator@TEST.LOCAL Valid starting Expires Service principal 16.05.2019 11:51:38 16.05.2019 21:51:38 krbtgt/TEST.LOCAL@TEST.LOCAL renew until 23.05.2019 11:51:35 

    Sekarang hapus atau ganti nama konfigurasi samba yang ada.

     # mv smb.conf smb.conf.bak1 

    Akhirnya, kita masukkan pengontrol kedua ke domain AD:

     # samba-tool domain join test.local DC -U"TEST\administrator" 

    Entri yang berhasil akan diikuti oleh log berikut
     Finding a writeable DC for domain 'test.local' Found DC DC1.TEST.LOCAL Password for [TEST\administrator]: Reconnecting to naming master e31d7da6-8f56-4420-8473-80f2b3a31338._msdcs.TEST. LOCAL DNS name of new naming master is DC1.TEST.LOCAL workgroup is TEST realm is TEST.LOCAL Adding CN=DC2,OU=Domain Controllers,DC=TEST,DC=LOCAL Adding CN=DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC =TEST,DC=LOCAL Adding CN=NTDS Settings,CN=DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN =Configuration,DC=TEST,DC=LOCAL Adding SPNs to CN=DC2,OU=Domain Controllers,DC=TEST,DC=LOCAL Setting account password for DC2$ Enabling account Calling bare provision Looking up IPv4 addresses Looking up IPv6 addresses No IPv6 address will be assigned Setting up share.ldb Setting up secrets.ldb Setting up the registry Setting up the privileges database Setting up idmap db Setting up SAM db Setting up sam.ldb partitions and settings Setting up sam.ldb rootDSE Pre-loading the Samba 4 and AD schema A Kerberos configuration suitable for Samba AD has been generated at /var/lib/sa mba/private/krb5.conf Provision OK for domain DN DC=TEST,DC=LOCAL Starting replication Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] objects[402/1426] linked _values[0/0] Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] objects[804/1426] linked _values[0/0] Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] objects[1206/1426] linke d_values[0/0] Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] objects[1608/1426] linke d_values[0/0] Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] objects[1743/1426] linke d_values[0/0] Analyze and apply schema objects Partition[CN=Configuration,DC=TEST,DC=LOCAL] objects[402/2240] linked_values[0/ 24] Partition[CN=Configuration,DC=TEST,DC=LOCAL] objects[804/2240] linked_values[0/ 24] Partition[CN=Configuration,DC=TEST,DC=LOCAL] objects[1206/2240] linked_values[0 /24] Partition[CN=Configuration,DC=TEST,DC=LOCAL] objects[1608/2240] linked_values[0 /24] Partition[CN=Configuration,DC=TEST,DC=LOCAL] objects[1772/2240] linked_values[2 4/24] Replicating critical objects from the base DN of the domain Partition[DC=TEST,DC=LOCAL] objects[109/110] linked_values[26/29] Partition[DC=TEST,DC=LOCAL] objects[394/5008] linked_values[29/29] Done with always replicated NC (base, config, schema) Replicating DC=DomainDnsZones,DC=TEST,DC=LOCAL Partition[DC=DomainDnsZones,DC=TEST,DC=LOCAL] objects[42/42] linked_values[0/0] Replicating DC=ForestDnsZones,DC=TEST,DC=LOCAL Partition[DC=ForestDnsZones,DC=TEST,DC=LOCAL] objects[20/20] linked_values[0/0] Exop on[CN=RID Manager$,CN=System,DC=TEST,DC=LOCAL] objects[3] linked_values[0] Committing SAM database Adding 1 remote DNS records for DC2.TEST.LOCAL Adding DNS A record DC2.TEST.LOCAL for IPv4 IP: 192.168.90.201 Adding DNS CNAME record 6ff1df40-cbb5-41f0-b7b3-53a27dde8edf._msdcs.TEST.LOCAL for DC2.TEST.LOCAL All other DNS records (like _ldap SRV records) will be created samba_dnsupdate on first startup Replicating new DNS records in DC=DomainDnsZones,DC=TEST,DC=LOCAL Partition[DC=DomainDnsZones,DC=TEST,DC=LOCAL] objects[1/42] linked_values[0/0] Replicating new DNS records in DC=ForestDnsZones,DC=TEST,DC=LOCAL Partition[DC=ForestDnsZones,DC=TEST,DC=LOCAL] objects[1/20] linked_values[0/0] Sending DsReplicaUpdateRefs for all the replicated partitions Setting isSynchronized and dsServiceName Setting up secrets database Joined domain TEST (SID S-1-5-21-3959064270-1572045903-2556826204) as a DC 


    Catatan tentang DC baru di domain TEST.LOCAL akan muncul di snap-in ADUC, dan catatan A baru yang sesuai dengan DC2 akan muncul di manajer DNS.
  2. Replikasi antar pengontrol

    Untuk memulai, periksa Layanan Replikasi Direktori (DRS)

     # samba-tool drs showrepl 

    Semua upaya replikasi dalam output harus berhasil. Dalam daftar objek KCC, dalam 15 menit setelah masuk, DC1 kami pada Windows akan muncul
     Default-First-Site-Name\DC2 DSA Options: 0x00000001 DSA object GUID: 0e9f5bce-ff59-401e-bdbd-fc69df3fc6bf DSA invocationId: 017997b5-d718-41d7-a3f3-e57ab5151b5c ==== INBOUND NEIGHBORS ==== DC=ForestDnsZones,DC=test,DC=local Default-First-Site-Name\DC1 via RPC DSA object GUID: 60fb339d-efa3-4585-a42d-04974e6601b7 Last attempt @ Mon May 27 12:56:31 2019 MSK was successful 0 consecutive failure(s). Last success @ Mon May 27 12:56:31 2019 MSK DC=DomainDnsZones,DC=test,DC=local Default-First-Site-Name\DC1 via RPC DSA object GUID: 60fb339d-efa3-4585-a42d-04974e6601b7 Last attempt @ Mon May 27 12:56:32 2019 MSK was successful 0 consecutive failure(s). Last success @ Mon May 27 12:56:32 2019 MSK CN=Schema,CN=Configuration,DC=test,DC=local Default-First-Site-Name\DC1 via RPC DSA object GUID: 60fb339d-efa3-4585-a42d-04974e6601b7 Last attempt @ Mon May 27 12:56:32 2019 MSK was successful 0 consecutive failure(s). Last success @ Mon May 27 12:56:32 2019 MSK DC=test,DC=local Default-First-Site-Name\DC1 via RPC DSA object GUID: 60fb339d-efa3-4585-a42d-04974e6601b7 Last attempt @ Mon May 27 12:56:32 2019 MSK was successful 0 consecutive failure(s). Last success @ Mon May 27 12:56:32 2019 MSK CN=Configuration,DC=test,DC=local Default-First-Site-Name\DC1 via RPC DSA object GUID: 60fb339d-efa3-4585-a42d-04974e6601b7 Last attempt @ Mon May 27 12:56:33 2019 MSK was successful 0 consecutive failure(s). Last success @ Mon May 27 12:56:33 2019 MSK ==== OUTBOUND NEIGHBORS ==== DC=ForestDnsZones,DC=test,DC=local Default-First-Site-Name\DC1 via RPC DSA object GUID: 60fb339d-efa3-4585-a42d-04974e6601b7 Last attempt @ Thu May 23 16:40:03 2019 MSK was successful 0 consecutive failure(s). Last success @ Thu May 23 16:40:03 2019 MSK DC=DomainDnsZones,DC=test,DC=local Default-First-Site-Name\DC1 via RPC DSA object GUID: 60fb339d-efa3-4585-a42d-04974e6601b7 Last attempt @ Thu May 23 16:40:03 2019 MSK was successful 0 consecutive failure(s). Last success @ Thu May 23 16:40:03 2019 MSK CN=Schema,CN=Configuration,DC=test,DC=local Default-First-Site-Name\DC1 via RPC DSA object GUID: 60fb339d-efa3-4585-a42d-04974e6601b7 Last attempt @ Thu May 23 16:40:08 2019 MSK was successful 0 consecutive failure(s). Last success @ Thu May 23 16:40:08 2019 MSK DC=test,DC=local Default-First-Site-Name\DC1 via RPC DSA object GUID: 60fb339d-efa3-4585-a42d-04974e6601b7 Last attempt @ Thu May 23 16:40:08 2019 MSK was successful 0 consecutive failure(s). Last success @ Thu May 23 16:40:08 2019 MSK CN=Configuration,DC=test,DC=local Default-First-Site-Name\DC1 via RPC DSA object GUID: 60fb339d-efa3-4585-a42d-04974e6601b7 Last attempt @ Mon May 27 12:12:17 2019 MSK was successful 0 consecutive failure(s). Last success @ Mon May 27 12:12:17 2019 MSK ==== KCC CONNECTION OBJECTS ==== Connection -- Connection name: 6d2652b3-e723-4af7-a19f-1ee48915753c Enabled : TRUE Server DNS name : DC1.test.local Server DN name : CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=local TransportType: RPC options: 0x00000001 Warning: No NC replicated for Connection! 


    Peringatan "Tidak ada NC yang direplikasi untuk Koneksi!" dapat diabaikan dengan aman. Tampaknya karena fakta bahwa ketika mendaftarkan DC baru, samba salah mengatur beberapa flag replikasi.

    Memeriksa replikasi LDAP juga merupakan ide bagus.

     # samba-tool ldapcmp ldap://dc1.test.local ldap://dc2.test.local -Uadministrator 

    Perintah di atas akan membandingkan nilai atribut dari objek seluruh direktori pada DC1 dan DC2.

    Contoh Replikasi yang Berhasil
     * Comparing [DOMAIN] context... * Objects to be compared: 249 * Result for [DOMAIN]: SUCCESS * Comparing [CONFIGURATION] context... * Objects to be compared: 1750 * Result for [CONFIGURATION]: SUCCESS * Comparing [SCHEMA] context... * Objects to be compared: 1739 * Result for [SCHEMA]: SUCCESS * Comparing [DNSDOMAIN] context... * Objects to be compared: 42 * Result for [DNSDOMAIN]: SUCCESS * Comparing [DNSFOREST] context... * Objects to be compared: 20 * Result for [DNSFOREST]: SUCCESS 

    Dalam beberapa kasus, atribut objek pada pengontrol yang berbeda mungkin berbeda, dan output dari perintah akan memberi tahu Anda tentang hal itu. Tetapi tidak dalam semua kasus ini akan menjadi tanda masalah replikasi.

    Langkah selanjutnya adalah mengkonfigurasi secara manual replikasi direktori SysVol yang stabil.
    Faktanya adalah samba belum mendukung DFS-R, karena tidak mendukung FRS sebelumnya. Oleh karena itu, untuk replikasi antara DC Samba dan Windows, satu-satunya solusi yang bekerja saat ini adalah replikasi satu arah menggunakan utilitas Robocopy dari Windows Server 2003 Resource Kit Tools .

    Untuk menghindari masalah kompatibilitas, pengembang samba merekomendasikan agar Anda menginstal kit utilitas terlebih dahulu pada workstation biasa, dan kemudian menyalin Robocopy ke controller di folder โ€œC: \ Program Files (x86) \ Windows Resource Kits \ Tools \โ€

    Setelah instalasi, di penjadwal tugas pada pengontrol Windows, kami membuat tugas untuk replikasi dengan parameter berikut:

    - Lakukan untuk semua pengguna
    - Pemicu untuk mengeksekusi Setiap hari setiap 5 menit di siang hari
    - Dalam tindakan yang kami tentukan path ke utilitas robocopy, kami menunjukkan sebagai argumen:

     \\DC1\SYSVOL\test.local\ \\DC2\SYSVOL\test.local\ /mir /sec 

    Dalam kasus tertentu, salin konten direktori SysVol dari DC1 ke DC2.
  3. Folder pengguna portabel menggunakan konfigurasi pam_mount

    Secara empiris, saya menemukan dua opsi untuk menyelesaikan masalah ini dengan bantuannya.

    1. Pemasangan lengkap folder profil dari jaringan ke bagian / home

      Opsi sederhana. Ini berfungsi dengan baik jika nama folder My Documents, Downloads, dan Desktop adalah sama pada kedua sistem operasi. Dipahami bahwa PC Linux telah dimasukkan ke dalam domain dan pengguna login di bawah akun domain mereka menggunakan sssd sebagai mekanisme otentikasi dan otorisasi.

       # vim /etc/security/pam_mount.conf.xml 

       <volume uid="100000000-2000000000" fstype="cifs" server="dfs" path="Profile_Users/%(USER)" mountpoint="~" options="sec=krb5,cruid=%(USERUID),nounix,uid=%(USERUID),gid=%(USERGID),file_mode=0664,dir_mode=0775"/> 

      dimana:

      • uid = "100000000-2000000000000" - rentang UID yang ditetapkan untuk pengguna domain dari SSSD
      • server = "dfs" - nama server file
      • path = "Profile_Users /% (USER)" - sumber daya di server file dengan profil pengguna di-host
      • mountpoint = "~" - mount path ke folder home pengguna

      Login pengguna dilewatkan ke variabel makro "% (USER)" yang digunakan oleh pam_mount untuk menghubungkan sumber daya jaringan kami, dalam bentuk yang dimasukkan di manajer tampilan. Oleh karena itu, penting bahwa login DM dimasukkan tanpa indikasi eksplisit dari nama domain.

      Di sssd.conf, ini diselesaikan dengan berkomentar, atau dengan menetapkan nilai False ke opsi use_fully_qualified_names , yang mengaktifkan mode nama lengkap (termasuk domain) untuk pengguna dan grup.
    2. Metode kedua kurang mudah dan canggung, dan menurut saya lebih nyaman dan disukai. Perbedaannya dari yang pertama hanya pada konfigurasi pam_mount

       # vim /etc/security/pam_mount.conf.xml 

       <volume uid="100000000-2000200000" fstype="cifs" server="dfs" path="Profile_Users/%(USER)/ " mountpoint="~/ " options="sec=krb5,cruid=%(USERUID),nounix,uid=%(USERUID),gid=%(USERGID),file_mode=0664,dir_mode=0775"/> <volume uid="100000000-2000200000" fstype="cifs" server="dfs" path="Profile_Users/%(USER)/Downloads" mountpoint="~/" options="sec=krb5,cruid=%(USERUID),nounix,uid=%(USERUID),gid=%(USERGID),file_mode=0664,dir_mode=0775"/> <volume uid="100000000-2000200000" fstype="cifs" server="dfs" path="Profile_Users/%(USER)/ " mountpoint="~/" options="sec=krb5,cruid=%(USERUID),nounix,uid=%(USERUID),gid=%(USERGID),file_mode=0664,dir_mode=0775"/> 

      Artinya, kita cukup memasang masing-masing folder kita secara terpisah di direktori yang sesuai

Kesimpulan

Lebih dari setengah bulan bekerja di bangku tes, bundel ini berhasil selamat dari beberapa shutdown jangka panjang dan jangka pendek bergantian dari kedua pengontrol, dengan praktis tidak ada konsekuensi bagi klien (setelah klien di Windows7 kehilangan kepercayaan).

Secara umum, saya memiliki kesan yang agak menyenangkan untuk bekerja dengan produk ini, meskipun ada banyak nuansa yang harus saya hadapi di artikel dan di belakang layar.

Ada jebakan, ada banyak dari mereka, dan dalam perjalanan bekerja dengan samba mereka harus ditangkap dalam jumlah besar. Namun, hingga saat ini, tidak ada solusi lain yang memungkinkan Anda untuk mengatur lingkungan hybrid menggunakan layanan direktori dan tanpa menggunakan Windows.

Source: https://habr.com/ru/post/id450572/


All Articles