Giao thức SMB trên Windows Server và vấn đề chia sẻ File Sharing trong môi trường mạng doanh nghiệp
Nếu hệ thống file NTFS giúp kỹ sư chúng ta kiểm soát ai được phép truy cập dữ liệu, thì SMB chính là giao thức giúp đưa dữ liệu đó ra mạng để người dùng sử dụng. Nói một cách đơn giản để các bạn so sánh hai thuật ngữ:
SMB (Server Message Block) là giao thức chia sẻ file được Windows client và Windows Server sử dụng để truy cập tài nguyên qua mạng. Điều đáng ngạc nhiên là SMB không chỉ chia sẻ file, nó còn hỗ trợ:
Khi user mở:
\\FileServer\Projects
Quy trình diễn ra gồm 7 bước cụ thể như sau:
Ví dụ:
SMB đã tiến hóa khá mạnh. SMB 1.x
Phiên bản rất cũ. Từng phổ biến trong thời Windows XP / Server 2003. Nhược điểm của SMB 1.X:
Đây là bước nhảy lớn. Microsoft bổ sung:
Bổ sung tính năng Scale-Out File Server. Cho phép nhiều node cùng phục vụ file share. Rất hữu ích cho clustering. Ngoài ra Microsoft bắt đầu cho phép loại bỏ SMB 1.x. SMB 3.1.1
Phiên bản hiện đại hơn. Bổ sung thêm tính năng Pre-authentication integrity. Ngăn tấn công man-in-the-middle ngay từ giai đoạn handshake. Encryption improvements giúp Mã hóa mạnh hơn. Tính năng Cluster dialect fencing giúp tăng độ an toàn cho clustered environments. LAB hướng dẫn cấu hình SMB Share
Windows Server cung cấp nhiều cách. 1. GUI (Server Manager)
Đây là cách admin mới thường dùng. Đi vào:
Server Manager
→ File and Storage Services
→ Shares
→ Tasks
→ New Share Các SMB Share Profiles
Windows cung cấp 3 profile chính. Quick
Tạo share nhanh. Dùng khi:
Cho phép chúng ta cấu hình sâu:
Dành cho workload ứng dụng.
Ví dụ:
System Engineer nên quen PowerShell. Tạo SMB Share
New-SmbShare -Name Finance -Path D:\Finance Xem share hiện có
Get-SmbShare Thay đổi cấu hình share
Set-SmbShare
Ví dụ bật encryption:
Set-SmbShare -Name Finance -EncryptData $true Xóa share
Remove-SmbShare -Name Finance Xem session đang kết nối
Get-SmbSession
Lệnh này rất Hữu ích khi troubleshooting:
"ai đang mở file?" Xem file đang mở
Get-SmbOpenFile
Ví dụ khi gặp:
"File đang được sử dụng, không rename được." Giới hạn bandwidth
Set-SmbBandwidthLimit
Hữu ích khi tránh SMB chiếm hết băng thông. Best Practices thực chiến
1. Disable SMBv1
Nếu còn bật SMB1 đó là lỗi kỹ thuật thiết kế. 2. Ưu tiên SMB Encryption
tính năng mã hóa đặc biệt hữu ích cho các loại tài nguyên như:
Không cấp quyền lung tung cho từng user. 4. Tách Share Permission và NTFS hợp lý
Mô hình phổ biến:
Share:
Everyone = Full Control
NTFS:
quản lý thật sự tại đây.
Cách này giúp đơn giản hóa. 5. Monitor active sessions
Các lệnh:
Get-SmbSession
Get-SmbOpenFile
rất hữu ích khi support người dùng. Một ví dụ thực tế
Finance team cần thư mục dùng chung.
Bạn hãy tạo:
New-SmbShare -Name Finance -Path D:\Finance
Sau đó phân quyền trên NTFS:
\\FS01\Finance
Windows sẽ:
Nếu networking có:
Nếu hệ thống file NTFS giúp kỹ sư chúng ta kiểm soát ai được phép truy cập dữ liệu, thì SMB chính là giao thức giúp đưa dữ liệu đó ra mạng để người dùng sử dụng. Nói một cách đơn giản để các bạn so sánh hai thuật ngữ:
- NTFS = khóa cửa bên trong
- SMB = cánh cửa để người dùng đi vào
- \\fileserver\Finance
- \\dc01\SharedDocs
- map network drive Z:
SMB (Server Message Block) là giao thức chia sẻ file được Windows client và Windows Server sử dụng để truy cập tài nguyên qua mạng. Điều đáng ngạc nhiên là SMB không chỉ chia sẻ file, nó còn hỗ trợ:
- File sharing
- Printer sharing
- Named pipes
- Inter-process communication
Khi user mở:
\\FileServer\Projects
Quy trình diễn ra gồm 7 bước cụ thể như sau:
- Client tìm địa chỉ IP của FileServer qua DNS
- Client kết nối TCP tới server (thường là port 445)
- Quá trình bắt tay SMB negotiation diễn ra
- Quá trình xác thực Authentication qua Active Directory/Kerberos hoặc NTLM
- Máy chủ SMB Server kiểm tra quyền Share Permission
- Máy chủ Server kiểm tra NTFS Permission
- Nếu mọi thức là hợp lệ → user truy cập dữ liệu
Ví dụ:
- Share = Full Control
- NTFS = Read
SMB đã tiến hóa khá mạnh. SMB 1.x
Phiên bản rất cũ. Từng phổ biến trong thời Windows XP / Server 2003. Nhược điểm của SMB 1.X:
- chậm
- kém bảo mật
- dễ bị khai thác
Đây là bước nhảy lớn. Microsoft bổ sung:
- SMB Multichannel
- SMB Direct (RDMA)
- Transparent Failover
- SMB Encryption
Bổ sung tính năng Scale-Out File Server. Cho phép nhiều node cùng phục vụ file share. Rất hữu ích cho clustering. Ngoài ra Microsoft bắt đầu cho phép loại bỏ SMB 1.x. SMB 3.1.1
Phiên bản hiện đại hơn. Bổ sung thêm tính năng Pre-authentication integrity. Ngăn tấn công man-in-the-middle ngay từ giai đoạn handshake. Encryption improvements giúp Mã hóa mạnh hơn. Tính năng Cluster dialect fencing giúp tăng độ an toàn cho clustered environments. LAB hướng dẫn cấu hình SMB Share
Windows Server cung cấp nhiều cách. 1. GUI (Server Manager)
Đây là cách admin mới thường dùng. Đi vào:
Server Manager
→ File and Storage Services
→ Shares
→ Tasks
→ New Share Các SMB Share Profiles
Windows cung cấp 3 profile chính. Quick
Tạo share nhanh. Dùng khi:
- lab
- testing
- nhu cầu đơn giản
Cho phép chúng ta cấu hình sâu:
- access-based enumeration
- caching
- encryption
- offline settings
- quotas
Dành cho workload ứng dụng.
Ví dụ:
- Hyper-V
- SQL workloads
- clustered applications
System Engineer nên quen PowerShell. Tạo SMB Share
New-SmbShare -Name Finance -Path D:\Finance Xem share hiện có
Get-SmbShare Thay đổi cấu hình share
Set-SmbShare
Ví dụ bật encryption:
Set-SmbShare -Name Finance -EncryptData $true Xóa share
Remove-SmbShare -Name Finance Xem session đang kết nối
Get-SmbSession
Lệnh này rất Hữu ích khi troubleshooting:
"ai đang mở file?" Xem file đang mở
Get-SmbOpenFile
Ví dụ khi gặp:
"File đang được sử dụng, không rename được." Giới hạn bandwidth
Set-SmbBandwidthLimit
Hữu ích khi tránh SMB chiếm hết băng thông. Best Practices thực chiến
1. Disable SMBv1
Nếu còn bật SMB1 đó là lỗi kỹ thuật thiết kế. 2. Ưu tiên SMB Encryption
tính năng mã hóa đặc biệt hữu ích cho các loại tài nguyên như:
- dữ liệu nhạy cảm
- file server giữa site
- môi trường cần tính tương thích cao compliance như ngân hàng, quân đội, công an....
Không cấp quyền lung tung cho từng user. 4. Tách Share Permission và NTFS hợp lý
Mô hình phổ biến:
Share:
Everyone = Full Control
NTFS:
quản lý thật sự tại đây.
Cách này giúp đơn giản hóa. 5. Monitor active sessions
Các lệnh:
Get-SmbSession
Get-SmbOpenFile
rất hữu ích khi support người dùng. Một ví dụ thực tế
Finance team cần thư mục dùng chung.
Bạn hãy tạo:
New-SmbShare -Name Finance -Path D:\Finance
Sau đó phân quyền trên NTFS:
- Finance Managers = Modify
- Finance Staff = Read
- IT Admins = Full Control
\\FS01\Finance
Windows sẽ:
- xác thực user
- kiểm tra share permission
- kiểm tra NTFS ACL
- cho phép hoặc từ chối
Nếu networking có:
- TCP/IP
- DNS
- DHCP
- AD
- DNS
- SMB