Linux samba ntlm auth

Некоторые особенности работы с Samba

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

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

Запрос пароля при выполнении команд smbtree/smbcient отключается опцией -N:

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

Настройки различаются для серверов Samba и для клиентов, при этом любой компьютер может быть одновременно и сервером и клиентом, то есть указанные далее настройки могут применяться совместно.

Для обнаружения разделяемых ресурсов используется протокол NT1 (он же CIFS), по умолчанию отключенный как устаревший. Указанные ниже настройки позволяют использовать этот протокол, однако следует помнить, чото протокол устарел и подвержен уязвимостям.

На клиентах

Для того, чтобы команда smbtree корректно запрашивала разделяемые ресурсы можно в параметрах команды принудительно указать протокол:

Для того, чтобы клиенты samba всегда использовали протокол NT1 и корректно запрашивали разделяемые ресурсы нужно в файл /etc/samba/smb.conf на клиентском компьютере в секцию [global] добавить параметр:

После этого запросы к серверам 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 добавить параметр:

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

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

Samba (версии 4.9 и выше, более старые версии не проверялись) по умолчанию привязывается ко всем обнаруженным интерфейсам. Если на сервере samba установлена система виртуализации (проверено с Oracle VirtualBox и с KVM), то samba привязывается и к адаптерам виртуальных мостов, после чего samba в виртуальной подсети сама среди себя проводит выборы мастер-браузера, объявляет себя мастером и перестаёт видеть разделяемые ресурсы на физическом сетевом интерфейсе. Характерный симптом — после команды

при выполнении команды 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).

Читайте также:  Gdb чем открыть linux

После чего перезапустить сервисы:

Побочный эффект — команда smbtree, выполненная на сервере, при этом перестаёт показывать собственные ресурсы, хотя свой сервер показывает.

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, понижающее защищенность информационой системы.

Источник

DESCRIPTION

ntlm_auth is a helper utility that authenticates users using NT/LM authentication. It returns 0 if the users is authenticated successfully and 1 if access was denied. ntlm_auth uses winbind to access the user and authentication data for a domain. This utility is only intended to be used by other programs (currently Squid and mod_ntlm_winbind)

OPERATIONAL REQUIREMENTS

The winbindd(8) daemon must be operational for many of these commands to function.

Some of these commands also require access to the directory winbindd_privileged in $LOCKDIR. This should be done either by running this command as root or providing group access to the winbindd_privileged directory. For security reasons, this directory should not be world-accessable.

OPTIONS

Requires access to the directory winbindd_privileged in $LOCKDIR. The protocol used is described here: http://devel.squid-cache.org/ntlm/squid_helper_protocol.html. This protocol has been extended to allow the NTLMSSP Negotiate packet to be included as an argument to the YR command. (Thus avoiding loss of information in the protocol exchange).

Client-side helper for use with arbitrary external programs that may wish to use Samba’s NTLMSSP authentication knowledge.

Читайте также:  Офис 2013 для линукс

This helper is a client, and as such may be run by any user. The protocol used is effectively the reverse of the previous protocol. A YR command (without any arguments) starts the authentication exchange.

Server-side helper that implements GSS-SPNEGO. This uses a protocol that is almost the same as squid-2.5-ntlmssp, but has some subtle differences that are undocumented outside the source at this stage.

Requires access to the directory winbindd_privileged in $LOCKDIR.

Client-side helper that implements GSS-SPNEGO. This also uses a protocol similar to the above helpers, but is currently undocumented.

Server-side helper protocol, intended for use by a RADIUS server or the ‘winbind’ plugin for pppd, for the provision of MSCHAP and MSCHAPv2 authentication.

This protocol consists of lines in the form: Parameter: value and Parameter:: Base64-encode value. The presence of a single period . indicates that one side has finished supplying data to the other. (Which in turn could cause the helper to authenticate the user).

Currently implemented parameters from the external program to the helper are:

The fully qualified username, expected to be in Samba’s unix charset and qualified with the winbind separator.

