Trong phiên bản giao thức Server Message Block (SMB) 3.0 được giới thiệu trong Windows Server 2012 / Windows 8, đã có khả năng mã hóa dữ liệu được truyền qua mạng giữa máy chủ file SMB và client. Dữ liệu được mã hóa một cách minh bạch từ góc độ của client và không yêu cầu bất kỳ tổ chức hoặc tài nguyên đáng kể nào, khác với việc triển khai VPN, IPSec hoặc cơ sở hạ tầng PKI. Trong phiên bản mới nhất SMB 3.1.1 (được sử dụng trong Windows 10 và Windows Server 2016), loại mã hóa AES 128 GCM được sử dụng, và hiệu suất của thuật toán được tăng đáng kể. Ngoài ra, việc ký và xác minh dữ liệu tự động cũng được thực hiện.
Hãy xem xét các khía cạnh triển khai mã hóa SMB trong Windows Server 2012. Trước hết, bạn phải hiểu rằng nếu client và máy chủ hỗ trợ các phiên bản SMB khác nhau, khi thiết lập kết nối giữa client và máy chủ, phiên bản SMB cao nhất được hỗ trợ bởi cả client và máy chủ sẽ được chọn. Điều này có nghĩa là tất cả các client chạy các phiên bản Windows cũ hơn Windows 8 / Server 2012 sẽ không thể tương tác với thư mục mạng đã bật mã hóa SMB.
Trên máy chủ file, bạn có thể lấy phiên bản giao thức SMB được sử dụng bởi client (phiên bản giao thức được hiển thị trong cột Dialect):
Get-SmbConnection
Mặc định, mã hóa lưu lượng SMB bị tắt trên máy chủ file Windows Server 2012. Bạn có thể bật mã hóa riêng lẻ cho từng chia sẻ SMB hoặc tất cả các kết nối SMB.
Nếu bạn phải bật mã hóa cho thư mục cụ thể, hãy mở console Server Manager trên máy chủ của bạn và đi tới File and Storage Services –> Shares. Chọn thư mục chia sẻ mong muốn và mở thuộc tính của nó. Sau đó chuyển đến tab Settings và bật Encrypt Data Access. Lưu thay đổi.
Bạn cũng có thể bật mã hóa SMB từ console PowerShell. Bật mã hóa cho một chia sẻ:
Set-SmbShare –Name Install -EncryptData $true
Hoặc cho tất cả các kết nối SMB tới máy chủ (đến thư mục chia sẻ hoặc tài nguyên quản trị):
Set-SmbServerConfiguration –EncryptData $true
Sau khi bật mã hóa SMB cho chia sẻ mạng, tất cả các client cũ (cũ hơn Windows 8) sẽ không thể kết nối với chia sẻ này, vì chúng không hỗ trợ SMB 3.0. Để cho phép các client Windows này truy cập chia sẻ (thông thường là truy cập tạm thời, nếu không thì không có lý do để bật mã hóa), bạn có thể cho phép kết nối tới máy chủ mà không cần mã hóa:
Set-SmbServerConfiguration –RejectUnencryptedAccess $false
Mẹo. Sau khi bật chế độ này, client kết nối có thể chuyển sang phiên bản SMB 1.0 lỗi thời, không an toàn (trong Windows Server 2012 R2, SMB 1.0 đã bị tắt theo mặc định). Trong trường hợp này, để bảo mật một phần cho máy chủ của bạn, tốt hơn là tắt hỗ trợ SMB 1.0:
Set-SmbServerConfiguration –EnableSMB1Protocol $false