Samba Server

30/12/2020

Samba là dịch vụ của hệ điều hành Linux, chạy trên nền giao thức SMB (Server Message Block) cho phép chia sẻ file và máy in với các máy chạy Windows. SMB là giao thức được các hệ điều hành của Microsoft sử dụng để chia sẻ dữ liệu qua mạng. Linux Samba cũng dựa vào giao thức SMB để viết ra một số tiến trình điển hình như smbd, nmbd, để “nói chuyện “ với các hệ điều hành của Microsoft để người dùng có thể làm việc với máy Linux qua Network Neighborhood.

1. Giới thiệu về Samba

Samba là một ứng ụng chạy trên Unix và nó mô phỏng một hệ thống Windows. Samba cho phép một hệ thống Unix gia nhập vào “Network neighborhood” và người dùng Windows có thể truy cập tài nguyên trên Unix.

Samba thực hiện được nhờ vào sự mô phỏng giao thức CIFS hay” Common Internet File System” và giao thức truyền tin SMB hay “Server Message Block”

Nói gọn lại samba là một phần mệ miễn phí chủ yếu sử dụng để chia sẻ file giữa các nền tảng khác nhau như Windows và Linux bằng cách sử dụng giao thức SMB/CIFS.

Samba bao gồm 2 chương trính chính và một số công cụ hỗ trợ. Hai chương trình chính là.

  • smbd : dịch vụ tệp và máy in, xác thực phân quyền truy cập tài nguyên.
  • nmdb : Phân giải tên và thông báo cá dịch vụ ra bên ngoài

Một sô công cụ hỗ trợ samba là.

  • smbclient: có chức năng tương tự NFS, kết nối từ hệ thống unix tới smb share của một hệ thống windows để truyền tệp, gửi tệp.
  • nmblookup: Phân giải tên NetBIOS. để tìm địa chỉ IP tương ứng và các thông tin của máy chạy Windows
  • swat : cho phép cấu hình samba qua giao diện web.

2. Mô hình

3. Hướng dẫn cấu hình Samba trên máy Centos

Chuẩn bị

  • 1 máy centos 7, 1 máy win
  • sử đụng chung dải mạng NAT

Cấu hình Samba Sever

  1. Tiến hành cài đặt các gói Samba:
yum install samba samba-client samba-common 
  1. Cho phép Samba dùng tường lửa
firewall-cmd --permanent --zone=public --add-service=samba firewall-cmd --reload 

Hoặc mở port cho Samba kết nối :

firewall-cmd --permanent --add-port=137/tcp firewall-cmd --permanent --add-port=138/tcp firewall-cmd --permanent --add-port=139/tcp firewall-cmd --permanent --add-port=445/tcp firewall-cmd --permanent --add-port=901/tcp firewall-cmd --reload 

Cấu hình máy Win

  • Chuột phải vào

This PC hoặc My ComputerPropertiesAdvanced system settingsComputer Name.

Đổi workgroup của máy Win là WORKGROUP

  • Tắt hết tường lửa trên máy win

Lựa chọn 1: Truy cập chế độ công khai

Cấu hình trên Centos

1. Chạy lệnh sau để lưu 1 bản config.

cp /etc/samba/smb.conf /etc/samba/smb.conf.orig 

2. Tạo một thư mục cần share và phân quyền cho thư mục

mkdir -p /srv/samba/anonymous chmod -R 0775 /srv/samba/anonymous chown -R nobody:nobody /srv/samba/anonymous 

3. Cho phép truy cập từ SELinux

Tắt SELinux.

vim /etc/sysconfig/selinux  

Đặt giá trị SELINUX = disabled.

Reset máy để thay đổi có hiệu lực.

Cách khác :

Điểm lưu ý thêm là trong CentOS hệ thống bảo mật sử dụng bởi nhiều lớp, thư mục tuan hay public gì đó do ta tạo ra cũng cần phải báo cho SELinux biết rằng nó không phải là thư mục hệ thống được bảo vệ mà là thư mục quản lý bởi samba, điều này được thực hiện bằng lệnh

chcon –t samba_share_t  /<path-filename> 

Ở demo này tôi làm như sau

chcon -t samba_share_t /srv/samba/anonymous 

4. Chỉnh sửa file config

vim /etc/samba/smb.conf 

Nội dung file config

[global] 	workgroup = WORKGROUP 	netbios name = centos 	security = user [Anonymous] 	comment = Anonymous File Server Share 	path = /srv/samba/anonymous 	browsable =yes 	writable = yes 	guest ok = yes 	read only = no 	force user = nobody 

