Cara Memasang dan Mengkonfigurasi Samba di RHEL 8 / CentOS 8

Cara Memasang dan Mengkonfigurasi Samba di RHEL 8 / CentOS 8

Samba menyediakan perisian pelayan dan klien untuk membolehkan perkongsian fail antara mesin Linux dan Windows. Memasang dan Mengkonfigurasi di Rhel 8 / CentOS 8, agak mudah. Terus membaca untuk mengetahui cara berkongsi direktori dengan Samba, dan cara menggunakan konteks Selinux yang sesuai dengannya.

Dalam tutorial ini anda akan belajar:

  • Cara memasang samba pada rhel8
  • Cara Mengaktifkan dan Memulakan Daemon SMB dan NMB
  • Cara membuat bahagian samba
  • Cara Menyiapkan Firewall Untuk Membenarkan Sahabi Saham Diakses
  • Cara menyediakan konteks selinux yang betul untuk samba berfungsi dengan betul
Saham Samba di RHEL 8 / CentOS 8

Keperluan perisian dan konvensyen yang digunakan

Keperluan Perisian dan Konvensyen Talian Perintah Linux
Kategori Keperluan, konvensyen atau versi perisian yang digunakan
Sistem Red Hat Enterprise Linux 8
Perisian Pakej samba, coreutils dan policycoreutils-python-utils
Yang lain Kebenaran untuk menjalankan arahan dengan keistimewaan root.
Konvensyen # - Memerlukan arahan Linux yang diberikan untuk dilaksanakan dengan keistimewaan akar sama ada secara langsung sebagai pengguna root atau dengan menggunakan sudo perintah
$ - Memerlukan arahan Linux yang diberikan sebagai pengguna yang tidak layak

Memperkenalkan samba

Samba, seperti yang dinyatakan dalam laman utama projek itu, adalah perisian sumber terbuka, yang dikeluarkan di bawah Gpl lesen, yang membolehkan kami berkongsi fail dan perkhidmatan cetak menggunakan SMB/CIFS Protokol.

Projek ini menyediakan perisian pelayan dan klien untuk membolehkan interoperasi dengan mesin Windows, yang mewakili penyelesaian yang ideal dalam persekitaran bercampur. Dalam tutorial ini, kita akan melihat cara memasang samba di red hat enterprise linux 8, bagaimana untuk menyediakan bahagian samba, bagaimana persediaan firewall untuk membolehkan akses kepada sumber yang dikongsi, dan cara menggunakan konteks selinux yang sesuai.



Pemasangan

Perkara pertama yang perlu kita lakukan ialah memasang samba di mesin kami. Pakej dan perpustakaan yang diperlukan boleh didapati di repositori RHEL 8 / CentOS 8 rasmi, oleh itu kita boleh memasangnya hanya dengan menggunakan YUM atau DNF. Dalam versi rhel/centos ini, perintah pertama ia hanya "pautan" ke yang kedua:

$ sudo dnf memasang samba samba-client

Pakej Samba-klien tidak diperlukan dengan ketat, tetapi utiliti yang disediakan olehnya boleh berguna. Setelah pakej dipasang, kita perlu memulakan dan membolehkan SMB dan juga NMB Daemons di Boot. Yang pertama adalah daemon yang menjaga melakukan pemindahan sebenar dan operasi perkongsian, sementara yang kedua melakukan Netbios Resolusi Nama, Membolehkan Sumber Dipaparkan Semasa Melayari Rangkaian Pada Windows. Kami kini boleh mengaktifkan dan memulakan kedua -dua perkhidmatan SystemD dengan hanya satu arahan:

$ sudo systemctl enable --now smb, nmb

Mengkonfigurasi firewall

Langkah seterusnya ialah Konfigurasi Firewall. Kita mesti membuka pelabuhan yang sesuai, supaya sumber-sumber yang dikongsi samba dapat diakses dari mesin lain. Perisian pengurusan firewall lalai onrhel 8 / centos 8, adalah firewalld.

Nasib baik untuk kami, tidak perlu membuka pelabuhan secara manual: yang perlu kami lakukan adalah menambah perkhidmatan "samba" ke zon kami. "Perkhidmatan" hanyalah abstraksi yang membolehkan kami membenarkan trafik melalui semua pelabuhan yang diperlukan oleh perkhidmatan, dengan merujuk nama perkhidmatan, bukannya perlu persediaan (dan ingat) setiap port yang digunakan olehnya. Sekiranya kita ingin mengumpulkan maklumat mengenai "perkhidmatan", kita boleh menjalankan:

$ SUDO Firewall-CMD-Info-Service Samba Samba Ports: 137/UDP 138/UDP 139/TCP 445/TCP Protokol: Sumber-Ports: Modul: NetBIOS-NS Destinasi: 

Dari output arahan kita melihat bahawa perkhidmatan itu akan membolehkan lalu lintas melalui port 173/UDP, 138/UDP, 139/TCP dan 445/TCP. Untuk menambahkan perkhidmatan secara kekal ke zon lalai, kita boleh menjalankan:

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

