Дерево страниц

Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 17 Следующий »

Примерно начиная с версии Samba 4.10 команда smbtree не находит никаких доступных ресурсов, не выдавая при этом никакой диагностики, при этом команда smbclient -L ресурсы конкретных машин отображает правильно. Кроме этого, команды smbtree и smbclient ещё и запрашивают пароль для текущего пользователя при каждом выполнении, чего ранее не было.

Samba и системы виртуализации

Samba (и 4.9 тоже) по умолчанию привязывается ко всем обнаруженным интерфейсам. Если на сервере samba установлена система виртуализации (проверено с Oracle VirtualBox и с KVM), то 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 клиент пытается разрешить NETBIOS-имя собственного сервера. Порядок разрешения имён по умолчанию:

name resolve order = lmhosts wins host bcast

Где:

  • lmhosts - файл /etc/samba/lmhosts, samba-аналог файла /etc/hosts, которого обычно нет;
  • wins - WINS-сервер, которого тоже обычно нет;
  • hosts - файл /etc/hosts, в котором для машины обычно указан адрес локальной обратной локальной петли 127.0.1.1;

В стандартном /etc/hosts имя сервера разрешается в 127.0.1.1, по этому адресу запрашивается список ресурсов, однако сервер samba привязан не к 127.0.1.1, а к 127.0.0.1, соответственно никаких ресурсов не видно.
Для того чтобы smbtree показывал собственные ресурсы имя сервера должно разрешаться в адрес внешнего сетевого интерфейса - проще всего указать адрес в /etc/hosts.
Привязать samba к адресу 127.0.1.1 не получилось.

Отключение запроса пароля в командах smbtree и smbclient

Запрос пароля отключается опцией -N:

smbtree -N
или 
smblient -N -L ...

Включение обнаружения разделяемых ресурсов командой smbtree

На клиентах

Для того, чтобы КЛИЕНТЫ samba корректно запрашивали разделяемые ресурсы нужно:
в файл /etc/samba/smb.conf НА КЛИЕНТСКОМ КОМПЬЮТЕРЕ в секцию [global] добавить параметр:

client min protocol = NT1

После этого запросы к серверам samba версии 4.9 будут отправляться и отрабатываться корректно, запросы к настроенным по умолчанию серверам версии 4.11 и новее будут завершаться ошибкой вида:

smbtree -N

\\CE-2-13-3-1115                Samba 4.12.5-Debian
smbXcli_negprot_smb1_done: No compatible protocol selected by server.

На серверах

Для того, чтобы новые СЕРВЕРЫ samba корректно отвечали на запросы нужно:
в файл /etc/samba/smb.conf в секцию [global] НА СЕРВЕРЕ SAMBA добавить параметр:

server min protocol = NT1

После чего перезагрузить конфигурацию сервера:

sudo smbcontrol smbd reload-config

Прочее

В дефолтных настройках samba для ALD прописан параметр wide links = yes (следовать ссылкам вне экспортируемого дерева) , который не работает в сочетении с дефолтным параметром unix extensions = yes из соображений безопасности. Чтобы они работали нужно добавить allow insecure wide links = yes.

smbtree в Смоленск 1.5

Для того, чтобы smbtree (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.


nmblookup

Узнать кто мастер - браузер  группы WORKGROUP  (код - 1d) :

nmblookup -M WORKGROUP

192.168.1.1 WORKGROUP<1d>

Найти "специальный сервер __MSBROWSE__":
nmblookup -M -

192.168.1.1 __MSBROWSE__<01>

Avahi

Список доступных серверов samba:

sudo apt install avahi-utils
sudo avahi-browse -r _smb._tcp

  • Нет меток