GNU/Linux >> Belajar Linux >  >> Linux

Cara Menghubungkan Samba ke Active Directory Linux

Jika Anda seorang administrator sistem dan bertanya-tanya bagaimana cara menambahkan desktop dan server Linux ke Linux Active Directory (AD) Anda saat ini, maka Anda telah datang ke tempat yang tepat. Menambahkan klien baru ke AD menyederhanakan manajemen pengguna di antara beberapa mesin klien, terutama saat Anda mengelola ratusan komputer di lingkungan Anda.

Dalam tutorial ini, Anda akan belajar cara menambahkan sistem Linux (Ubuntu 20.04, Linux Mint, dan Server Ubuntu) ke Linux Samba Active Directory. Melakukannya memungkinkan pengguna Samba Active Directory untuk masuk ke mesin klien Linux dengan direktori home sendiri, shell default, dan hak akses sudo root (jika diperlukan).

Siap? Langsung masuk!

Prasyarat

Tutorial ini akan menjadi demonstrasi langsung. Jika Anda ingin mengikuti, pastikan Anda memiliki persyaratan berikut:

  • Linux Desktop Machine – Tutorial ini menggunakan Desktop Ubuntu 20.04, tetapi Anda dapat menggunakan distro lain seperti Linux Mint dan Ubuntu Server.
  • Pengguna non-root dengan sudo hak istimewa.
  • Direktori Aktif Samba (AD) yang berfungsi penuh.

Menyiapkan Penyelesai DNS Permanen

Sebelum Anda dapat menambahkan klien Linux ke Direktori Aktif Samba, Anda harus memastikan nama domain Direktori Aktif Samba dapat dijangkau dari mesin klien. Bagaimana? Dengan menetapkan alamat IP Samba AD sebagai DNS resolver default untuk setiap mesin klien di /etc/resolv.conf file konfigurasi.

1. Buka terminal Anda, dan jalankan systemctl perintah di bawah ini untuk menonaktifkan dan menghentikan systemd-resolved melayani. Melakukannya memastikan klien Linux menggunakan resolver DNS statis dan permanen.

Administrator menentukan penyelesaian DNS permanen ini dan tidak digantikan oleh layanan ketiga seperti systemd-resolved .

# disable and stop systemd-resolved service
sudo systemctl disable --now systemd-resolved

2. Selanjutnya, jalankan unlink perintah di bawah ini untuk menghapus file symlink (/etc/resolv.conf ). Anda akan mengganti file ini di langkah berikutnya. # remove symlink file /etc/resolv.conf sudo unlink /etc/resolv.conf

# remove symlink file /etc/resolv.conf
sudo unlink /etc/resolv.conf

3. Sekarang, buat file baru dengan nama /etc/resolv.conf menggunakan editor pilihan Anda dan mengisi file dengan konfigurasi berikut.

Konfigurasi di bawah ini menetapkan resolver DNS utama dan fallback.

# Samba AD as main DNS resolver
nameserver 172.16.1.10

# fall-back DNS resolver using Cloudflare
nameserver 1.1.1.1

# hostname lookup for domain example.lan
search example.lan

4. Jalankan chattr perintah di bawah ini untuk membuat file /etc/resolv.conf tidak dapat diubah untuk memastikan mesin klien selalu menggunakan Samba AD sebagai resolver DNS default. Perintah ini juga mencegah penimpaan dari layanan lain seperti NetworkManager.

# making the file `/etc/resolv.conf` immutable
sudo chattr +i /etc/resolv.conf

# remove immutable attribute
sudo chattr -i /etc/resolv.conf

5. Terakhir, jalankan ping perintah di bawah ini untuk memverifikasi koneksi ke nama domain Samba AD dc1.example.lan dan example.lan .

# ping to AD server dc1.example.an and example.lan
ping -c3 dc1.example.lan
ping -c3 example.lan

Jika koneksi Anda berhasil, Anda akan menerima pesan balasan dari server AD, dan domain dc1.example.lan dan example.lan akan diselesaikan ke alamat IP Samba AD.

