Trong bài viết Thiết lập kết nối đến máy chủ Samba trên Linux, mình đã hướng dẫn cách cài đặt SMB Client trên Linux để truy cập vào thư mục share trên Windows. Còn lần này mình sẽ thao tác ngược lại, thiết lập máy chủ chia sẻ file Sambe File Server trên Linux để có thể truy cập được từ Windows hoặc MacOS.
Máy chủ Samba là một máy chủ chia sẻ tập tin được dùng trong mạng nội bộ, dựa trên giao thức SMB (Server Message Block). Giao thức SMB còn được biết đến với cái tên CIFS (Common Internet File Sharing) khi được Microsoft thừa hưởng và tích hợp trên hệ điều hành Windows.
I. Thiết lập Samba File Server
Bạn có thể cài đặt Samba trực tiếp lên Linux bằng lệnh sudo apt install samba
, theo hướng dẫn rất chi tiết của Digital Ocean: How To Set Up a Samba Share For A Small Organization on Ubuntu 16.04.
Tuy nhiên, mình không theo cách này mà sử dụng Docker Containe của dperson để thiết lập Samba File Server cho nhanh gọn lẹ. Đỡ phải cấu hình, chỉnh sửa đủ thứ thông số trong Linux.
Bạn cần phải cài đặt Docker và Docker-Compose trước khi tiếp tục với các thao tác bên dưới: Hướng dẫn cài đặt Docker, Docker Compose trên Ubuntu 20.04
Tạo thư mục mới với tên gọi samba và tạo file docker-compose.yml
mkdir ~/samba
cd ~/samba
nano docker-compose.yml
Nhập vào nội dung như sau và lưu lại
version: '3.4'
services:
samba:
image: dperson/samba
environment:
- TZ='Asia/Ho_Chi_Minh'
- SHARE=Data;/mnt;yes;no;no;blntech;none;none;Data
- WORKGROUP=workgroup
- USER=blntech;Aa123
- NMBD=True
networks:
- default
ports:
- "137:137/udp"
- "138:138/udp"
- "139:139/tcp"
- "445:445/tcp"
read_only: false
tmpfs:
- /tmp
restart: unless-stopped
stdin_open: true
tty: true
volumes:
- /media/storage:/mnt:z
networks:
default:
Có 3 thông số bạn cần phải thay đổi cho phù hợp:
- SHARE=Data;/mnt;yes;no;no;blntech;none;none;Data
: Thay thếblntech
bằng tên username bạn sẽ dùng để truy cập vào SMB Share- USER=blntech;Aa123
: Thay thếblntech
bằng tên username đã chỉnh lại ở mục- SHARE
ở trên và thayAa123
bằng mật khẩu đăng nhập.- /media/storage:/mnt:z
: Thay thế/media/storage
bằng đường dẫn thư mục bạn muốn chia sẻ.
Kích hoạt Samba Server
docker-compose up -d
II. Cấu hình tường lửa
Nếu bạn đang dùng UFW làm tường lửa bảo mật cho Linux, cần thêm Rule để cho phép các cổng của Samba hoạt động.
sudo ufw allow 139
sudo ufw allow 445
sudo ufw allow 137
sudo ufw allow 138
Nếu bạn sử dụng VPS của Oracle Cloud, cần phải thiết lập thêm bước mở Port 137, 138, 139, 445 trong Security List. Xem hướng dẫn ở đây:
Hướng dẫn cấu hình căn bản cho máy ảo Oracle Cloud sau khi thiết lập
III. Truy cập vào Samba Server
1. Linux
Tham khảo lại bài viết này, mình đã có hướng dẫn cách kết nối vào SMB Share trên Linux
2. Windows 10
Mặc định, Windows đã có sẵn tính năng Samba Client, nên có thể thao tác được ngay mà không phải cài đặt thêm phần mềm.
Mở Explorer, right click vào This PC, chọn Add a network location
Bấm Next
Chọn mục Choose a custom network location và bấm Next
Nhập vào địa chỉ IP của Samba Server kèm theo tên của thư mục Share và bấm Next
Nhập tài khoản và mật khẩu bạn đã thiết lập trong file Docker-compose.yml
trước đó. Chú ý phần tên tài khoản cần phải có dạng WORKGROUPusername
. Bấm OK để xác nhận
Đặt tên cho ổ đĩa mạng và bấm Next
Bấm Finish để hoàn thành
Ổ đĩa mạng được chia sẻ từ Samba Server đã hiện ra trong Explorer của Windows 10.
3. MacOS
MacOS cũng tích hợp sẵn SMB Client như Windows, có thể kết nối được ngay từ Finder.
Mở Finder, sau đó di chuyển chuột lên Menu Bar, chọn Go –> Connect to Server
Nhập vào địa chỉ của Samba Server theo định dạng smb:\\<IP-Address>\<Share-Name>
và bấm Connect để kết nối.
Chọn Registered User và nhập vào tên tài khoản / mật khẩu (blntech
/ Aa123
). Với MacOS, bạn không cần gõ thêm WORKGROUP
trong chỗ tên tài khoản, chỉ cần sử dụng đúng tên tài khoản blntech
như đã thiết lập trong file docker-compose.yml
là được.
Ổ đĩa mạng đã được kết nối thành công và hiện ra trong Finder của MacOS
Mình đã thử nghiệm các thiết lập trên đây để chia sẻ Block Volume của Oracle Cloud với các máy tính nội bộ trong nhà. Thấy hoạt động khá ổn!
Chúc bạn cài đặt thành công!
Nguồn: thuanbui