

Не надейтесь на свой опыт, если вы ранее настраивали версии Samba до 2.0. Значение по умолчанию этого параметра изменилось. В предыдущих версиях Samba значением по умолчанию было security - share. В новых версиях значение по умолчанию security = user, поскольку оно чаще всего используется при взаимодействии с Windows 95/98 и Windows NT. Если имена пользователей на ваших клиентских машинах совпадают с их именами на UNIX-сервере, то тогда вам сле-дует использовать security - user. Однако в этом случае сложнее создать разделяемые лиски для публичного доступа. Вне зависимости от того, какой вариант вы выберете для вашей сети, взаимодействие между клиентом и сервером происходит по описанной ниже схеме.
Сервер следует этой процедуре для того, чтобы определить, позволит ли он произвести подключение к разделяемому ресурсу. Если все шаги заканчиваются неуспехом, в соединении будет отказано. Если один из шагов был успешен, последующие шаги не выполняются. Еще раз повторим, что последовательность шагов не зависит от того, какое значение параметра security вы выбрали:
1. Если клиент передал пару имя/пароль и программа проверки пароля UNIX-системы подтвердила ее корректность, то производится соединение под данным именем пользователя. Этот вариант включает в себя метод передачи имени пользователя совместно с именем разделяемого ресурса, применяемый в NT: \\sugar\sharel edwardb.
2. Если клиент указал имя пользователя при установлении предыдущего соединения и в этот раз передал правильный пароль для этого имени, то со-едннение разрешается.
3. Производится сопоставление NetBIOS-имени клиента и всех использованных ранее имен пользователей с переданным паролем. Если пароль соответствует одному из имен, соединение разрешается.
4. Если клиент ранее передавал пару имя/пароль, и она была признана сервером корректной, то разрешается соединение для данного имени пользователя. Если параметр revalidate (Security options, параметр 20) установлен в значение yes, то этот шаг пропускается.
5. Если для разделяемого ресурса, попытка подключения к которому производится, в файле smb.conf при помощи параметра user задан список пользователей, и клиент передал правильный пароль для одного из пользователей, то разрешается соединение для этого пользователя. Если в списке user указано имя, начинающееся с символа §, то оно перед началом проверки паролей заменяется па список пользователей, входящих в группу, имя которой указано после @.
6. Если разделяемый ресурс является ресурсом для публичного доступа, то производится подключение под именем пользователя, заданного для этого ресурса при помощи параметра guest account, вне зависимости от переданного пароля.
Параметр security имеет четыре доступных значения:
О security - user (безопасность на уровне пользователей); О security - share (безопасность на уровне ресурсов); О security - server (безопасность на уровне сервера); О security - domain (безопасность на уровне домена).
Начиная с версии 2.0, по умолчанию используется значение security - user. Безопасность на уровне пользователей требует от клиента подключаться к разделяемым ресурсам при помощи корректных имени пользователя и пароля (соответствие которых именам пользователей UNIX-системы может быть указано при помощи параметра username map). В этом режиме безопасности также могут использоваться шифрованные пароли (см. параметр encrypt passwords). Если установлены такие параметры, как user и guest only, то они применяются и .могут изменить имя пользователя UNIX-снстемы, с правами которого устанавливается соединение — но это происходит только после успешной аутентификации пользователя. Это связано с тем, что имя ресурса, запрос на соединение с которым производится, пересылается на сервер только после успешной аутентификации клиента. Именно поэтому публично доступные ресурсы не будут работать при использовании безопасности на уровне пользователей без автоматического отображения неизвестных серверу пользователей в гостевую учетную запись (см. параметр map to guest, Security options. 6).
Значение security - share не требует от клиентов подключения к серверу с использованием имени пользователя и пароля до попытки подключения к разделяемому ресурсу. Клиенты на базе Windows 95/98 и Windows NT при подключении к серверу, на котором используется безопасность иа уровне ресурсов, будут по-прежнему передавать запрос на аутентификацию, в котором будет указано имя пользователя, но не будет указам пароль. Пароли для аутентифнкашш отправляются клиентами для каждого ресурса отдельно, непосредственно при попытке подключения к нему. Служба smbd всегда выполняет запросы клиента от имени существующего пользователя UNIX-системы, лаже при использовании безопасности на уровне ресурса. Демон smbd использует несколько методов для определения, от имени какого конкретно пользователя он должен работать при ыполнении того или иного запроса. Сначала создается список возможных поль-вателен для проверки пароля, потом производится проверка пароля:
О Если установлен параметр smbd, то все другие стадии пропускаются и проверяется только имя гостевой учетной записи.
О Если при запросе на подключение к разделяемому ресурсу клиентом было передано имя пользователя, то это имя пользователя (после отображения в локальные имена, см. параметр username map) добавляется в список.
Если клиент подключался к серверу ранее, то использованное им при предыдущем подключении имя добавляется в список. Имя ресурса, подключение к которому запрашивает клиент, также добанлястся в список в качестве имени пользователя. В список также добавляется NetBIOS-имя клиента.
Если не установлен параметр guest only, то производится проверка соответствия указанного клиентом пароля всем именам из списка. Первый пользователь из списка, для которого данный пароль подошел, и будет тем UNIX-пользователем, от имени которого работает smbd.
Если параметр guest only установлен или имя пользователя, соответствующее паролю, не найдено, то производится проверка — является ли запрашиваемый ресурс публично доступным.
О Если ресурс является публично доступным, то smbd работает от имени пользователя-гостя, в противном случае в подключении будет отказано.
В режиме security - server Samba пытается проверять корректность пароля для данного имени пользователя передавая их другому SMB-серверу (возможно, NT-системе). Если проверка закончилась неуспехом, то Samba переходит па использование безопасности на уровне пользователей (security - user). Однако если используются шифрованные пароли (а если вы работаете с NT, вы работаете с шифрованными паролями), то возврат к проверке UNIX-паролей невозможен. В этом случае для проверки паролей вы должны создать файл smbpasswd.
С точки зрения клиента, security - server ничем не отличается от security -user. Разница заключается только в том, как сервер производит аутентификацию. Запомните, что имя запрашиваемого клиентом ресурса не передается на сервер до того, как будет произведена успешная аутентификация пользователя. Именно поэтому публично доступные ресурсы не будут работать при безопасности на уровне сервера, если только вы не разрешите серверу автоматически отображать неизвестных пользователей в гостевую учетную запись (см. параметр map to guest).
Режим security - domain правильно работает только в том случае, если Samba-сервер был добавлен в домен Windows NT при помощи программы smbcllent. Ожидается, что при использовании этого режима будут включены шифрованные пароли (см. encrypted passwords). В этом режиме Samba пытается проверять корректность пароля, передавая его основному или дополнительному контроллеру домена, точно так же, как это делает Windows NT. С точки зрения клиента, security - domain ничем не отличается от security - user. Как и в случае security -server, имя запрашиваемого ресурса не передается на сервер до успешного проведения аутентификации. Именно поэтому публично доступные ресурсы не будут работать при безопасности на уровне домена, если только вы не разрешите серверу автоматически отображать неизвестных пользователей в гостевую учетную запись (см. параметр map to guest).
Статьи по теме