Menyiapkan Chrony sebagai Klien NTP

Setelah Anda mengonfigurasi DNS resolver, Anda sekarang akan menyiapkan Chrony untuk menyinkronkan waktu antara mesin klien ke server Samba AD. Jika ada perbedaan waktu (maksimal lima menit) antara mesin klien dan server AD, klien tidak dapat mengakses semua sumber daya di server AD.

1. Jalankan perintah di bawah ini untuk menginstal chrony ke klien Linux Anda.

# install chrony
sudo apt install chrony -y

2. Sekarang, edit konfigurasi Chrony default (/etc/chrony/chrony.conf ) di editor pilihan Anda dan tambahkan konfigurasi berikut.

 bindcmdaddress nilai harus alamat IP klien. Layanan Chrony akan berjalan pada alamat IP ini. Sedangkan server opsi adalah tempat Anda menambahkan nama domain Samba AD Anda sebagai server NTP.

# run Chrony as NTP client on the IP address
bindcmdaddress 172.16.1.85

# time synchronize to the Samba AD dc1.example.lan
server dc1.example.lan iburst

3. Selanjutnya, jalankan systemctl perintah di bawah ini untuk memulai ulang chronyd layanan dan verifikasi bahwa status layanan adalah active (running) . # restart chronyd service sudo systemctl restart chronyd # verify status chronyd service sudo systemctl status chronyd

# restart chronyd service
sudo systemctl restart chronyd

# verify status chronyd service
sudo systemctl status chronyd

Seperti yang Anda lihat di bawah, chronyd layanannya adalah active (running) dan enabled . Klien Chrony NTP sekarang akan mulai secara otomatis saat startup sistem.

4. Terakhir, jalankan perintah di bawah ini untuk memverifikasi bahwa layanan Chrony pada mesin klien terhubung ke server Samba AD NTP. chronyc tracking

chronyc tracking

Seperti yang Anda lihat di bawah, layanan Chrony pada klien Linux terhubung ke server Samba AD NTP dengan alamat IP 172.16.1.10 .

Menggabungkan Klien Linux ke Direktori Aktif Samba

Anda sekarang telah mengonfigurasi Chrony di klien Linux. Tetapi bagaimana Anda menambahkan mesin klien ini ke Samba Active Directory? Mulailah dengan menginstal dan mengonfigurasi realmd dan sssd layanan untuk menambahkan klien Linux ke server Samba AD.

1. Jalankan apt perintah di bawah ini untuk menyegarkan indeks paket Anda. Perintah ini memastikan Anda menginstal paket versi terbaru dari repositori.

sudo apt update

Selanjutnya, jalankan perintah di bawah ini untuk menginstal realmd dan sssd layanan dengan semua paket tambahan yang dibutuhkan. realmd service digunakan dengan layanan Linux yang mendasarinya, seperti sssd , untuk bergabung dengan Direktori Aktif Samba.

sudo apt install -y realmd sssd sssd-tools samba-common krb5-user packagekit samba-common-bin samba-libs adcli

Masukkan ranah default (dalam huruf besar) untuk Direktori Aktif Samba, seperti yang ditunjukkan di bawah ini. Anda akan menggunakan ranah default ini untuk otentikasi Kerberos.

Dalam contoh ini, domain ranah default untuk Samba AD adalah EXAMPLE.LAN .

3. Buat file baru /etc/realmd.conf menggunakan editor pilihan Anda dan tambahkan konfigurasi berikut. Konfigurasi di bawah melakukan hal berikut:

  • Menangani perilaku domain dan pengguna Samba AD
  • Menentukan koneksi klien ke server AD
  • Menentukan apakah akan menggunakan penginstalan otomatis layanan tambahan atau tidak.
  • Konfigurasi khusus untuk example.lan Domain iklan.
[users]
# define Samba AD users behavior
# define default home directory and shell for Samba AD users
default-home = /home/%U
default-shell = /bin/bash

