Заставить Windows 8.1 использовать только SMB3?

0

Есть ли способ (косвенный, хакерский или иным образом) ограничить Windows 8.1 только SMB3 и запретить ей принимать или предлагать подключения SMB2?

Все, что я могу найти, это то, что на 8.1 SMB2 и SMB3 совместно используют один и тот же стек, поэтому функциональность SMB2 нельзя отключить внутренне (убивая mrxsmb20 или аналогичный) без воздействия на SMB3.

Однако это оставляет открытой возможность того, что могут быть другие способы его эффективного закрытия через брандмауэр или другое программное обеспечение, или политику или настройку, нацеленную на сеанс, или требования к протоколу и объявленные возможности соединения (возможно, в некотором роде). что SMB2 не может встретиться), без отключение стека.

Поскольку ни одному из моих сетевых устройств не нужно устанавливать SMB2-соединение, не рекомендуется оставлять его открытым, чтобы принимать устаревший протокол, который ему больше не нужен (перекрестные атаки безопасности через понижение протокола по SSL и недавние атаки через старые уязвимости SMB1) , Но есть ли способ отключить его на устройстве под управлением этой версии Windows?

Stilez
источник

Ответы:

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 & amp; 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:

El8dN8
источник
@Stilez, поэтому я просто забыл упомянуть, что вы должны включить шифрование на общих ресурсах. Надеюсь, что это работает
El8dN8
У меня здесь нигде не работает SMB2 - вот почему я хочу его отключить ;-) Так что сложно сказать. Это выглядит правдоподобно, хотя. Я смогу найти старую виртуальную машину Win7 и протестировать ее, но это опять-таки зависит от решения других моих проблем с SMB / общими файлами, иначе результат будет бессмысленным. Я рад, что меня подтолкнули, но бог знает, как долго я с этим разберусь! Это только одна часть этого ...
Stilez