SAMBA meningkatkan pengalaman klasik di Debian 8

Latar belakang


Ada jaringan lokal kecil dari perusahaan, di mana sekitar 10 tahun yang lalu domain pada Samba ke-3 + LDAP + BIND (di gateway) dibesarkan di Debian 5. Bahkan, dia hanya membutuhkan otentikasi pengguna, dan file bola. Selama bertahun-tahun, server telah ditingkatkan ke versi baru Debian tanpa masalah. Saat ini, ia memiliki Debian 8 dan Samba 4.2 dari paket.

Sejak Windows 7, pengenalan komputer ke domain, tanpa kruk terkenal dengan mengedit registri, tidak berfungsi. Kruk yang sama bekerja di Win 8 dan Win 10 hingga versi 1803. Selain ketidakmampuan untuk memasukkan komputer ke domain, masalah lain terakumulasi, dan sebagai hasilnya, diputuskan untuk melakukan peningkatan klasik. Karena kesederhanaan struktur LAN, diputuskan untuk menggunakan DNS Samba internal.

Saya ingin segera mengatakan bahwa artikel itu bukan panduan yang tepat, tetapi pengalaman menjalankan operasi ini. Fase pra-pengujian sangat dianjurkan. Dalam kasus saya, gambar server diambil untuk pengujian dan digunakan pada mesin virtual VirtualBox. Juga, untuk menguji perilaku klien domain yang ada, Win XP SP3 dan Win 10 1709 dan 1803 mesin klien dibuat.

Saya juga ingin mencatat bahwa kesalahan berulang kali disebabkan oleh kesalahan ketik biasa. Berhati-hatilah.

Deskripsi lingkungan


OS: Debian 8
Domain: samdom.local
Nama Server: pdc
server ip: 10.10.1.220

Proses transisi


Memperbarui paket ke versi terbaru + menginstal yang hilang.


Dalam kasus saya, setelah pembaruan, hanya pengguna KRB5 yang harus dikirim.

apt-get update apt-get upgrade apt-get install samba smbclient krb5-user winbind 

Saat memasang pengguna krb5, sistem akan menanyakan beberapa pertanyaan tentang nama server dan nama domain. Kami mengisi data server kami.

Samba berhenti


 service samba-ad-dc stop service smbd stop service nmbd stop service winbind stop 

Transfer basis lama dan konfigurasi samba


 mv /var/lib/samba /var/lib/samba.NT mv /etc/samba/smb.conf /etc/samba/smb.conf.NT 

Saya memindahkan database lama ke /var/lib/samba.NT sehingga Anda perlu membuat kembali direktori / var / lib / samba

 mkdir /var/lib/samba 

Dokumentasi merekomendasikan memindahkan semua database ke folder terpisah. Dalam kasus saya, hanya gencache_notrans.tdb terletak secara terpisah, jadi saya harus mentransfernya saja.

 cp -p /run/samba/gencache_notrans.tdb /var/lib/samba.NT 

Dokumentasi juga mengatakan bahwa hanya enam database yang dibutuhkan:

secrets.tdb
schannel_store.tdb
passdb.tdb
gencache_notrans.tdb
group_mapping.tdb
account_policy.tdb

Namun, keberadaan file lain di folder itu tidak menghalangi proses transisi.

Mulai proses peningkatan klasik


 samba-tool domain classicupgrade β€”dbdir=/var/lib/samba.NT --realm=samdom.local --dns-backend=SAMBA_INTERNAL /etc/samba/smb.conf.NT 

Saya perhatikan bahwa dokumentasi tidak merekomendasikan penggunaan domain tingkat atas lokal., Tetapi dalam kasus saya ini terjadi secara historis.

Pada lembar yang muncul di layar, kata sandi administrator akan berkedip, yang dapat Anda tuliskan jika diinginkan).