[active-directory]
# define realmd connection to the Samba AD
# you can use `sssd` or `winbind` for realmd to join Samba AD
# os-name can used as an identifier for client
default-client = sssd
os-name = Linux Ubuntu and Mint Desktop

[service]
# disable automati install for additional realmd service
automatic-install = no

[example.lan]
# define behavior of Samba AD `example.lan`
# disable fully-qualified-names so you can use a username to identify Samba users
# automatic-id-mapping to yes will automatically generate UID and GID numbers
# user-principal to yes will automatically create UserPrincipalName for the client machine
# manage-system to yes to enabled realmd to manage client machine
fully-qualified-names = no
automatic-id-mapping = yes
user-principal = yes
manage-system = yes

Jalankan kinit perintah di bawah ini untuk mengautentikasi koneksi domain (EXAMPLE.LAN ) ke layanan Kerberos menggunakan pengguna default (administrator ).

Masukkan kata sandi untuk administrator Pengguna Samba AD saat diminta, seperti yang ditunjukkan di bawah ini.

Menambahkan klien baru ke Samba AD memerlukan penggunaan administrator pengguna.

# authenticate to Kerberos server on EXAMPLE.LAN using administrator
sudo kinit [email protected]

# verify authentication and print detailed Kerberos tickets for administrator user
sudo klist

5. Sekarang, jalankan realm join perintah di bawah ini untuk menambahkan klien Linux ke Samba AD (example.lan ). Ganti UbuntuMintDesktop dengan nama pengguna utama (UPN) yang unik. Setiap klien/mesin harus memiliki UPN yang berbeda.

# joining/adding Linux Ubuntu/Mint to Samba AD example.lan
# --verbose to get full logs from the process
# --user-principal will automatically set the UserPrincipalName for this machine
# --unattended will run the realm command without prompting for a password prompt,
# because you've already authenticated through the Kerberos ticket
sudo realm join --verbose example.lan --user-principal=UbuntuMintDesktop/[email protected] --unattended

Anda akan mendapatkan Mesin yang berhasil didaftarkan di ranah pesan ketika proses selesai. Pada titik ini, Anda telah berhasil menambahkan klien Linux Anda ke Samba Active Directory.

6. Selanjutnya buka /etc/sssd/sssd.conf file konfigurasi di editor pilihan Anda.

Tambahkan baris berikut, yang mengubah kontrol akses objek kebijakan grup (GPO) default menjadi permissive , dan tetapkan nilai access_provider ke ad . ad nilai menunjukkan autentikasi default untuk sssd service adalah Direktori Aktif.

Selama penulisan ini, Desktop dan Server Ubuntu 20.04 tidak akan mengizinkan pengguna AD untuk masuk saat ad_gpo_access_control disetel ke enforcing (nilai default). Jadi, Anda mengubah  ad_gpo_access_control nilai ke permissive .

Namun di Linux Mint, Anda masih dapat masuk menggunakan pengguna AD, meskipun ad_gpo_access_control ada di enforcing modus.

# change default GPO access control to permissive
ad_gpo_access_control = permissive

7. Jalankan pam-auth-update perintah di bawah ini untuk mengubah konfigurasi PAM. Perintah ini mengaktifkan modul PAM (pam_mkhomedir.so ). Mengaktifkan modul PAM secara otomatis membuat direktori home untuk pengguna Samba AD (hanya jika direktori home tidak tersedia).

# modify PAM configuration
pam-auth-update

Pilih Buat direktori beranda saat masuk opsi di layar terminal dan pilih Oke untuk mengonfirmasi.

Tekan tombol SPACE untuk mengaktifkan opsi, dan tekan tombol TAB untuk memindahkan menu kursor.

8. Jalankan realm list perintah di bawah ini untuk memverifikasi koneksi Anda ke Samba Active Directory.

# Checking connected AD
realm list

Jika koneksi Anda berhasil, Anda akan menerima koneksi AD terperinci, seperti yang ditunjukkan di bawah ini.