5. Kiểm tra samba setting bằng câu lệnh sau

testparm 

Nó sẽ in ra nội dung tương tự như sau

Load smb config files from /etc/samba/smb.conf rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384) Processing section "[homes]" Processing section "[printers]" Processing section "[print$]" Processing section "[Anonymous]" Loaded services file OK. Server role: ROLE_STANDALONE  Press enter to see a dump of your service definitions  # Global parameters [global] 	netbios name = centos 	printcap name = cups 	security = USER 	idmap config * : backend = tdb 	cups options = raw [homes] 	comment = Home Directories 	browseable = No 	inherit acls = Yes 	read only = No 	valid users = %S %D%w%S [printers] 	comment = All Printers 	path = /var/tmp 	browseable = No 	printable = Yes 	create mask = 0600 [print$] 	comment = Printer Drivers 	path = /var/lib/samba/drivers 	create mask = 0664 	directory mask = 0775 	write list = root [Anonymous]  	comment = Anonymous File Server Share 	path = /srv/samba/anonymous 	force user = nobody 	guest ok = Yes 	read only = No

6. Bật và khởi động Samba Services để nó chạy tự động sau mỗi lần khởi động máy

systemctl enable smb.service systemctl enable nmb.service systemctl start smb.service systemctl start nmb.service 

Test thử trên máy win

  • Bấm tổ hợp phím Win + R
  • Nhập địa chỉ IP của Sever
\192.168.43.168 

Và chúng ta sẽ tìm thấy máy Centos như trong ảnh. Truy cập và thử tạo file

Lựa chọn 2: Truy cập chế độ bảo mật

Cấu hình trên Centos

Đầu tiên tạo người dùng và group muốn để bảo mật, sau đó đặt mật khẩu truy cập cho từng người dùng

groupadd smbgrp usermod tecmint -aG smbgrp smbpasswd -a tecmint 

Sau đó tạo và phân quyền thư mục cho file

mkdir -p /srv/samba/secure chmod -R 0770 /srv/samba/secure chown -R root:smbgrp /srv/samba/secure chcon -t samba_share_t /srv/samba/secure 

Sau đó chỉnh sửa file config

vim /etc/samba/smb.conf 

Nội dung file config

[Secure] 	comment = Secure File Server Share 	path =  /srv/samba/secure 	valid users = @smbgrp 	guest ok = no 	writable = yes 	browsable = yes 

Kiểm tra

testparm 

Khởi động lại dịch vụ

systemctl restart smb.service systemctl restart nmb.service 

Kiểm tra xem kết nối trên Win đã hoạt động

  • Bấm tổ hợp phím Win + R
  • Nhập địa chỉ IP của Sever
\192.168.43.168 

Và chúng ta đã bảo mât được thư mục Secure.

Nguồn tham khảo:

https://github.com/thanh474/thuc-tap/blob/master/tim-hieu-va-lab-samba/samba.md

https://uet.vnu.edu.vn/~thanhld/lects/netos/Tuan%2015%20-%20SMB.html

https://sites.google.com/site/anhtt01/bai-viet/centos/samba-server

ONET IDC thành lập vào năm 2012, là công ty chuyên nghiệp tại Việt Nam trong lĩnh vực cung cấp dịch vụ Hosting, VPS, máy chủ vật lý, dịch vụ Firewall Anti DDoS, SSL… Với 10 năm xây dựng và phát triển, ứng dụng nhiều công nghệ hiện đại, ONET IDC đã giúp hàng ngàn khách hàng tin tưởng lựa chọn, mang lại sự ổn định tuyệt đối cho website của khách hàng để thúc đẩy việc kinh doanh đạt được hiệu quả và thành công.
Bài viết liên quan

[CEPH] [Lý thuyết] Điều ít để ý về phiên bản của CEPH

Thói quen của mình (team mình) là khi tìm hiểu sản phẩm nào đó thường tìm hiểu về lịch sử phát...
30/12/2020

Hướng dẫn cài đặt nagios core 4.x trên Centos 7

Ở bài trước chúng ta đã cùng đi tìm hiểu nagios là gì và cách thức nó hoạt động. Vậy nó được...
28/12/2020

Firewall [ Phần 4 ] Xây dựng mô hình firewall với Firewalld Service

Lời mở đầu Sau series những bài tìm hiểu về firewall, hôm nay để tổng kết lại những gì tìm...
30/12/2020