Semasa menjalankan arahan kami menggunakan --kekal beralih untuk menjadikan perubahan kita berterusan. Kami juga menganggap lalai zon yang akan digunakan. Sekiranya kita mahu menentukan zon lain untuk tindakan yang akan digunakan, kita akan menggunakan --Kawasan pilihan, dan memberikan nama zon sebagai argumen (e.g. -zon = luaran). Oleh kerana perubahan kita ditetapkan untuk kekal, agar ia menjadi berkesan, kita mesti memuatkan semula konfigurasi firewall:

$ sudo firewall-cmd-reload


Kami dapat mengesahkan bahawa perkhidmatan "Samba" kini menjadi sebahagian daripada zon kami, dengan menjalankan:

$ sudo firewall-cmd-list-perkhidmatan kokpit dhcpv6-client http Samba SSH 

Sekali lagi, jika tiada zon ditentukan, arahan itu digunakan pada zon lalai.

Mengkonfigurasi direktori bersama yang boleh diakses oleh tetamu

Katakan kami ingin berkongsi direktori melalui samba, dan kami ingin membiarkan akses percuma ke direktori ini kepada pengguna tetamu, tanpa mereka perlu memberikan kata laluan. Untuk mendapatkan hasil yang diingini, kita mesti membuat beberapa perubahan pada /etc/samba/smb.Conf fail, dan tambahkan "bait" untuk bahagian kami. Buka fail dengan editor kegemaran anda, dan di [Global] seksyen, tambahkan teks yang diserlahkan:

[Global] Workgroup = Samba Security = User Passdb Backend = TDBSam Printing = Cups PrintCap Name = cawan beban pencetak = Ya Pilihan Cawan = Raw peta ke tetamu = pengguna buruk 

The peta ke tetamu = pengguna buruk arahan, akan memetakan percubaan log masuk dengan nama pengguna yang buruk kepada pengguna tetamu lalai, yang, secara lalai adalah tiada siapa. Ini diperlukan untuk membenarkan akses tanpa nama tanpa perlu memberikan kata laluan.

Selepas perubahan ini, kita mesti menambahkan stanza baru yang didedikasikan untuk bahagian kami pada akhir fail. Kami akan menamakan sumber bersama "Linuxconfig":

[linuxconfig] path = /mnt /kongsi tetamu sahaja = ya 

Dengan persediaan di atas, kami menyatakan bahawa kami ingin berkongsi kandungan /MNT/dikongsi direktori, tanpa memerlukan pengesahan pengguna. Persediaan ini jelas berisiko, dan di sini dilaporkan hanya sebagai contoh: dalam senario dunia sebenar, anda mungkin mahu sekurang -kurangnya menafikan akses tulis kepada tetamu (anda boleh melakukannya dengan menambahkannya Ditulis = tidak arahan). Untuk membuat perubahan berkesan, kita mesti memulakan semula daemon:



$ sudo Systemctl Restart SMB, NMB

Konfigurasikan bahagian yang boleh diakses hanya oleh pengguna berdaftar

Untuk melindungi akses kepada sumber dengan segera masuk, ketika Samba berjalan sebagai pelayan yang berdiri sendiri, kami mesti menambah pengguna yang ada ke pangkalan data samba. Kelayakan pengguna ini diperlukan untuk mengakses direktori bersama. Atas sebab keselamatan, ini adalah amalan yang baik untuk membuat pengguna yang berdedikasi untuk tugas itu, meninggalkan penciptaan direktori rumahnya, dan memberikannya shell palsu:

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

The -M pilihan yang dihantar kepada arahan adalah bentuk pendek untuk --Tidak ada rumah, yang agak jelas; The -s Pilihan, sebaliknya, marilah kita menentukan shell, dalam kes ini yang tidak sah dengan tujuan: /sbin/nologin. Pada masa ini pengguna tidak perlu mempunyai kata laluan yang ditetapkan pada sistem kami.

Sebaik sahaja pengguna dibuat, kita perlu menambahkannya ke pangkalan data samba: kita boleh melaksanakan operasi dengan menggunakan smbpasswd Perintah:

$ sudo smbpasswd -a Sambauser New SMB Kata Laluan: Retype Kata Laluan SMB Baru: Menambah Sambauser Pengguna. 

Setelah menjalankan arahan, kami diminta untuk memberikan kata laluan kepada pengguna, dan juga untuk mengesahkannya: Kata laluan ini hanya akan sah dalam konteks samba, tidak ada kaitan dengan akaun pengguna di sistem kami. Untuk menyekat bahagian yang kami buat sebelum ini, kami perlu membuat sedikit perubahan dalam bahagian khusus:

[linuxconfig] path = /mnt /dikongsi Tetamu OK = Tidak 

Kami dapat mengesahkan bahawa persediaan kami sah, dengan menggunakan testparm Perintah:



$ testparm beban fail konfigurasi smb dari/etc/samba/smb.conf rlimit_max: Meningkatkan RLIMIT_MAX (1024) ke bahagian pemprosesan tingkap minimum (16384) bahagian pemprosesan "[rumah]" bahagian pemprosesan "[pencetak]" bahagian pemprosesan "[cetak $]". Peranan Pelayan: role_standalone 