Di bawah ini, Anda dapat melihat mesin desktop Ubuntu/Mint terhubung ke Samba Active Directory (example.lan ) sebagai (kerberos-member ).

9. Sekarang, jalankan id perintah di bawah ini untuk memeriksa pengguna Samba AD.

# checking Samba AD user `alice`
id alice

Jika penginstalan Anda berhasil, Anda akan menerima uid secara acak dan gid untuk pengguna Samba alice . Dalam contoh ini, Anda dapat melihat pengguna alice dibuat dan tersedia di Samba AD.

10. Selain itu, jalankan perintah berikut untuk mengatur editor teks default Anda dan buka (visudo ) /etc/sudoers file di editor default Anda. Anda selalu dapat mengubah editor teks pilihan Anda, tetapi editor default adalah nano untuk demo ini.

# Sets default editor to nano
export EDITOR=nano
# Opens the /etc/sudoers file in the default editor
visudo

Tambahkan pengguna Samba AD Anda ke sudoers file menggunakan format berikut, simpan perubahan dan tutup editor. Dengan melakukannya, Anda dapat mengaktifkan sudo hak istimewa untuk pengguna Samba (jika Anda membutuhkan pengguna untuk menjalankan sudo).

# add Samba user `alice` to sudoers
alice ALL=(ALL:ALL) ALL

11. Terakhir, jalankan perintah berikut di desktop Ubuntu ke reboot sistem untuk menerapkan konfigurasi baru.

Namun untuk Linux Mint dan server Ubuntu, Anda masih perlu menambahkan beberapa konfigurasi tambahan, yang akan dibahas di bagian berikut.

sudo reboot

Menyiapkan LightDM untuk Direktori Aktif Samba

Konfigurasi LightDM default untuk proses login manual menggunakan nama pengguna dan sandi dinonaktifkan di desktop Linux Mint. Anda akan mengubah konfigurasi LightDM untuk mengaktifkan proses login manual sehingga pengguna Samba AD dapat login ke mesin Mint Desktop.

Buka LightDM (/etc/lightdm/lightdm.conf ) file konfigurasi di editor pilihan Anda dan isi konfigurasi berikut di bawah [Seat:*] bagian.

greeter-show-manual-login=true opsi di bawah ini mengaktifkan proses login manual pada LightDM, sedangkan allow-guest=false opsi menonaktifkan login untuk pengguna tamu.

# enable manual login
greeter-show-manual-login=true

# disable guest login
allow-guest=false

Sekarang, jalankan perintah di bawah ini untuk memulai ulang desktop Linux Mint Anda untuk menerapkan konfigurasi baru.

sudo reboot

Menyiapkan Otentikasi Kerberos untuk Layanan SSH

Anda harus mengaktifkan otentikasi Kerberos pada layanan SSH di lingkungan server. Melakukannya memungkinkan pengguna AD masuk ke server. Bagaimana? Dengan mengedit file konfigurasi SSH.

Buka SSH (/etc/ssh/sshd_config ) file konfigurasi di editor pilihan Anda.

Batalkan komentar pada opsi berikut dan atur nilainya ke yes :

  • KerberosAuthentication – Mengaktifkan otentikasi Kerberos.
  • KerberosTicketCleanup – Secara otomatis menghancurkan tiket Kerberos saat logout

Sekarang, jalankan perintah di bawah ini untuk memulai ulang server Anda dan menerapkan konfigurasi baru.

sudo reboot

Masuk ke Mesin Linux menggunakan Pengguna Samba AD

Sekarang Anda telah menyelesaikan dan menambahkan klien Linux ke Samba AD. Tetapi bagaimana Anda dapat memverifikasi bahwa pengguna Samba AD dapat masuk ke klien Linux tersebut? Anda dapat menentukan pengguna dan kata sandi pada layar masuk Manajer Tampilan pada klien Desktop Linux. Sedangkan untuk server Ubuntu, Anda dapat terhubung melalui protokol SSH yang aman.

