Вопрос или проблема
Сервер Samba:
Raspberry Pi3, работает osmc медиасервер (я полагаю, это уменьшенная версия Raspbian).
Версия Samba: 4.2.10
Доменный контроллер:
Windows 2012
Клиент Windows:
Windows 10 Evt. 64-bit
До настройки доменного контроллера и подключения к нему клиента Win10 я без проблем имел доступ к SMB-общим ресурсам на сервере SMB.
После подключения клиента Win10 к AD я вижу сервер SMB, но не могу войти (“Доступ запрещен”).
РЕДАКЦИЯ: Естественно, я попытался войти в samba-ресурс с WORKGROUP\username, что, по мнению некоторых, должно работать. Это не так.
Судя по тому, что я читаю, это связано с тем, что сервер SMB не поддерживает версию клиента SMB (3?), используемую Windows 10. Поэтому, поскольку помощи от Windows 10 найти не удалось, я попробовал эту статью MS для Windows 7:
https://support.microsoft.com/en-us/kb/2696547
Я отключил версии SMB 2 и 3, и включил версию 1, как было предложено на другом форуме. Когда я перезагрузил машину, клиент Win10 даже не смог УВИДЕТЬ SMB-ресурсы. Когда я отключил версию 1, и снова включил версии 2 и 3, клиент снова смог видеть общий ресурс, но не мог войти.
Кто-нибудь знает, как это исправить? Также было предложено подключить сервер SMB/Linux к домену Windows, но поскольку простое решение для этого не работает на архитектуре Pi3, я не склонен пытаться устанавливать Kerberos и все такое вручную, так как, честно говоря, я мало что в этом понимаю. Кроме того, я ожидаю, что какой-нибудь важный пакет не существует для Pi3, и я застряну на полпути с более или менее неработающей системой.
Кажется, что несколько человек утверждают, что отключение samba 2/3 работает для них. Странно, что это не работает для меня, ни на клиенте Win 10, ни на сервере Win 2008. И MS, кажется, тоже не особо желает помогать в этом – что для меня не редкость.
Файл smb.conf (неизмененный после установки):
[global]
config file = /etc/samba/smb-local.conf
workgroup = WORKGROUP
security=user
follow symlinks = yes
wide links = no
unix extensions = no
lock directory = /var/cache/samba
load printers = no
printing = bsd
printcap name = /dev/null
disable spoolss = yes
log level = 1
map to guest = bad user
usershare template share = automount template
read raw = Yes
write raw = Yes
strict locking = no
min receivefile size = 16384
use sendfile = true
aio read size = 2048
aio write size = 2048
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=131072 SO_SNDBUF=131072
[osmc]
browsable = yes
read only = no
valid users = osmc
path = /home/osmc
comment = OSMC Home Directory
[automount template]
browseable = yes
-valid = no
valid users = osmc
path = %P
hide files = /$RECYCLE.BIN/System Volume Information/desktop.ini/thumbs.db/
ОБНОВЛЕНИЕ
Я отказался от сервера Windows AD и вместо этого настроил домен Samba. Удивительно, но ТОЧНО такая же проблема сохраняется, когда компьютер с Windows 10 подключен к домену Samba. И DC Samba также не может получить доступ к тем же samba-ресурсам, получая “Доступ запрещен”.
Похоже, что Samba является настоящим источником боли и страданий здесь, и, кажется, нет никакого способа исправить это. Решением может быть использование только Windows в качестве файловых серверов.
Возможно, что ваш клиент Windows 10 теперь пытается неявно аутентифицироваться с помощью DOMAIN\username
при попытке получить доступ к ресурсу.
Имеет ли Raspberry Pi3 имя хоста/имя NETBIOS в конфигурации samba (в разделе глобальной конфигурации)? Если да, вы можете попробовать указать SAMBA_NETBIOSNAME\username
, когда попытаетесь аутентифицироваться для доступа к ресурсу.
ОБНОВЛЕНИЕ:
Исходя из предоставленной вами конфигурации, я бы предложил добавить netbios name = pi3
или что-то в этом роде, а затем попытаться войти с pi3\username
.
Вы также можете попробовать изменить некоторые из других настроек аутентификации, найденных в документации по SAMBA. Обратите внимание, что вам, вероятно, придется перезапустить демон samba после внесения изменений в конфигурацию.
Например, вы можете попробовать добавить auth methods = guest sam winbind
, отметив, что guest
позволяет анонимный доступ. Таким образом, вы могли бы изолировать проблему между проблемой конфигурации и проблемой аутентификации (предполагая, что будет использоваться анонимный доступ, когда вы не можете аутентифицироваться – я мало разбираюсь в SAMBA).
Другими словами, пока вы можете войти с разрешенным гостем, мы знаем, что по крайней мере компоненты v1,2,3 работают, и вы можете сосредоточиться на настройках аутентификации. Когда, наконец, вы получите рабочие настройки для не-гостевого доступа, вы должны удалить гостевой доступ, чтобы предотвратить несанкционированный доступ к вашим ресурсам.
Я также рассмотрел бы добавление настроек, чтобы заставить ntlm auth
, lanman auth
, server schannel
и server signing
соответствовать настройкам на вашем клиенте Windows.
Чтобы проверить эквивалентные настройки Windows, запустите “secpol.msc” и проверьте настройки в разделе:
Security Settings
Local Polices
Security Options
- Microsoft network client: *
- Network security: *
Клиент Microsoft network: Цифровое шифрование или подпись данных защищенного канала (всегда)
Клиент Microsoft network: Цифровое шифрование данных защищенного канала (когда возможно)
Клиент Microsoft network: Цифровая подпись данных защищенного канала (когда возможно)
Эти настройки определяют, какими должны быть настройки server schannel
и server signing
в вашей конфигурации samba.
Безопасность сети: уровень аутентификации LAN Manager
Эта настройка определяет, какими должны быть настройки ntlm auth
и lanman auth
в вашей конфигурации samba.
Например, Send NTLMv2 response only. Refuse LM & NTLM
в настройках Windows эквивалентно ntlm auth = no
и lanman auth = no
в вашей конфигурации samba.
ПРИМЕЧАНИЕ: Я не рекомендую изменять настройки Windows, если вы не уверены, что сможете устранять проблемы с аутентификацией в домене впоследствии.
.
Ответ или решение
Проблема, связанная с невозможностью доступа к шару Samba с компьютера на Windows 10, подключенного к домену, требует внимательного анализа и решения. Основной причиной этого может быть несовместимость или несоответствие настроек между клиентом Windows, сервером Samba и доменным контроллером. Рассмотрим несколько возможных решений и методов диагностики этой проблемы, исходя из предоставленной информации.
Теория
Когда вы настраиваете клиент Windows 10 для доступа к Samba-серверу, подключенному к сети под управлением доменного контроллера Windows, возникают определенные нюансы в аутентификации и уровне поддержки протоколов. Ваша проблема может быть непосредственно связана с тем, что Windows 10, будучи в составе домена, пытается использовать доменную аутентификацию, а не рабочую группу, что приводит к ошибке "Доступ запрещен". Другой возможной причиной может быть различие в версиях протокола SMB (Server Message Block), поддерживаемых клиентом и сервером. Windows 10, как правило, использует версии SMB 2 и 3, тогда как ваш Samba-сервер может не поддерживать их на должном уровне, особенно учитывая, что используется версия Samba 4.2.10, которая может иметь ограничения по поддержке более новых протоколов.
Пример
-
Конфигурация Samba. В целях совместимости с Windows, важно убедиться, что сервер Samba правильно настроен. Например, добавить parametro
netbios name
в конфигурационный файлsmb.conf
, чтобы он был виден в сети как ожидаемое имя. Это можно сделать через вставку строкиnetbios name = pi3
в секцию [global]. -
Настройки безопасности на клиенте Windows могут влиять на доступ. В панели "Секретная политика" (secpol.msc) на Windows рекомендуется проверить параметры, связанные с "Microsoft network client" и "Network security", чтобы убедиться в том, что уровень безопасности позволяет использовать нужные методы аутентификации.
-
Параметры аутентификации на Samba. Можно попробовать добавить в конфигурации Samba
auth methods = guest sam winbind
, что может позволить временно использовать гостевой доступ для проверки работоспособности перелашенной конфигурации.
Применение
Для решения проблемы вам потребуется выполнить несколько шагов:
-
Измените конфигурацию Samba:
- Добавьте строчку
netbios name = pi3
в [global] секцию файлаsmb.conf
. - Перезапустите демон Samba после внесения изменений с помощью команды
sudo systemctl restart smbd
.
- Добавьте строчку
-
Отладьте уровень аутентификации:
- Настройте параметры безопасности в
secpol.msc
так, чтобы они соответствовали настройкам Samba. Например, значение "Network security: LAN Manager authentication level" должно соответствовать поддерживаемому вашим Samba-сервером уровню (ntlm auth = no
,lanman auth = no
, если вы используете NTLMv2 на уровне домена Windows).
- Настройте параметры безопасности в
-
Предварительная диагностика:
- Проверьте, работает ли гостевой доступ с помощью временного добавления
auth methods = guest
вsmb.conf
для проверки соединяемости. - Если доступ по гостю возможен, сконцентрируйтесь на настройке аутентификации.
- Проверьте, работает ли гостевой доступ с помощью временного добавления
-
Проверка версии протокола SMB:
- Попробуйте временно снизить версии SMB, поддерживаемые на Windows 10, до версии 2, для проверки совместимости. Однако, помните, что использование SMB1 связано с известными уязвимостями и рекомендуется использовать только новейшие версии.
-
Документирование и тестирование:
- После внесения каждого изменения, протестируйте доступ и документируйте результаты. Это поможет вам понять, какое изменение привело к решению проблемы.
Если ни одно из предложенных решений не работает, возможно, стоит рассмотреть обновление вашей версии Samba до более новой версии, где улучшена поддержка современных протоколов Microsoft. Также может быть полезным изучение логов Samba для выявления дополнительных подробностей о возможных ошибках аутентификации или соединения. Завершающий совет — в случае отсутствия результата, попытайтесь изолировать проблему, вновь отключив систему от домена и проверив доступ, что уточнит, связана ли она непосредственно с доменной аутентификацией.