The 8 byte LANMAN Challenge value, generated randomly by the server, or (in cases such as MSCHAPv2) generated in some way by both the server and the client.

The 24 byte LANMAN Response value, calculated from the user’s password and the supplied LANMAN Challenge. Typically, this is provided over the network by a client wishing to authenticate.

The >= 24 byte NT Response calculated from the user’s password and the supplied LANMAN Challenge. Typically, this is provided over the network by a client wishing to authenticate.

The user’s password. This would be provided by a network client, if the helper is being used in a legacy situation that exposes plaintext passwords in this way.

Warning
Implementers should take care to base64 encode any data (such as usernames/passwords) that may contain malicious user data, such as a newline. They may also need to decode strings from the helper, which likewise may have been base64 encoded.

If not specified on the command line, this is prompted for when required.

For the NTLMSSP based server roles, this parameter specifies the expected password, allowing testing without winbindd operational.

Perform Diagnostics on the authentication chain. Uses the password from —password or prompts for one.

Require that a user be a member of specified group (either name or SID) for authentication to succeed.

level is an integer from 0 to 10. The default value if this parameter is not specified is 1 for client applications.

The higher this value, the more detail will be logged to the log files about the activities of the server. At level 0, only critical errors and serious warnings will be logged. Level 1 is a reasonable level for day-to-day running — it generates a small amount of information about operations carried out.

Читайте также:  Linux steam directx 11

Levels above 1 will generate considerable amounts of log data, and should only be used when investigating a problem. Levels above 3 are designed for use only by developers and generate HUGE amounts of log data, most of which is extremely cryptic.

Note that specifying this parameter here will override the log level parameter in the /etc/samba/smb.conf file.

The file specified contains the configuration details required by the client. The information in this file can be general for client and server or only provide client specific like options such as client smb encrypt. See /etc/samba/smb.conf for more information. The default configuration file name is determined at compile time.

Set the smb.conf(5) option «» to value «» from the command line. This overrides compiled-in defaults and options read from the configuration file. If a name or a value includes a space, wrap whole —option=name=value into quotes.

EXAMPLE SETUP

To setup ntlm_auth for use by squid 2.5, with both basic and NTLMSSP authentication, the following should be placed in the squid.conf file.

auth_param ntlm program ntlm_auth --helper-protocol=squid-2.5-ntlmssp auth_param basic program ntlm_auth --helper-protocol=squid-2.5-basic auth_param basic children 5 auth_param basic realm Squid proxy-caching web server auth_param basic credentialsttl 2 hours

This example assumes that ntlm_auth has been installed into your path, and that the group permissions on winbindd_privileged are as described above.

To setup ntlm_auth for use by squid 2.5 with group limitation in addition to the above example, the following should be added to the squid.conf file.

auth_param ntlm program ntlm_auth --helper-protocol=squid-2.5-ntlmssp --require-membership-of='WORKGROUP\Domain Users' auth_param basic program ntlm_auth --helper-protocol=squid-2.5-basic --require-membership-of='WORKGROUP\Domain Users'

TROUBLESHOOTING

If you’re experiencing problems with authenticating Internet Explorer running under MS Windows 9X or Millennium Edition against ntlm_auth’s NTLMSSP authentication helper (—helper-protocol=squid-2.5-ntlmssp), then please read the Microsoft Knowledge Base article #239869 and follow instructions described there.

VERSION

This man page is part of version 4.18.4 of the Samba suite.

AUTHOR

The original Samba software and related utilities were created by Andrew Tridgell. Samba is now developed by the Samba Team as an Open Source project similar to the way the Linux kernel is developed.

The ntlm_auth manpage was written by Jelmer Vernooij and Andrew Bartlett.

Package name: extra/samba Version: 4.18.4-1 Upstream: https://www.samba.org Licenses: GPL3 Manuals: /listing/extra/samba/ Table of contents

Powered by archmanweb, using mandoc for the conversion of manual pages.

The website is available under the terms of the GPL-3.0 license, except for the contents of the manual pages, which have their own license specified in the corresponding Arch Linux package.

Источник

Оцените статью
Adblock
detector