Шифрование трафика в SMB 3.0

Шифрование трафика в SMB 3.0

В версии протокола Server Message Block (SMB) 3.0, представленном в Windows Server 2012 / Windows 8, появилась возможность шифровать данные, передаваемые по сети между файловым сервером SMB и клиентом. Шифрование SMB трафика позволяет защитить от перехвата и модификации данные, передаваемые по недоверенной или открытой сети. Шифрование данных выполняется прозрачно с точки зрения клиента и не требует существенных организационных и ресурсных затрат, как при внедрении VPN, IPSec и PKI инфраструктуры. В последней версии протокола SMB 3.1.1 (представлен в Windows 10 и Windows Server 2016) используется тип шифрования AES 128 GCM, а производительность алгоритма шифрования существенно увеличена. Кроме того осуществляется автоматическое подписывание и проверка целостности данных.

Разберемся в особенностях внедрения шифрования SMB в Windows Server 2012. В первую очередь нужно понять, что в том случае, если клиент и сервер поддерживают разные версии протокола SMB, то при установлении подключения между сервером и клиентом, для взаимодействия выбирается самая высокая версия SMB, поддерживаемая одновременно клиентом и сервером. Это означает, что все клиенты с ОС ниже Windows 8 / Server 2012, не смогут взаимодействовать с сетевым каталогом, для которого включено шифрование SMB.

На файловом сервере можно получить версию протокола SMB используемого тем или иным клиентом (версия используемого протокола выбранного в рамках соединения указаны в столбце Dialect):

Get-SmbConnection

Get-SmbConnectionПо-умолчанию, на файловом сервера Windows Server 2012 шифрование для передачи SMB трафика отключено. Включить шифрование можно как индивидуально для каждой SMB шары, так и для всего сервера целиком.

Если нужно включить шифрование на конкретного каталога, на сервере откройте консоль Server Manager и перейдите в раздел File and Storage Services –> Shares. Выберите нужную общую папку и откройте ее свойства. Затем перейдите на вкладку Settings, где включите опцию Encrypt Data Access. Сохраните изменения.

Encrypt Data Access - включить шифровани для SMB 3.0

Кроме того, включить SMB шифрование можно из консоли PowerShell. Включаем шифрование для одной папки:

Set-SmbShare –Name Install -EncryptData $true

Либо для всех SMB подключений к серверу (будь то общие папки или административные ресурсы):

Set-SmbServerConfiguration –EncryptData $true

Set-SmbServerConfiguration включить шифрование SMB

После включения SMB шифрования для общей сетевой папки, все устаревшие клиенты (до Windows 8), не смогут подключаться к данному каталогу, т.к. не поддерживают версию протокола SMB 3.0. Чтобы разрешить доступ таким Windows клиентам (как правило, такой доступ организуется временно, иначе теряется смысл от включения шифрования), можно разрешить подключаться к серверу без шифрования:

Set-SmbServerConfiguration –RejectUnencryptedAccess $false

Совет. После включения данного режима, подключающийся клиент в процессе согласования поддерживаемой версии протокола сможет переключится на совсем устаревшую версию SMB 1.0, что не безопасно (в Windows Server 2012 R2 протокол SMB 1.0 по умолчанию уже отключен). В этом случае, чтобы хотя бы частично обезопасить сервер, желательно отключить поддержку SMB 1.0:

Set-SmbServerConfiguration –EnableSMB1Protocol $false

Windows Server 2016
Шифрование трафика в SMB 3.0