Cara Menginstal dan Mengkonfigurasi Samba di Rhel 8 / Centos 8

Cara Menginstal dan Mengkonfigurasi Samba di Rhel 8 / Centos 8

Samba menyediakan perangkat lunak server dan klien untuk memungkinkan berbagi file antara mesin Linux dan Windows. Menginstal dan mengonfigurasinya di Rhel 8 / Centos 8, cukup mudah. Terus membaca untuk mempelajari cara berbagi direktori dengan Samba, dan bagaimana menerapkan konteks selinux yang sesuai untuk itu.

Dalam tutorial ini Anda akan belajar:

  • Cara menginstal samba di rhel8
  • Cara mengaktifkan dan memulai daemon SMB dan NMB
  • Cara Membuat Bagikan Samba
  • Cara mengatur firewall agar samba berbagi diakses
  • Cara mengatur konteks selinux yang benar agar samba bekerja dengan benar
Saham samba di rhel 8 / centos 8

Persyaratan dan konvensi perangkat lunak yang digunakan

Persyaratan Perangkat Lunak dan Konvensi Baris Perintah Linux
Kategori Persyaratan, konvensi atau versi perangkat lunak yang digunakan
Sistem Red Hat Enterprise Linux 8
Perangkat lunak Samba, Paket Coreutils dan PolicyCoreutils-Python-Utils
Lainnya Izin untuk menjalankan perintah dengan hak istimewa root.
Konvensi # - mensyaratkan perintah linux yang diberikan untuk dieksekusi dengan hak istimewa root baik secara langsung sebagai pengguna root atau dengan menggunakan sudo memerintah
$ - mensyaratkan perintah Linux yang diberikan untuk dieksekusi sebagai pengguna biasa

Memperkenalkan samba

Samba, sebagaimana dinyatakan dalam beranda proyek, adalah perangkat lunak open source, yang dirilis di bawah Gpl lisensi, yang memungkinkan kami untuk berbagi file dan mencetak layanan menggunakan SMB/CIF protokol.

Proyek ini menyediakan perangkat lunak server dan klien untuk memungkinkan interoperasi dengan mesin Windows, mewakili solusi ideal di lingkungan campuran. Dalam tutorial ini kita akan melihat cara menginstal Samba di Red Hat Enterprise Linux 8, Cara Mengatur Bagikan Samba, Bagaimana Pengaturan Firewall Untuk Mengizinkan Akses ke Sumber Daya Bersama, dan Cara Menerapkan Konteks Selinux yang Sesuai.



Instalasi

Hal pertama yang harus kami lakukan adalah memasang samba di mesin kami. Paket dan perpustakaan yang dibutuhkan tersedia di repositori resmi RHEL 8 / CentOS 8, oleh karena itu kami dapat menginstalnya hanya dengan menggunakan YUM atau DNF. Dalam versi Rhel/Centos ini, perintah pertama itu hanya "tautan" ke yang kedua:

$ sudo dnf menginstal samba samba-klien

Paket samba-klien tidak sepenuhnya dibutuhkan, tetapi utilitas yang disediakan olehnya bisa berguna. Setelah paket diinstal, kita harus memulai dan mengaktifkan SMB dan NMB Daemon saat boot. Yang pertama adalah daemon yang menangani melakukan transfer aktual dan operasi berbagi, sedangkan yang kedua melakukan Netbios resolusi nama, memungkinkan sumber daya muncul saat menjelajahi jaringan di windows. Kami sekarang dapat mengaktifkan dan memulai kedua layanan SystemD dengan hanya satu perintah:

$ sudo systemctl enable ---now smb, nmb

Mengkonfigurasi firewall

Langkah selanjutnya adalah konfigurasi firewall. Kita harus membuka port yang sesuai, sehingga sumber daya yang dibagikan samba dapat diakses dari mesin lain. Perangkat Lunak Manajemen Firewall Default Onrhel 8 / Centos 8, adalah firewalld.