Masuk ke Ubuntu, Mint, dan server Ubuntu terlihat berbeda satu sama lain. Tapi jangan khawatir, Anda akan melihat cara masuk ke setiap OS menggunakan pengguna Samba AD di demo ini.

Masuk ke Desktop Ubuntu Linux

Dengan Linux Ubuntu Desktop, login menggunakan pengguna Samba AD sama seperti biasanya login dengan akun pengguna.

1. Boot klien desktop Ubuntu Anda, klik tombol Tidak terdaftar? pada layar login GDM Ubuntu untuk login dengan pengguna yang berbeda.

2. Selanjutnya, masukkan pengguna Samba AD Anda di [email protected] format. Contoh ini menggunakan pengguna Samba AD alice(example.lan) , seperti yang ditunjukkan di bawah ini.

3. Masukkan kata sandi pengguna Samba AD Anda (alice) dan tekan ENTER untuk masuk.

Setelah login, Anda akan melihat Desktop Ubuntu default seperti screenshot di bawah ini, di mana pengguna Samba AD alice berhasil login.

Anda dapat melihat di bawah bahwa modul PAM (pam_mkhomedir.so. ) secara otomatis membuat direktori home pengguna. Sementara hak akses sudo root dikonfigurasi melalui file sudoers .

Masuk ke Desktop Linux Mint

Untuk desktop Linux Mint, login terlihat sedikit berbeda dari cara Anda login di desktop Ubuntu,

Klik tombol Login, masukkan pengguna dan sandi Anda, seperti yang ditunjukkan di bawah ini, lalu tekan ENTER untuk login.

Sekarang Anda akan melihat Desktop Linux Mint untuk pengguna Samba AD Anda seperti di bawah ini.

Masuk ke Server Ubuntu

Tidak seperti dua OS pertama, Anda akan masuk ke server Ubuntu melalui lingkungan baris perintah menggunakan ssh perintah.

Jalankan ssh perintah di bawah ini dari komputer lain untuk terhubung ke server menggunakan pengguna Samba AD mengikuti [email protected]_ip format, seperti yang ditunjukkan di bawah ini.

# connect to SSH using AD user
ssh [email protected]

Ketik yes untuk menambahkan identitas sidik jari server dan memasukkan kata sandi untuk pengguna Samba AD Anda ke server Ubuntu.

Seperti yang Anda lihat di bawah, direktori home pengguna dibuat secara otomatis, dan shell default untuk pengguna Samba AD adalah Bash.

Kesimpulan

Sepanjang tutorial ini, Anda telah belajar cara menambahkan klien Linux (Desktop dan Server) ke Samba Active Directory (AD) menggunakan layanan SSSD dan Realm. Selain itu, Anda telah mempelajari cara mengaktifkan Kerberos Authentication pada layanan SSH untuk server Linux.

Sekarang, bagaimana Anda memanfaatkan fungsionalitas Samba Active Directory? Mungkin coba tambahkan server lain sebagai Domain Controller (DC) untuk bergabung dengan Samba AD saat ini? Penyiapan ini menyediakan dukungan replikasi, redundansi, dan penyeimbangan beban pada AD Anda. Hasilnya, Anda dapat menambahkan grup klien lain ke Samba AD.


Linux
  1. Cara Menghapus Akun Pengguna dengan Direktori Rumah di Linux

  2. Bagaimana mengelola pengguna dengan useradd di linux

  3. Integrasikan Server Linux dengan Active Directory menggunakan Samba, Winbind, dan Kerberos

  1. Cara Mengenkripsi direktori dengan EncFS di Debian 9 Stretch Linux

  2. Cara Membuat Pengguna Dengan Direktori Home Kustom Di Linux

  3. Cara Mengganti Nama Direktori di Linux

  1. Linux – Bagaimana Menggabungkan Pohon Dengan Ukuran Direktori?

  2. Cara gzip Direktori di Linux

  3. Cara mendapatkan ukuran direktori di Linux