Berbagi File Lokal Sederhana dengan Samba
Apa itu 'Samba'?
Samba adalah implementasi berkualitas tinggi dari server message block protocol (SMB). Awalnya dikembangkan oleh Microsoft untuk menghubungkan komputer windows bersama-sama melalui jaringan area lokal, sekarang banyak digunakan untuk komunikasi jaringan internal.
Apple dulu mempertahankan berbagi
file independennya sendiri yang disebut "Apple Filing Protocol (AFP)", namun belakangan ini, apple juga beralih ke SMB.
Buat Folder
Membuat folder.
~]# mkdir --verbose /srv/public
Verify folder exists:
~]$ ls --directory /srv/public
Output:
/srv/public
Atur Konteks Keamanan Sistem File
Untuk memiliki akses baca dan tulis ke folder publik, konteks
keamanan public_content_rw_t akan digunakan untuk panduan
ini. Mereka yang ingin membaca saja dapat
menggunakan: public_content_t.
Beri label file dan direktori yang telah dibuat dengan jenis public_content_rw_t untuk membagikannya dengan izin baca dan tulis melalui vsftpd. Layanan lain, seperti Apache HTTP Server, Samba, dan NFS, juga memiliki akses ke file berlabel jenis ini. Ingatlah bahwa boolean untuk setiap layanan harus diaktifkan sebelum mereka dapat menulis ke file berlabel jenis ini.
Tambahkan /srv/public sebagai "public_content_rw_t" di registri
kustomisasi konteks keamanan sistem file lokal sistem:
~]# semanage fcontext --add --type public_content_rw_t
"/srv/public(/.*)?"
Verifikasi security system:
~]# semanage fcontext --locallist --list
Output:
/srv/public(/.*)?
all files system_u:object_r:public_content_rw_t:s0
Sekarang folder telah ditambahkan ke
registri konteks keamanan sistem file sistem lokal; Perintah restorecon dapat
digunakan untuk 'mengembalikan' konteks ke folder:
$~]# restorecon -Rv /srv/public
Verifikasi security:
~]$ ls --directory --context /srv/public/
Output:
unconfined_u:object_r:public_content_rw_t:s0 /srv/public/
Membuat Grup
Berbagi
Untuk memungkinkan pengguna hanya membaca, atau membaca dan menulis akses ke folder berbagi publik, buat dua grup baru yang mengatur hak istimewa ini: public_readonly dan public_readwrite.
Akun pengguna dapat diberikan akses untuk membaca saja, atau membaca dan menulis dengan menambahkan akun mereka ke grup masing-masing (dan mengizinkan login melalui Samba membuat kata sandi smb). Proses ini ditunjukkan di bagian: "Uji Berbagi Publik (localhost)".
Membuat izin grup publik:
~]# groupadd public_readonly
~]# groupadd public_readwrite
Membuat public group:
~]$ getent group public_readonly public_readwrite
Output:
public_readonly:x:1009:
public_readwrite:x:1010:
Atur Izin
Sekarang atur izin pengguna yang sesuai ke folder bersama publik:
Izin user dan grup dalam folder:
~]# chmod --verbose 2700 /srv/public
~]# setfacl -m group:public_readonly:r-x /srv/public
~]# setfacl -m default:group:public_readonly:r-x /srv/public
~]# setfacl -m group:public_readwrite:rwx /srv/public
~]# setfacl -m default:group:public_readwrite:rwx /srv/public
Verifikasi izin pengguna:
~]$ getfacl --absolute-names /srv/public
Output:
file:
/srv/public
owner:
root
group:
root
flags:
-s-
user::rwx
group::---
group:public_readonly:r-x
group:public_readwrite:rwx
mask::rwx
other::---
default:user::rwx
default:group::---
default:group:public_readonly:r-x
default:group:public_readwrite:rwx
default:mask::rwx
default:other::---
Samba Instalasi
~]# dnf install samba
Nama host (seluruh
sistem)
Samba akan menggunakan nama komputer
saat berbagi file; ada baiknya untuk mengatur nama host sehingga komputer dapat
ditemukan dengan mudah di jaringan lokal.
Lihat hostname:
~]$ hostnamectl status
Jika Anda ingin mengubah nama host Anda menjadi sesuatu yang lebih
deskriptif, gunakan perintah:
~]# hostnamectl set-hostname "gilang"
Firewall
~]# firewall-cmd --add-service=samba --permanent
~]# firewall-cmd --reload
Verifikasi firewall samba:
~]$ firewall-cmd --list-services
Output :
samba
Izin Menulis
Secara default Samba tidak diberikan izin untuk memodifikasi file apa pun dari sistem. Ubah konfigurasi keamanan sistem untuk memungkinkan Samba memodifikasi jalur sistem file apa pun yang memiliki konteks keamanan public_content_rw_t.
Untuk kenyamanan, Fedora memiliki
SELinux Boolean bawaan untuk tujuan ini yang disebut: smbd_anon_write, mengatur ini ke true akan memungkinkan Samba untuk menulis di
jalur sistem file apa pun yang telah diatur ke konteks keamanan public_content_rw_t.
Bagi mereka yang berharap Samba hanya
memiliki akses baca-saja ke folder berbagi publik mereka, mereka dapat memilih
lewati langkah ini dan tidak mengatur boolean ini.
~]# setsebool -P smbd_anon_write=1
Verifkasi perintah:
$ getsebool smbd_anon_write
Output:
smbd_anon_write
--> on
Layanan Samba 'smb'
Layanan Samba "Server Message Block" (SMB) adalah untuk
berbagi file dan printer melalui jaringan lokal.
Enable and start layanan samba:
~]# systemctl enable smb.service
~]# systemctl start smb.service
Verifikasi smb service:
~]# systemctl status smb.service
Uji Berbagi Publik
(localhost)
Untuk menunjukkan mengizinkan dan
menghapus akses ke folder bersama publik, buat pengguna baru bernama samba_test_user, pengguna ini akan diberikan izin
terlebih dahulu untuk membaca folder publik, lalu akses untuk membaca dan
menulis folder publik.
Proses yang sama yang ditunjukkan di
sini dapat digunakan untuk memberikan akses ke folder bersama publik Anda
kepada pengguna lain di komputer Anda. Samba_test_user akan
dibuat sebagai akun pengguna yang terkunci, melarang login normal ke komputer.
Membuat user, dan mengunci akun.
~]# useradd gilang
~]# passwd --lock gilang
Membuat password akun:
~]# smbpasswd -a gilang
Uji akses Baca Saja
ke Berbagi Publik:
Menambahkan gilang ke public group:
~]# gpasswd --add gilang public_readonly
Login (public folder):
~]$ smbclient --user=gilang //localhost/public
Test membuat file
smb: \> ls
smb: \> mkdir error
smb: \> exit
menghapus gilang dari grup publik:
gpasswd --delete gilang public_readonly
Uji akses Baca dan
Tulis ke Berbagi Publik:
Menambahkan gilang ke public group:
~]# gpasswd --add samba_test_user public_readwrite
Login (public folder):
~]$ smbclient --user=samba_test_user //localhost/public
Test membuat dan menghapus file
smb: \> ls
smb: \> mkdir success
smb: \> rmdir success
smb: \> exit
menghapus gilang dari grup publik:
~]# gpasswd --delete samba_test_user public_readwrite
Setelah pengujian selesai, untuk keamanan, nonaktifkan kemampuan samba_test_user untuk masuk melalui samba.
Mengeluarkan gilang login via samba:
~]# smbpasswd -d samba_test_user
Berikan Izin Samba untuk Berbagi Folder Publik
Set SELinux Boolean allowing Samba to read and write to home folders:
~]# setsebool -P samba_enable_home_dirs=1
Verify bool has been correctly set:
$ getsebool samba_enable_home_dirs
Output:
samba_enable_home_dirs
--> on
Berbagi home file denganTambahkan
yang berikut ini ke file smb.conf sistem:
# The home folder dynamically links to the user home.
# If 'bob' user uses Samba:
# The homes section is used as the template for a new virtual share:
# [homes]
# ... (various options)
# A virtual section for 'bob' is made:
# Share is modified: [homes] -> [bob]
# Path is added: path = /home/bob
# Any option within the [homes] section is appended.
# [bob]
# path = /home/bob
# ... (copy of various options)
# here is our share,
# same as is included in the Fedora default configuration.
[homes]
comment = Home Directories
valid users = %S, %D%w%S
browseable = No
read only = No
inherit acls = Yes
Muat Ulang
Konfigurasi Samba
~]# smbcontrol all reload-config
Uji Home Directory
Sharing
Ganti user dan buat folder di home directory:
~]# su samba_test_user
samba_test_user:~]$ cd ~
samba_test_user:~]$ mkdir --verbose test_folder
samba_test_user:~]$ exit
login via Samba:
~]# smbpasswd -e gilang
Login to the local Samba Service (samba_test_user home folder):
$ smbclient --user=gilang //localhost/gilang
Test (all commands should complete without error):
smb: \> ls
smb: \> ls test_folder
smb: \> rmdir test_folder
smb: \> mkdir home_success
smb: \> rmdir home_success
smb: \> exit
Disable gilang untuk login via Samba:
~]# smbpasswd -d gilang
Komentar
Posting Komentar