Beruntung bagi kami, tidak perlu membuka port secara manual: yang harus kami lakukan adalah menambahkan layanan "samba" ke zona kami. "Layanan" hanyalah sebuah abstraksi yang memungkinkan kami mengizinkan lalu lintas melalui semua port yang diperlukan oleh layanan, dengan merujuk nama layanan, alih -alih harus mengatur (dan mengingat) setiap port yang digunakan olehnya. Jika kami ingin mengumpulkan informasi tentang "layanan", kami dapat menjalankan:

$ sudo firewall-cmd --fo-service samba samba port: 137/UDP 138/UDP 139/TCP 445/TCP Protokol: Sumber-Ports: Modul: Netbios-NS Tujuan: 

Dari output perintah kita melihat bahwa layanan akan memungkinkan lalu lintas melalui port 173/udp, 138/udp, 139/tcp dan 445/tcp. Untuk menambahkan layanan secara permanen ke zona default, kami dapat menjalankan:

$ sudo firewall-cmd --permanent --add-service = samba

Saat menjalankan perintah, kami menggunakan --permanen beralih untuk membuat perubahan kami gigih. Kami juga mengasumsikan bawaan zona akan digunakan. Jika kami ingin menentukan zona lain untuk tindakan yang akan diterapkan, kami akan menggunakan --daerah opsi, dan memberikan nama zona sebagai argumen (e.G. -zona = eksternal). Karena perubahan kami diatur agar permanen, agar menjadi efektif, kami harus memuat ulang konfigurasi firewall:

$ sudo firewall-cmd-reload


Kami dapat memverifikasi bahwa layanan "samba" sekarang menjadi bagian dari zona kami, dengan menjalankan:

$ sudo firewall-cmd-list-services kokpit dhcpv6-client http Samba ssh 

Sekali lagi, jika tidak ada zona yang ditentukan, perintah diterapkan ke zona default.

Mengkonfigurasi Direktori Bersama Diakses oleh Tamu

Katakanlah kami ingin berbagi direktori melalui Samba, dan kami ingin membiarkan akses gratis ke direktori ini ke pengguna tamu, tanpa mereka harus memberikan kata sandi. Untuk mendapatkan hasil yang diinginkan, kita harus membuat beberapa perubahan pada /etc/samba/smb.conf file, dan tambahkan "bait" untuk bagian kami. Buka file dengan editor favorit Anda, dan di [global] Bagian, tambahkan teks yang disorot:

[Global] WorkGroup = Samba Security = User PassDB Backend = Tdbsam Printing = Cups Printcap Name = Cups Load Printers = Ya Piala Opsi = RAW peta ke tamu = pengguna buruk 

Itu peta ke tamu = pengguna buruk instruksi, akan memetakan upaya login dengan nama pengguna yang buruk ke pengguna tamu default, yang, secara default adalah bukan siapa-siapa. Ini diperlukan untuk mengizinkan akses anonim tanpa harus memberikan kata sandi.

Setelah perubahan ini, kami harus menambahkan bait baru yang didedikasikan untuk bagian kami di akhir file. Kami akan memberi nama sumber daya bersama "LinuxConfig":

[linuxconfig] path = /mnt /hanya tamu bersama = ya 

Dengan pengaturan di atas kami menyatakan bahwa kami ingin membagikan konten /mnt/dibagikan direktori, tanpa perlu otentikasi pengguna. Pengaturan ini jelas berisiko, dan di sini dilaporkan hanya sebagai contoh: Dalam skenario dunia nyata, Anda mungkin ingin setidaknya menolak akses menulis ke tamu (Anda dapat melakukannya dengan menambahkan Tulisan = tidak petunjuk). Untuk membuat perubahan efektif, kita harus memulai kembali Daemon:



$ sudo systemctl restart smb, nmb