Sekali lagi, kita mesti memulakan semula SMB dan NMB Daemons untuk perubahan kita menjadi berkesan. Direktori bersama kini boleh diakses hanya setelah memberikan kelayakan yang betul.

Persediaan selinux untuk samba

Selinux sering dilihat seperti komplikasi, dan dilumpuhkan segera. Ini tidak perlu: kita hanya mesti belajar bagaimana mengkonfigurasinya, dan memanfaatkan peningkatan dalam keselamatan yang disediakannya. Agar bahagian samba kami berfungsi apabila Selinux berada dalam mod "menguatkuasakan", kita mesti menetapkan konteks yang sesuai kepada direktori dan fail bersama kami:

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

Dalam contoh di atas, kami menggunakan CHCON perintah dengan -t pilihan, untuk menukar Jenis bahagian konteks selinux ke samba_share_t. Kami juga menggunakan -R Tukar untuk membuat perintah rekursif. Perubahan ini akan bertahan dengan reboot, tetapi tidak melabel sistem jika dasar lalai wujud untuk direktori dan fail kami, kerana dalam kes sedemikian persediaan lalai akan digunakan semula.

Sekiranya kita mahu perubahan kita dapat bertahan dalam peristiwa relabel, kita mesti menambah peraturan kita kepada dasar. Kita boleh melakukan ini dengan menggunakan sememi Perintah:

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

Sejak kami menggunakan (/.*)? regex, peraturan akan digunakan untuk semua kandungan direktori "dikongsi", dan ke direktori itu sendiri. Kami dapat mengesahkan bahawa peraturan kami telah ditambah kepada dasar dengan menyenaraikan label yang digunakan pada sistem kami:

$ sudo semanage fcontext -l | grep/mnt/shared/mnt/dikongsi (/.*)? Semua fail System_u: Object_r: Samba_share_t: s0 

Sekarang kita mesti mengadakan persediaan samba yang berfungsi. Untuk selanjutnya tweak konfigurasi samba kita mungkin juga perlu memanipulasi selinux booleans. Contohnya, apabila menambah pengguna yang ada ke samba, untuk membiarkan direktori rumah mereka dikongsi, kita mesti membolehkan selinux boolean yang berdedikasi. Untuk menyenaraikan semua boolean yang berkaitan dengan samba, kita boleh lari:



$ sudo semenage boolean -l | grep samba samba_create_home_dirs (off, off) membenarkan samba untuk membuat rumah dirs samba_domain_controller (off, off) Benarkan samba mengeksport semua ro samba_export_all_rw (off, off) membenarkan samba mengeksport semua rw samba_libggfapi (off, off) samba_share_fusefs (off, off) membenarkan samba untuk berkongsi fusefs samba_share_nfs (off, off) membenarkan samba untuk berkongsi nfs sanlock_use_samba (off, off) Benarkan Gunakan untuk Samba Home Dirs Virt_use_samba (off, off) Benarkan Virt menggunakan Samba 

Dalam output di atas, lajur kedua menunjukkan nilai semasa boolean, manakala yang ketiga yang lalai (kedua -duanya dimatikan, dalam kes ini). Boolean yang ingin kami aktifkan, untuk membolehkan perkongsian direktori rumah, adalah samba_enable_home_dirs. Kita boleh melakukan operasi dengan menggunakan setsebool Perintah:

$ sudo setsebool samba_enable_home_dirs = 1

Kesimpulan

Dalam tutorial ini kita melihat cara memasang samba pada sistem rhel 8 / centos 8. Kami juga melihat cara berkongsi direktori, membenarkan akses kepada tetamu atau menyekatnya kepada pengguna yang disahkan. Kami juga melihat cara mengkonfigurasi firewall agar bahagian dapat diakses dari mesin lain di rangkaian.

Akhirnya, kami melihat bagaimana untuk melakukan perubahan yang diperlukan untuk membuat persediaan samba kerja dengan Selinux dalam mod "Menguatkuasakan". Sekiranya anda berminat Selinux, anda juga boleh membaca artikel kami mengenai subjek.

Tutorial Linux Berkaitan:

  • Perkara yang hendak dipasang di Ubuntu 20.04
  • Pengenalan kepada Automasi, Alat dan Teknik Linux
  • Perkara yang perlu dilakukan setelah memasang ubuntu 20.04 Focal Fossa Linux
  • Menguasai Gelung Skrip Bash
  • Cara Dual Boot Kali Linux dan Windows 10
  • Mint 20: Lebih baik daripada Ubuntu dan Microsoft Windows?
  • Cara Menyiapkan Pelayan Samba dan Pelanggan di Almalinux
  • Cara Menyiapkan Pelayan OpenVPN di Ubuntu 20.04
  • Senarai dan Pemasangan Pelanggan FTP di Ubuntu 22.04 Linux ..
  • Ubuntu 20.04 Panduan