|
Примерно начиная с версии Samba 4.10 команда smbtree не находит никаких доступных ресурсов, не выдавая при этом никакой диагностики, при этом команда smbclient -L ресурсы конкретных машин отображает правильно. Кроме этого, команды smbtree и smbclient ещё и запрашивают пароль для текущего пользователя при каждом выполнении, чего ранее не было.
Запрос пароля при выполнении команд smbtree/smbcient отключается опцией -N:
| smbtree -N |
или
| smbclient -N -L ... |
Настройки различаются для серверов Samba и для клиентов, при этом любой компьютер может быть одновременно и сервером и клиентом, то есть указанные далее настройки могут применяться совместно.
|
Для того, чтобы команда smbtree корректно запрашивала разделяемые ресурсы можно в параметрах команды принудительно указать протокол:
| smbtree -N "--option=client min protocol=NT1" |
Для того, чтобы клиенты samba всегда использовали протокол NT1 и корректно запрашивали разделяемые ресурсы нужно в файл /etc/samba/smb.conf на клиентском компьютере в секцию [global] добавить параметр:
client min protocol = NT1 |
После этого запросы к серверам samba версии 4.9 будут отправляться и отрабатываться корректно, запросы к настроенным по умолчанию серверам версии 4.11 и новее будут завершаться ошибкой вида:
\\CE-2-13-3-1115 Samba 4.12.5-Debian |
Для того, чтобы новые серверы samba корректно отвечали на запросы нужно в файл /etc/samba/smb.conf в секцию [global] на сервере Samba добавить параметр:
server min protocol = NT1 |
После чего перезагрузить конфигурацию сервера:
| sudo smbcontrol smbd reload-config |
Samba (версии 4.9 и выше, более старые версии не проверялись) по умолчанию привязывается ко всем обнаруженным интерфейсам. Если на сервере samba установлена система виртуализации (проверено с Oracle VirtualBox и с KVM), то samba привязывается и к адаптерам виртуальных мостов, после чего samba в виртуальной подсети сама среди себя проводит выборы мастер-браузера, объявляет себя мастером и перестаёт видеть разделяемые ресурсы на физическом сетевом интерфейсе. Характерный симптом - после команды
| sudo systemctl restart nmbd |
при выполнении команды smbtree все (чужие) сетевые ресурсы отображаются около минуты, затем чужие ресурсы исчезают из выводимого списка. В /var/log/samba/log.smbd при этом появляется сообщение, что smbd сам себя назначил мастером виртуальной подсети:
Samba name server ASTRA is now a local master browser for workgroup WORKGROUP on subnet 192.168.27.1 |
Чтобы этого избежать нужно в секцию [global] конфигурационного файла /etc/samba/smb.conf добавить указание, с какими интерфейсами работать, и запрет работать с другими интерфейсами (интерфейс lo - локальная обратная петля, второй интерфейс задан адресом подсети):
interfaces = lo 192.168.32.0/24 bind interfaces only = yes |
| В документации wiki.samba.org рекомендуется в обязательном порядке сохранять привязку samba к интерфейсу локальной обратной петли (lo). |
После чего перезапустить сервисы:
| sudo systemctl restart smbd nmbd |
| Побочный эффект - команда smbtree, выполненная на сервере, при этом перестаёт показывать собственные ресурсы, хотя свой сервер показывает. |
При выполнении команды smbtree samba-клиент пытается разрешить NETBIOS-имя собственного сервера. Порядок разрешения имён по умолчанию:
name resolve order = lmhosts wins host bcast |
Где:
В стандартном /etc/hosts имя сервера разрешается в 127.0.1.1, по этому адресу запрашивается список ресурсов, однако сервер samba привязан не к 127.0.1.1, а к 127.0.0.1, соответственно никаких ресурсов не видно.
Для того чтобы smbtree показывал собственные ресурсы имя сервера должно разрешаться в адрес сетевого интерфейса, к которому привязана samba - проще всего указать адрес в /etc/hosts.
Привязать samba к адресу 127.0.1.1 не получилось, видимо потому, что это адрес виртуальный.
По умолчанию служба samba (smbd) использует только авторизацию NTLM2. При этом некоторые старые компьютеры Windows, выступая в роли клиентов samba, не могут получить доступ к разделяемым ресурсам samba. В такой ситуации:
В первую очередь следует изучить возможность включить авторизации NTLM2 на клиенте. В большинстве случаев ОС Windows с установленными обновлениями может поддерживать авторизацию NTLM2.
| Далее описано снижение версии протокола авторизации на сервере samba, понижающее защищенность информационой системы. |
Протокол авторизации на сервере samba выбирается параметром ntlm auth, по умолчанию разрешающим только авторизацию NTLM2:
ntlm auth = ntlmv2-only |
или
ntlm auth = no |
Первым шагом снижения версии протокола проверить работоспособость варианта:
ntlm auth = mschapv2-and-ntlmv2-only |
В этом варианте если клиент не поддерживает авторизацию NTLM2, то допускается авторизация NTLM1 при условии использования протокола MSCHAPv2, в котором устранены некоторые уязвимости протокола MSCHAPv1;
Следующим шагом понижения версии протокола является безусловное разрешение авторизации NTLM1:
ntlm auth = yes |
или
ntlm auth = ntlmv1-permitted |
В настройках samba, принимаемых по умолчанию для ALD задан параметр wide links = yes (следовать ссылкам вне экспортируемого дерева) , который, из соображений безопасности, не работает в сочетании с другим принятым по умолчанию параметром unix extensions = yes. Чтобы эти параметры работали совместно нужно добавить пареметр allow insecure wide links = yes.
Разрешение следовать ссылкам вне экспортируемого дерева снижает защищённость системы повышая риск утечки или повреждения данных. |
Использование smbtree в Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.5)
Для того, чтобы команда smbtree в ОС Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.5) (samba_3.6.26) начала отображать свои и чужие разделяемые ресурсы в секцию [global] на клиенте 1.5 нужно добавить параметр:
client ipc signing = auto |
Отключение подписания запросов возвращает уязвимость CVE-2016-2115: Samba 3.x and 4.x before 4.2.11, 4.3.x before 4.3.8, and 4.4.x before 4.4.2 does not require SMB signing within a DCERPC session over ncacn_np, which allows man-in-the-middle attackers to spoof SMB clients by modifying the client-server data stream. |
Узнать кто мастер - браузер группы WORKGROUP (код - 1d) :
| 192.168.1.1 WORKGROUP<1d> |
Найти "специальный сервер __MSBROWSE__":
| 192.168.1.1 __MSBROWSE__<01> |
Список доступных серверов samba:
| sudo apt install avahi-utils sudo avahi-browse -r _smb._tcp |