Вопрос или проблема
- Клиент Windows 10, использование проводника, клиент OpenVPN Connect 3.3.4 не может получить доступ к SMB-расшариванию с гостевым доступом на сервере OpenVPN (2.4.11 arm-openwrt-linux-gnu).
- Можно подключиться к SMB-расшариванию через проводник Windows 10 при нахождении в LAN (не с использованием OpenVPN) с гостевым доступом (без запроса логина пользователя)
- Клиент OpenVPN Connect подключается к серверу OpenVPN и может получить доступ к LAN веб-серверам, пинговать устройства и т. д.
- Можно подключиться к порту 445 на NAS через сырое TCP-соединение
- Можно получить доступ к файлам NAS через SMB, используя Android OpenVPN Connect и SMB браузер с гостевым доступом SMB
- Подключение к SMB-расшариванию из проводника Windows 10. Запрашивает логин/пароль (хотя не должно, хотя это указывает на успешное соединение на уровне TCP, по крайней мере). Заваливает любой используемый логин
- Сделал адаптер клиентом OpenVPN в частную сеть через gpedit.msi
- Включил файловый обмен и обнаружение сети для общедоступных сетей
- Создан SMB пользователь и предпринята попытка войти под ним
- В настройках сервера OpenVPN, принуждение всего трафика через VPN (чтобы убедиться, что Windows не обходит VPN при попытке установить соединение SMB)
- Убедился, что SMBv1 отключен
Работает:
Не работает:
Попробовано на клиенте Windows 10 (включая различные комбинации):
Попробовано на NAS:
Так что, это похоже на проблему либо в конфигурации клиента OpenVPN, либо Windows пытается “умничать” и “защищать” меня, но ничего не позволяет мне получить доступ к SMB-расшариванию на NAS через OpenVPN.
ОБНОВЛЕНИЕ: Определенно проблема в Windows. На том же клиенте Windows, попробовал использовать Linux VM, подключенный через OpenVPN на хосте, и VM с использованием этого соединения, затем в файловом менеджере (KDE Dolphin) доступ к smb://192.168.0.1 работает без проблем. Так почему же это не работает на хосте Windows? Почему постоянно требует логин/пароль?
ОБНОВЛЕНИЕ: Ну, согласно диагностике Windows, видимо, “SMBHelperClass LowHealth status 1 [DS_CONFIRMED] HRESULT 0 [64 ms] описание: Ваша учетная запись не имеет разрешения на доступ к “диску”. Что является абсурдом, поскольку доступно как гость без логина/пароля.
Это было вызвано функцией безопасности Windows, которая запрещает гостевой доступ с использованием SMB2. Я думал, что это проблема SMB-сервера или OpenVPN (поэтому спрашивал на ServerFault вместо Superuser).
Почему это работало в LAN, но не через OpenVPN, остается загадкой. Возможно, если клиент Windows видит, что гостевой доступ осуществляется к SMB-серверу в той же LAN, он его позволяет, иначе нет.
Решение — добавить значение DWORD в реестр:
HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters!AllowInsecureGuestAuth
С со значением 1, И ввести случайное имя пользователя (Windows все равно запросил логин/пароль, даже если его нет).
Microsoft Windows – Как включить небезопасные гостевые входы в SMB2 и SMB3
Ответ или решение
Проблема, связанная с невозможностью доступа к SMB-ресурсу из Windows 10 через OpenVPN Connect при использовании гостевого доступа, затрагивает несколько уровней конфигурации и безопасности, что требует внимательного анализа. Рассмотрим теорию, приведем примеры и предложим пошаговое решение.
Теория
SMB (Server Message Block) — это сетевой протокол, который позволяет делиться файлами и принтерами в локальных сетях. Версии SMB2 и SMB3, которые продолжают разрабатываться, содержат значительные улучшения в плане производительности и безопасности по сравнению с устаревшим SMBv1. Тем не менее, начиная с Windows 10, безопасность был повышен к отказу от гостевого доступа по умолчанию, особенно вне локальной сети (LAN), чтобы свести к минимуму риск атак посредством MITM (Man-In-The-Middle) и различных атак, использующих незашифрованный доступ.
OpenVPN — это популярный VPN-протокол, который предоставляет возможность безопасного доступа к удаленным сетям. OpenVPN позволяет маршрутизировать весь трафик, включая SMB, через зашифрованное соединение, что может вызывать дополнительные вызовы и конфликты при использовании с настройками безопасности Windows.
Пример
В представленной ситуации клиент Windows 10 был успешно подсоединён к SMB-ресурсу через локальную сеть и при помощи OpenVPN на Android, но не через OpenVPN Connect на Windows 10. Несмотря на успешное соединение с другими службами в той же сети (например, веб-серверами и ICMP-запросами), попытка доступа к SMB-ресурсу приводила к запросу имени пользователя и пароля, что указывает на возможный конфликт в настройке политики безопасности.
Применение: Решение проблемы
Доступ по гостю в Windows 10
-
Редактирование реестра Windows:
- Откройте "Редактор реестра Windows" (
Regedit.exe
) с правами администратора. - Перейдите по пути:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters
. - Создайте или измените существующее значение
DWORD
с именемAllowInsecureGuestAuth
. - Установите значение
1
для данного параметра. - Это изменение включает небезопасные гостевые логины для протоколов SMB2 и SMB3 на вашем клиенте Windows 10.
- Откройте "Редактор реестра Windows" (
-
Особые случаи безопасности:
- Несмотря на то, что вышеуказанные изменения могут позволить подключения для некоторых конфигураций, важно помнить, что Microsoft отключила данную возможность по умолчанию не случайно. Убедитесь, что ваш сервер действительно безопасен и что доступ предоставленный гостям не приведет к утечке данных.
-
Конфигурация OpenVPN:
- Убедитесь, что весь трафик маршрутизирован через VPN. Это можно проверить, установив флаг "force all traffic via VPN" в настройках OpenVPN сервера.
- Далее, убедитесь, что маршрутизация в Windows правильно настроена для доступа к удаленной сети через ваш тоннель VPN.
-
Тестирование и верификация:
- После внесения изменений выполните повторную попытку подключения к SMB-ресурсу через проводник Windows.
- Если соединение успешно, файл-менеджер должен открыть ресурс без запроса имени пользователя и пароля.
Альтернативные действия:
-
Расширенные настройки групповых политик (Group Policy Editor):
- Запустите
gpedit.msc
, перейдите вComputer Configuration -> Administrative Templates -> Network -> Lanman Workstation
. - Найдите и включите параметр "Enable insecure guest logons".
- Запустите
-
Полная проверка настройки NAS:
- Убедитесь, что настройки NAS позволяют доступ по преференциям разделов как для гостевых, так и для аутентифицированных пользователей.
- При необходимости может потребоваться подтверждение настроек совместимости между разными версиями SMB на NAS и клиенте Windows 10.
Вывод
Проблема доступа к SMB-ресурсу часто связана с настройками безопасности операционных систем, как на стороне клиента, так и на стороне сервера. При решении подобных проблем важно учитывать последние обновления безопасности и изменения конфигураций, которые могут повлиять на доступ. Несмотря на то, что внесение изменений в параметры безопасности Windows может временно решить проблему, долгосрочной целью должно быть обеспечение безопасности и отказоустойчивости сети.