Оглавление |
---|
Информация | ||
---|---|---|
| ||
Информация | ||
---|---|---|
| ||
|
Примерно начиная с версии Samba 4.10 команда smbtree не находит никаких доступных ресурсов, не выдавая при этом никакой диагностики, при этом команда smbclient -L ресурсы конкретных машин отображает правильно. Кроме этого, команды smbtree и smbclient ещё и запрашивают пароль для текущего пользователя при каждом выполнении, чего ранее не было.
Отключение запроса пароля в командах smbtree и smbclient
Запрос пароля при выполнении команд smbtree/smbcient отключается опцией -N:
Command |
---|
smbtree -N |
или
Command |
---|
smbclient -N -L ... |
Включение обнаружения разделяемых ресурсов командой smbtree
Информация | ||
---|---|---|
Настройки различаются для серверов Samba и для клиентов, при этом любой компьютер может быть одновременно и сервером и клиентом, то есть указанные далее настройки могут применяться совместно.
|
На клиентах
Для того, чтобы команда smbtree корректно запрашивала разделяемые ресурсы можно в параметрах команды принудительно указать протокол:
Command |
---|
smbtree -N "--option=client min protocol=NT1" |
Для того, чтобы клиенты samba всегда использовали протокол NT1 и корректно запрашивали разделяемые ресурсы нужно в файл /etc/samba/smb.conf на клиентском компьютере в секцию [global] добавить параметр:
Блок кода |
---|
client min protocol = NT1
|
После этого запросы к серверам samba версии 4.9 будут отправляться и отрабатываться корректно, запросы к настроенным по умолчанию серверам версии 4.11 и новее будут завершаться ошибкой вида:
Command | ||
---|---|---|
| ||
\\CE-2-13-3-1115 Samba 4.12.5-Debian |
На серверах
Для того, чтобы новые серверы samba корректно отвечали на запросы нужно в файл /etc/samba/smb.conf в секцию [global] на сервере Samba добавить параметр:
Блок кода |
---|
server min protocol = NT1 |
После чего перезагрузить конфигурацию сервера:
Command |
---|
sudo smbcontrol smbd reload-config |
Samba и системы виртуализации
Samba (
...
версии 4.9
...
и выше, более старые версии не проверялись) по умолчанию привязывается ко всем обнаруженным интерфейсам. Если на сервере samba установлена система виртуализации (проверено с Oracle VirtualBox и с KVM), то samba привязывается и к адаптерам виртуальных мостов, после чего samba в виртуальной подсети сама среди себя проводит выборы мастер-браузера,
...
объявляет себя мастером и перестаёт видеть
...
разделяемые ресурсы на физическом сетевом интерфейсе. Характерный симптом - после команды
Command |
---|
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). |
После чего перезапустить сервисы:
Command |
---|
sudo systemctl restart smbd nmbd |
...
Информация |
---|
Побочный эффект - команда smbtree, выполненная на сервере, при этом |
...
перестаёт показывать собственные ресурсы, хотя свой сервер показывает. |
Отключение запроса пароля в командах smbtree и smbclient
Запрос пароля отключается опцией -N:
Command |
---|
smbtree -N |
или
Command |
---|
smblient -N -L ... |
Включение обнаружения разделяемых ресурсов командой smbtree
На клиентах
Для того, чтобы КЛИЕНТЫ samba корректно запрашивали разделяемые ресурсы нужно:
в файл /etc/samba/smb.conf НА КЛИЕНТСКОМ КОМПЬЮТЕРЕ в секцию [global] добавить параметр:
Блок кода |
---|
client min protocol = NT1
|
После этого запросы к серверам samba версии 4.9 будут отправляться и отрабатываться корректно, запросы к настроенным по умолчанию серверам версии 4.11 и новее будут завершаться ошибкой вида:
Command | ||
---|---|---|
| ||
\\CE-2-13-3-1115 Samba 4.12.5-Debian |
На серверах
Для того, чтобы новые СЕРВЕРЫ samba корректно отвечали на запросы нужно:
в файл /etc/samba/smb.conf в секцию [global] НА СЕРВЕРЕ SAMBA добавить параметр:
Блок кода |
---|
server min protocol = NT1 |
После чего перезагрузить конфигурацию сервера:
Command |
---|
sudo smbcontrol smbd reload-config |
Прочее
...
smbtree не показывает собственные разделяемые ресурсы
При выполнении команды smbtree samba-клиент пытается разрешить 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 показывал собственные ресурсы имя сервера должно разрешаться в адрес сетевого интерфейса, к которому привязана samba - проще всего указать адрес в /etc/hosts.
Привязать samba к адресу 127.0.1.1 не получилось, видимо потому, что это адрес виртуальный.
Авторизация NTLM в samba
По умолчанию служба 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. |
nmblookup
Узнать кто мастер - браузер группы WORKGROUP (код - 1d) :
Command | ||
---|---|---|
| ||
192.168.1.1 WORKGROUP<1d> |
Найти "специальный сервер __MSBROWSE__":
Command | ||
---|---|---|
| ||
192.168.1.1 __MSBROWSE__<01> |
Avahi
Список доступных серверов samba:
Command |
---|
sudo apt install avahi-utils sudo avahi-browse -r _smb._tcp |