Jika Anda memiliki masalah, sebelum upaya baru untuk meningkatkan klasik, Anda harus ingat untuk menghapus file database dan smb.conf yang dibuat dalam proses.

 rm -f /etc/samba/smb.conf rm -rf /var/lib/samba/* 

Jika semuanya berjalan dengan baik, Anda bisa pergi ke langkah berikutnya.

Memeriksa dan mengedit konfigurasi server


Di /etc/resolv.conf seharusnya (jika tidak secara otomatis dibuat untuk Anda)

 domain samdom.local nameserver 10.10.1.220 

Di / etc / hosts

 127.0.0.1 localhost localhost.localdomain 10.10.1.220 pdc.samdom.local pdc 

File / etc / hostname harus memiliki nama host yang disingkat

 pdc 

Di / etc / network / interfaces

 dns-nameservers 10.10.1.220 dns-search samdom.local 

Mengarahkan permintaan dns


Jika server Anda akan mengarahkan permintaan DNS ke Internet (dan INTERNAL_DNS Samba digunakan), Anda perlu menambahkan baris dari ip ISP Anda di bagian [global] di smb.conf:

 dns forwarder = ip 

Dalam "Samba" 4.2, Anda hanya dapat menentukan satu ip. Berikut ini - beberapa, dengan spasi.
Jika lalu lintas keluar dikendalikan di gateway Anda, maka jangan lupa untuk membuka paket udp dari server ke port 53.

Konfigurasikan Kerberos


Kami membawa /etc/krb5.conf ke formulir yang serupa:

 [libdefaults] default_realm = SAMDOM.LOCAL dns_lookup_realm = false dns_lookup_kdc = true krb4_config = /etc/krb.conf krb4_realms = /etc/krb.realms kdc_timesync = 1 ccache_type = 4 forwardable = true proxiable = true v4_instance_resolve = false v4_name_convert = { host = { rcmd = host ftp = ftp } plain = { something = something-else } } fcc-mit-ticketflags = true [realms] SAMDOM.LOCAL = { kdc = pdc admin_server = pdc default_domain = SAMDOM.LOCAL } [domain_realm] .samdom.local = SAMDOM.LOCAL samdom.local = SAMDOM.LOCAL 

Sinkronisasi waktu


Jika paket ntp tidak layak, maka atur:

 apt-get install ntp 

Dalam kasus saya tidak ada direktori / var / lib / samba / ntp_signd /. Dibuat secara manual.

Selanjutnya, Anda perlu memberinya hak:

 chown root:ntp /var/lib/samba/ntp_signd/ chmod 750 /var/lib/samba/ntp_signd/ 

Selanjutnya, Anda perlu membawa file /etc/ntp.conf ke bentuk yang serupa:

 # Local clock (Note: This is not the localhost address!) server 127.127.1.0 fudge 127.127.1.0 stratum 10 # The source, where we are receiving the time from server 0.pool.ntp.org iburst prefer driftfile /var/lib/ntp/ntp.drift logfile /var/log/ntp ntpsigndsocket /var/lib/samba/ntp_signd/ # Access control # Default restriction: Only allow querying time (incl. ms-sntp) from this machine restrict default kod nomodify notrap nopeer mssntp # Allow everything from localhost restrict 127.0.0.1 # Allow that our time source can only provide time and do nothing else restrict 0.pool.ntp.org mask 255.255.255.255 nomodify notrap nopeer noquery 

Menghapus slapd dan me-reboot


 apt-get remove slapd reboot 

Pengujian


Dalam dokumentasi, pengujian dilakukan dari akun Administrator. Kami secara historis mengembangkan bahwa tindakan administratif berasal dari domain_admin. Selanjutnya, perintah dan output yang benar akan ditampilkan.

Pengujian samba:

 root@debian:/root# smbclient -L localhost -U% Domain=[SAMDOM] OS=[Unix] Server=[Samba 4.1.17-Debian] Sharename Type Comment --------- ---- ------- netlogon Disk sysvol Disk IPC$ IPC IPC Service (Samba 4.1.17-Debian) Domain=[SAMDOM] OS=[Unix] Server=[Samba 4.1.17-Debian] Server Comment --------- ------- Workgroup Master --------- ------- 

Jika Anda mendapatkan kesalahan di sini:
Koneksi ke loclhost gagal (Galat NT_STATUS_UNSUCCESSFUL)

periksa apakah samba mulai. Dalam satu tes, saya lupa menghapus (mematikan) slapd dan juga melihat kesalahan ini.

Sekali lagi periksa:

 $ smbclient //localhost/netlogon -Udomain_admin -c 'ls' Enter Administrator's password: Domain=[SAMDOM] OS=[Unix] Server=[Samba xyz] . D 0 Tue Nov 1 08:40:00 2016 .. D 0 Tue Nov 1 08:40:00 2016 49386 blocks of size 524288. 42093 blocks available 

Menguji DNS

 root@debian:/root# nslookup samdom.local Server: 10.10.1.220 Address: 10.10.1.220#53 Name: samdom.local Address: 10.10.1.220 

 $ host -t SRV _ldap._tcp.samdom.local. _ldap._tcp.samdom.example.com has SRV record 0 100 389 pdc.samdom.example.com. 

 $ host -t SRV _kerberos._udp.samdom.local. _kerberos._udp.samdom.example.com has SRV record 0 100 88 pdc.samdom.example.com. 

 $ host -t A pdc.samdom.local. dc1.samdom.example.com has address 10.10.1.220 

Menguji Kerberos

 root@debian:/root# kinit domain_admin@SAMDOM.LOCAL Password for domain_admin@SAMDOM.LOCAL: Warning: Your password will expire in 41 days on  27  2015 14:34:46 

 root@debian:/root# klist Ticket cache: FILE:/tmp/krb5cc_0 Default principal: domain_admin@SAMDOM.LOCAL Valid starting Expires Service principal 16.10.2015 15:07:12 17.10.2015 01:07:12 krbtgt/SAMDOM.LOCAL@SAMDOM.LOCAL renew until 17.10.2015 15:07:07 

Pengaturan tambahan


Agar nama dan grup domain muncul di linux, Anda harus memperbaiki /etc/nsswitch.conf alih-alih angka

String harus direduksi menjadi bentuk berikut:
passwd: file winbind
grup: file winbind

Harap dicatat bahwa winbind hanya ditambahkan ke baris ini. Untuk detailnya, lihat dokumentasi.
Dalam kasus saya, saya juga menghapus penyebutan ldap dari file ini.

 reboot 

Jika Anda, seperti saya, sebelum upgrade klasik dns, server berada di komputer lain dan Anda menggunakan server DHCP, jangan lupa untuk mengubah pengaturan server DHCP yang menunjuk ke server DNS

Konfigurasikan folder jaringan


Pengembang tidak disarankan untuk menggunakan pengontrol domain AD sebagai server file. Namun, dalam kasus saya tidak ada server lain.

Pengaturan ini dijelaskan dengan sangat baik dalam dokumentasi untuk "Samba" dan Anda perlu melihatnya di sana. Singkatnya, lalu:

Penting untuk memeriksa samba dukungan ACL.

 smbd -b | grep HAVE_LIBACL HAVE_LIBACL 

Jangan lupa bahwa bagian tersebut harus dipasang dengan opsi user_xattr dan acl.

Hanya pengguna dan grup dengan SeDiskOperatorPrivilege yang dapat mengonfigurasi hak bola:

Misalnya, untuk memberikan hak tersebut ke grup Admin Domain, Anda harus menjalankan perintah:
 net rpc rights grant "Samdom\Domain Admins" SeDiskOperatorPrivilege -U "Samdom\domain_admin" 

Langsung untuk menambahkan bola yang Anda butuhkan:

Buat direktori dan berikan hak yang diperlukan:

 # mkdir -p /srv/samba/Demo/ # chown root:"Domain Admins" /srv/samba/Demo/ # chmod 0770 /srv/samba/Demo/ 

tambahkan ke smb.conf

 [Demo] path = /srv/samba/Demo/ read only = no 

Setelah itu, muat ulang konfigurasi samba dengan perintah:

 smbcontrol all reload-config 

Seperti sebelumnya, bola bisa disembunyikan dengan menambahkan deskripsi:

 browseable = no 

Selanjutnya, hak didistribusikan dari windows mesin, dari akun dengan SeDiskOperatorPrivilege . Untuk melakukan ini, buka "manajemen komputer".
Berpegang teguh pada komputer jarak jauh (kontroler domain pdc dalam kasus kami). Bagikan hak melalui: "Folder bersama" -> "Sumber daya bersama".

Ada kemungkinan bahwa ketika Anda pergi ke item "Folder Bersama", Anda akan mendapatkan kesalahan "Nomor prosedur di luar batas yang diizinkan (1745)." Saya mengabaikannya, karena saya tidak menemukan sesuatu yang dapat dimengerti di Internet dan itu tidak menyebabkan masalah selama pengujian dan operasi.

Masalah dapat terjadi jika Anda berbagi folder jaringan lama dengan cara ini. Sebelum peningkatan klasik, hak atas bola ditetapkan melalui smb.conf, pengguna linux, grup, lainnya, dan setfacl. Setelah peningkatan klasik, sekolah dengan hak untuk berubah, mengganti nama, dll mulai muncul secara bertahap. Setfacl rekursif tidak membantu, karena tiang tembok dengan pewarisan hak muncul.

Perlu dicatat bahwa dalam dokumentasi, direkomendasikan untuk mendistribusikan hak dari jendela mesin, melalui akses jarak jauh.

Akibatnya, karena volume file yang tidak terlalu besar, keputusan dibuat untuk mentransfer data ke mesin windows selama jam-jam tidak bekerja, membuat ulang folder jaringan sesuai dengan rekomendasi pengembang samba dan mengunggah kembali file.

Folder beranda pengguna di server


Manajemen folder rumah pengguna juga telah berubah.
Perlu dicatat bahwa proses dari konfigurasi juga dijelaskan dengan sangat baik dalam dokumentasi .
Saya hanya akan menjelaskan fitur utama untuk kasus saya.

Sebelumnya, setiap pengguna mendapatkan bola mereka sendiri. Sekarang hanya folder bersama yang dibagikan, dan pengguna hanya memiliki akses ke direktori mereka.

Penyetelan dilakukan menggunakan Microsoft Remote Server Administration Tools (RSAT) . RSAT memiliki fitur yang tidak menyenangkan. Ketika memutakhirkan Win 10 ke versi baru, itu harus diinstal ulang.

Bola rumah bisa diambil secara manual, melalui properti pengguna di snap-in Users and Computers. Tab profil. Disk U: \\ pdc \ user-share \ username

Namun, lebih mudah untuk melakukan ini melalui kebijakan domain, yang sangat jelas dijelaskan dalam dokumentasi di atas dalam paragraf "Menggunakan Preferensi Kebijakan Grup" .

Jangan lupa bahwa bola biasa dapat disembunyikan dengan menambahkan deskripsi:

 browseable = no 

Level Domain Naik


Domain ditingkatkan tanpa masalah ke level 2008_R2 dengan perintah:

 samba-tool domain level raise --domain=2008_R2 --forest=2008_R2 

Anda dapat melihat level dengan perintah:

 samba-tool domain level show 

Jika smbd.log dibombardir dengan kesalahan CUPS


Dalam kasus saya, masalah ini muncul:

Tidak dapat terhubung ke server CUPS localhost: 631

Diperbaiki oleh artikel singkat ini.

Peningkatan berikutnya ke masalah dan solusi Debian 9


Di

 apt-get dist-upgrade 

Ada masalah, yaitu, samba dan winbind tidak ingin diperbarui. Pergi ke konflik ketergantungan.

Metode dari artikel membantu tautan yang sayangnya tidak saya simpan.
Berikut adalah kutipan langsung darinya:

jika Samba dalam mode AD-DC, itu dan winbind gagal.
lakukan perintah ini, lalu coba jalankan pemutakhiran lagi

systemctl menghentikan smbd nmbd winbind
systemctl menonaktifkan smbd nmbd winbind
systemctl membuka kedai samba-ad-dc
systemctl mulai samba-ad-dc
systemctl mengaktifkan samba-ad-dc


Setelah memperbarui versi SAMBA, disarankan agar: "Pemeriksaan database Samba AD DC".



# samba-tool dbcheck --cross-ncs

Sejak di Deb 9 SAMBA versi 4.5 saya mendapat banyak kesalahan "replPropertyMetaData".
Proses pemecahan masalah dijelaskan dalam dokumentasi:

wiki.samba.org/index.php/Updating_Samba#Fixing_replPropertyMetaData_Attributes

Dan sampai pada pelaksanaan perintah:

samba-tool dbcheck --cross-ncs --fix --yes

Daftar sumber yang digunakan


Dokumentasi SAMBA:

Memigrasikan Domain Samba NT4 ke Samba AD (Peningkatan Klasik)
Menyiapkan Samba sebagai Pengontrol Domain Direktori Aktif
Menyiapkan Share Menggunakan Windows ACL
Folder Beranda Pengguna
Artikel bagus:
Pengontrol domain Debian 8 (... yang sudah memiliki Samba4 bawaan)
Kesalahan Samba: Tidak dapat terhubung ke server CUPS localhost: 631
Artikel oleh penulis bahasa Inggris yang tidak dikenal yang menjelaskan cara meningkatkan ke Debian 9

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


All Articles