Заставить Windows 8.1 использовать только SMB3?
Есть ли способ (косвенный, хакерский или иным образом) ограничить Windows 8.1 только SMB3 и запретить ей принимать или предлагать подключения SMB2?
Все, что я могу найти, - это то, что на 8.1 SMB2 и SMB3 совместно используют один и тот же стек, поэтому функциональность SMB2 нельзя отключить внутренне (убивая mrxsmb20 или аналогичную) без влияния на SMB3.
Однако это оставляет открытой возможность того, что могут быть другие способы его эффективного закрытия через брандмауэр или другое программное обеспечение, или политику или настройку, нацеленную на сеанс, или требования к протоколу и объявленные возможности соединения (возможно, в некотором роде). что SMB2 не может встретиться), без отключения стека.
Поскольку ни одному из моих сетевых устройств не нужно устанавливать SMB2-соединение, не рекомендуется оставлять его открытым, чтобы принимать устаревший протокол, который ему больше не нужен (атаки с перекрестной ссылкой на протокол с использованием более ранней версии протокола SSL и недавние атаки через устаревшие протоколы). Уязвимости SMB1). Но есть ли способ отключить его на устройстве под управлением этой версии Windows?
1 ответ
Сначала я хотел бы извиниться, потому что ответ был мне неизвестен в то время, неполный. Теперь я буду намного яснее и правильнее.
Я проверил это сам (используя 7 и 10), и это работает хорошо; не должно быть никаких причин, по которым он не будет работать с Windows 8.1. Я получил это с этой страницы в документальном документе Microsoft Technet. К сожалению, это не мешает подключению к общим папкам SMBv2, но блокирует подключения SMBv2. Это предлагает ключевые различия для безопасности SMB3.
По умолчанию, когда шифрование SMB включено для общего файлового ресурса или сервера, только клиенты SMB 3.0 могут получить доступ к указанным общим файловым ресурсам. Это обеспечивает намерение администратора защитить данные для всех клиентов, которые имеют доступ к общим ресурсам.
....
Если для параметра –RejectUnencryptedAccess оставлено значение по умолчанию, равное $ true, только клиенты SMB 3.0 с поддержкой шифрования могут получить доступ к общим папкам (клиенты SMB 1.0 также будут отклонены).
Этот отрывок подразумевает, что шифрование SMB должно быть включено для определенного общего ресурса сервера, чтобы отклонить его; другими словами, он не будет отклонен, если он не зашифрован. Вам необходимо зашифровать свои общие ресурсы, используя следующие команды в расширенном PowerShell. (Вы также можете заменить $true
с $false
если вы не хотите, чтобы он отклонял этот общий ресурс без шифрования при включенном отклонении).
Чтобы установить определенный общий ресурс как зашифрованный:
Set-SmbShare –Name <sharename> -EncryptData $true
Установить все акции как зашифрованные. Это тот, который вы, вероятно, хотите. Это будет настройкой по умолчанию и переопределит определенные настройки общего ресурса):
Set-SmbServerConfiguration –EncryptData $true
Это также можно сделать, изменив EncryptData
ключ в HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
, установив значение DWORD из 0
(ложно) 1
(правда). Затем вы должны перезагрузить компьютер, чтобы настройки вступили в силу (возможно, вместо этого вы могли бы перезапустить некоторые службы).
Чтобы создать общий ресурс и сделать его зашифрованным:
New-SmbShare –Name <sharename> -Path <pathname> –EncryptData $true
В документе описывается, что когда RejectUncreyptedAccess включен, SMBv1 не сможет подключиться, поскольку он будет принимать только подключения SMBv3, что также ограничивает входящие подключения SMBv2.
Следовательно, все эти команды будут бесполезны, если у нас не будет включен RejectUnencryptedAccess, если для его значения установлено значение $ true, если это еще не сделано (по умолчанию оно включено), с помощью команды:
Set-SmbServerConfiguration –RejectUnencryptedAccess $true
Это также можно сделать, изменив RejectUnecryptedAccess
ключ в HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
, установив значение DWORD из 0
(ложно) 1
(правда). Затем необходимо перезагрузить компьютер, чтобы настройки вступили в силу (возможно, вместо этого вы могли бы перезапустить некоторые службы).
Также для справки:
Техническая причина отклонения SMBv2 не в том, что он не зашифрован, а в том, что он использует менее эффективный и менее безопасный алгоритм шифрования. SMBv3 использует AES (Advanced Encryption Standard (выпущенный в 1998 году)), в то время как SMBv2 использует HMAC-Sha256 (Security Hash Algorithm (который был выпущен в 2001 году NSA)). [Я пытался заблокировать входящий HMAC-Sha256, и когда я попытался заблокировать его, он ничего не сделал, потому что он не считается "слабым" алгоритмом в Windows, поэтому не может быть отключен, как могут быть алгоритмы Sha1]
Отключите SMBv1 с помощью этой команды (потому что он избыточен, когда RejectUnencryptedAccess включен, и все общие ресурсы зашифрованы, и вы все равно хотите его отключить):
Set-SmbServerConfiguration -EnableSMB1Protocol $false
Включите SMBv2 и SMBv3 вместе (соединения SMBv2 блокируются, когда включен RejectUnecryptedAccess):
Set-SmbServerConfiguration -EnableSMB2Protocol $true
Хотя вы не можете отключить входящий SMBv2, пока хотите использовать SMBv3, вы можете отключить входящий SMBv1, отключив клиента SMBv1 с помощью расширенного PowerShell или командной строки:
sc.exe config lanmanworkstation depend= bowser/mrxsmb20/nsi
sc.exe config mrxsmb10 start= disabled
Disable-WindowsOptionalFeature -Online -FeatureName smb1protocol
Другие хорошие ссылки от Microsoft:
- как включить и отключить smbv1-smbv2-and-smbv3-in-windows-and-windows - основы для отключения и включения протоколов
- окна-сервер-2012-который-версия-оф-л-протокола SMB-1-0-СМБ-2-0-СМБ-2-1 или-СМБ-3-0-в-вы-using- on-your-file-server - технические характеристики протокола
Приведенный ответ El8dN8 правильный, просто добавьте кое-что:
После некоторого тестирования в Windows 10 1607 кажется, что SMBv3 привязан к "EnableSMB2Protocol". Если вы отключите его, даже с "EncryptData": $true, вы потеряете функциональность сетевых ресурсов - он просто отклонит все входящие подключения из всех версий SMB (при условии, что у вас также отключен SMBv1). По какой-то причине Microsoft не полностью отделяет SMBv2 и v3 друг от друга.