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

Hướng dẫn sử dụng NRPE của nagios để giám sát một máy linux

Để có thể giám sát một máy chủ từ xa với nagios, Ta có thể sử dụng nhiều loại plugins khác...
30/12/2020

Giới thiệu về Nginx Proxy Manager để quản lý reverse proxy bằng giao diện đồ họa

Bạn đã làm việc với Nginx? Bạn đã sử dụng tính năng reverse proxy cho các website bằng Nginx?...
30/12/2020

[FTP][Phần 1]Tìm hiểu về giao thức FTP(File Transfer Protocol)

FTP(viết tắt của File Transfer Protocol) là một trong những giao thức Internet trên tầng ứng dụng....
30/12/2020
Bài Viết

Bài Viết Mới Cập Nhật

SỰ KHÁC BIỆT GIỮA RESIDENTIAL PROXY VÀ PROXY DATACENTER
17/02/2024

Mua Proxy v6 US Private chạy PRE, Face, Insta, Gmail
07/01/2024

Mua shadowsocks và hướng dẫn sữ dụng trên window
05/01/2024

Tại sao Proxy Socks lại được ưa chuộng hơn Proxy HTTP?
04/01/2024

Mua thuê proxy v4 nuôi zalo chất lượng cao, kinh nghiệm tránh quét tài khoản zalo
02/01/2024