Konfigurasikan Bagikan Hanya Diakses oleh Pengguna Terdaftar

Untuk melindungi akses ke sumber daya dengan prompt login, saat Samba berjalan sebagai server mandiri, kita harus menambahkan pengguna yang ada ke database SAMBA. Kredensial pengguna ini akan diperlukan untuk mengakses direktori bersama. Untuk alasan keamanan, ini adalah praktik yang baik untuk menciptakan pengguna yang berdedikasi untuk tugas tersebut, menghilangkan pembuatan direktori rumahnya, dan menugaskannya cangkang palsu:

$ sudo adduser -m sambauser -s /sbin /nologin

Itu -M Opsi diteruskan ke perintah adalah formulir pendek untuk --No-create-home, yang cukup jelas; itu -S Opsi, sebagai gantinya, mari kita tentukan shell, dalam hal ini yang tidak valid dengan sengaja: /sbin/nologin. Pada titik ini pengguna bahkan tidak perlu memiliki kata sandi yang ditetapkan pada sistem kami.

Setelah pengguna dibuat, kita perlu menambahkannya ke database Samba: kita dapat melakukan operasi dengan menggunakan smbpasswd memerintah:

$ sudo smbpasswd -a Sambauser Kata sandi SMB Baru: Retype Kata Sandi SMB Baru: Menambahkan Sambauser Pengguna. 

Setelah menjalankan perintah, kami diminta untuk menetapkan kata sandi untuk pengguna, dan juga untuk mengonfirmasinya: Kata sandi ini hanya akan valid dalam konteks samba, tidak ada hubungannya dengan akun pengguna di sistem kami. Untuk membatasi bagian yang kami buat sebelumnya, kami harus membuat sedikit perubahan di bagian khusus:

[linuxconfig] path = /mnt /dibagikan Tamu OK = Tidak 

Kami dapat memverifikasi bahwa pengaturan kami valid, dengan menggunakan TestParm memerintah:



$ testparm memuat file konfigurasi smb dari/etc/samba/smb.conf rlimit_max: Meningkatkan rlimit_max (1024) ke batas windows minimum (16384) bagian pemrosesan "[rumah]" bagian pemrosesan "[printer]" bagian pemrosesan "[cetak $]" bagian pemrosesan "[linuxconfig]" file layanan yang dimuat ok. Peran server: role_standalone 

Sekali lagi, kita harus memulai kembali SMB Dan NMB Daemon untuk perubahan kita menjadi efektif. Direktori Bersama sekarang akan dapat diakses hanya setelah memberikan kredensial yang benar.

Siapkan Selinux untuk Samba

Selinux sering dilihat seperti komplikasi, dan segera dinonaktifkan. Ini tidak perlu: kita hanya harus belajar cara mengonfigurasinya, dan memanfaatkan peningkatan keamanan yang disediakannya. Agar Samba kami berbagi untuk bekerja ketika Selinux dalam mode “menegakkan”, kami harus menetapkan konteks yang sesuai untuk direktori dan file bersama kami:

$ sudo chcon -r -t samba_share_t /mnt /dibagikan

Dalam contoh di atas, kami menggunakan chcon Perintah dengan -T opsi, untuk mengubah JENIS bagian dari konteks selinux untuk samba_share_t. Kami juga menggunakan -R Beralih untuk membuat perintah rekursif. Perubahan ini akan bertahan dari reboot, tetapi tidak relabel dengan sistem jika ada kebijakan default untuk direktori dan file kami, karena dalam kasus seperti itu pengaturan default akan diterapkan kembali.

Jika kita ingin perubahan kita bertahan dari peristiwa yang releveling, kita harus menambahkan aturan kita ke dalam kebijakan. Kita bisa melakukan ini dengan menggunakan SANMANAGE memerintah:

$ sudo semanage fcontext -a -t samba_share_t "/mnt/dibagikan (/.*)?"

Karena kami menggunakan (/.*)? Regex, aturan akan diterapkan pada semua konten dari direktori "dibagikan", dan ke direktori itu sendiri. Kami dapat memverifikasi bahwa aturan kami telah ditambahkan ke kebijakan dengan mendaftarkan label yang digunakan pada sistem kami:

$ sudo semanage fcontext -l | grep/mnt/dibagikan/mnt/dibagikan (/.*)? semua file system_u: object_r: samba_share_t: s0 

Kita sekarang harus memiliki pengaturan samba yang berfungsi. Untuk lebih lanjut mengubah konfigurasi samba kita mungkin perlu juga memanipulasi selinux booleans. Misalnya, saat menambahkan pengguna yang ada ke Samba, untuk membiarkan direktori rumah mereka dibagikan, kita harus mengaktifkan Selinux Boolean yang berdedikasi. Untuk mendaftar semua orang Boolean yang terkait dengan Samba, kita dapat menjalankan:



$ sudo semanage boolean -l|grep samba samba_create_home_dirs (off , off) Allow samba to create home dirs samba_domain_controller (off , off) Allow samba to domain controller samba_enable_home_dirs (off , off) Allow samba to enable home dirs samba_export_all_ro (off , off) Izinkan samba untuk mengekspor semua ro samba_export_all_rw (off, off) memungkinkan samba untuk mengekspor semua rw samba_load_libgfapi (mati, mati) memungkinkan samba untuk memuat libgfapi samba_portmapper (mati, off, off, off, off samba ke portmapper samba_run_run_runfined (off, off, off, off, samba ke portmapper samba_run_run_runfining samba_share_fusefs (off , off) Allow samba to share fusefs samba_share_nfs (off , off) Allow samba to share nfs sanlock_use_samba (off , off) Allow sanlock to use samba tmpreaper_use_samba (off , off) Allow tmpreaper to use samba use_samba_home_dirs (off , off) Izinkan penggunaan ke home home samba virt_use_samba (mati, mati) Biarkan virt untuk menggunakan samba 

Pada output di atas, kolom kedua menunjukkan nilai saat ini boolean, sedangkan yang ketiga default (keduanya tidak aktif, dalam hal ini). Boolean yang ingin kami aktifkan, untuk memungkinkan berbagi direktori rumah, adalah samba_enable_home_dirs. Kami dapat melakukan operasi dengan menggunakan setSebool memerintah:

$ sudo setsebool samba_enable_home_dirs = 1

Kesimpulan

Dalam tutorial ini kami melihat cara menginstal Samba pada sistem RHEL 8 / CentOS 8. Kami juga melihat cara berbagi direktori, memungkinkan akses ke tamu atau membatasinya untuk pengguna yang diautentikasi. Kami juga melihat cara mengkonfigurasi firewall agar saham dapat diakses dari mesin lain di jaringan.

Akhirnya, kami melihat bagaimana melakukan perubahan yang diperlukan untuk memiliki pengaturan Samba yang berfungsi dengan Selinux dalam mode "Penegakan". Jika Anda tertarik dengan Selinux, Anda juga dapat membaca artikel kami tentang masalah ini.

Tutorial Linux Terkait:

  • Hal -hal yang harus diinstal pada ubuntu 20.04
  • Pengantar Otomatisasi Linux, Alat dan Teknik
  • Hal -hal yang harus dilakukan setelah menginstal ubuntu 20.04 FOSSA FOSSA Linux
  • Menguasai loop skrip bash
  • Cara Dual Boot Kali Linux dan Windows 10
  • Mint 20: Lebih baik dari Ubuntu dan Microsoft Windows?
  • Cara Mengatur Server Samba dan Klien di Almalinux
  • Cara Mengatur Server OpenVPN di Ubuntu 20.04
  • Daftar dan Instalasi Klien FTP di Ubuntu 22.04 Linux…
  • Ubuntu 20.04 Panduan