Volgograd

Волгоград Linux User Group

Организована 23 ноября 2002 года

Проект заморожен Птн Июл 6 02:11:14 MSD 2012


Вход:  Пароль:  

AvramenkoAndrew/samba3hоwто


Это старая версия AvramenkoAndrew/samba3hоwто за 2006-08-17 16:04:28..

SAMBA 3 – HOWTO


Данное руководство включает в себя перевод официального HOW-TO с дополнительной информацией (возможно с точки зрения профессионалов даже избыточной), а также набор готовых примеров, информацию по руссифицикации. Также здесь опущен перевод всяких присказок и перечней того о чем рассказывается в главе для удобства чтения.
Писать буду долго, так что если кто-то в этом соображает – помогайте.

Заранее прошу прощение за транслитерованные названия и термины. Например, я не знаю как писать слово samba и как его склонять :)

Оглавление документа

Введение

Самба – большой комплексный проект. Samba team – группа из 30 индивидуальностей, которые представляют различные страны. Эта команда включает ученых, инженеров, бизнесменов и студентов.

Решение проблем с самбой возможно многими способами, например, отправить описание проблемы в рассылки. В дистрибутиве ALT Linux существует для этого специализированная рассылка, в коммерческих дистрибутивах это официальная техническая поддержка (если она есть). Также если нет проблем с английским языком, вопрос можно задать в официальной рассылке или на официальном канале #samba на сервер freenode.net. Вопросы по разработке можно задать на канале #samba-devel или в специализированной рассылке. Перед тем как что-то спрашивать рекомендую все же обратиться к документации. Вопросы очень часто повторяются одни и те же.

Ежегодно проводится конференция Samba Expirience и многую информацию о развитии самбы можно прочитать на сайте sambaxp.org.

I. Инсталляция

Бинарные пакеты sambы поставляются в большинство UNIX-дистрибутивов. Часть из них опубликована на официальном сайте самбы. Перед тем как компилировать ее из исходных текстов, сначала определитесь для чего Вам это нужно. Установка из бинарных пакетов описывать не буду, так как без этих знаний по-моему вообще рано читать эту статью.

Получение исходных текстов.


Самба разрабатывается в открытом окружении, т.е. Вы можете получить доступ к текущим исходным текстам непосредственно через subversion. Это можно сделать двумя способами:

1. Через SVNweb по адресу: http://svnweb.samba.org/
2. Через обычный subversion-клиент:



Это позволит скачать текущую development-ветку. На данный момент это 3.1. Для доступа к другим веткам нужно добавлять branches/BRANCH_NAME. Список можно получить на странице Development официального сайта.

Для обновления полученных исходных текстов достаточно просто набрать



Также доступ к исходным текстам можно получить с помощью rsync или ftp, но это будет не версия реального времени.

Сборка из исходных текстов

Если скрипт configure не присутствует, то необходимо его создать, предварительно убедившись, что у вас в системе присутствует autoconf:



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



Далее выполняем:



Для отката на прежнюю версию самбы, можно выполнить:


II. Основы конфигурирования

Типы серверов и режимы безопасности

Администраторы сетей Microsoft различают 3 типа серверов:
  • Контроллеры домена
    • Главный контроллер домена (PDC)
    • Запасной контроллер домена (BDC)
    • ADS контроллер домена
  • Сервер-участник домена
    • Сервер домена ActiveDirectory
    • Сервер домена в стиле NT4
  • Отдельно стоящий сервер (Standalone)

Сети Microsoft Windows используют протокол, который первоначально назывался Server Message Block (SMB). С 1996 года протокол стал более известным под названием Common Internet Filesystem (CIFS). В окружении smb/cifs известны только 2 режима безопасности: на уровне пользователей (user-level) и на уровне разделенных ресурсов (share-level). В самбе один вариант уровня безопасности share и четыря уровня безопасности user. Они известны как share, user, domain, ads и server.

В начале сессии SMB-сервер информирует клиента о том какой уровень безопасности он использует. В зависимости от того какой из двух уровней ему был сообщен клиент пытается себя аутентифицировать. Это не влияет напрямую. В SMB все контролируется только со стороны клиента, а сервер в свою очередь только говорит что доступно и разрешено.

Термин «клиент» в данном случае употребляется как для рабочих станций и серверов Windows, так и для другого сервера Samba или SMB-приложения (например, smbclient), которые пользуются сервисами данного SMB/CIFS сервера.

User Level Security

Управление доменом

Резервный контроллер домена

Членство в домене

Отдельно стоящий сервер

Руководство по конфигурированию сетей MS Windows

Дополнительная конфигурация

Базы данных аккаунтов

Samba 3 предоставляет возможность работать с несколькими хранилицами аккаунтов. Полностью активно поддерживаются 3 хранилища: smbpasswd, tdbsam и ldapsam. Ldapsam позволяет хранить информацию не только об аккаунтах самбы, но и о системных аккаунтах. Рекомендуется для простых систем использовать tdbsam. Ldapsam рекомендуется использовать для больших комплексных сетей.

Устаревшие хранилища аккаунтов
Plaintext – это вообще не хранилище, но для упрощения указано здесь. Он использует открытую аутентификацию через PAM.
smbpasswd – позвоялет хранить аккаунты в файле smbpasswd. Не хранит информацию SAM (Security Accaunt Manager). Планируется исключить в будующих релизах.
ldapsam_compat – хранение в LDAP, который использует схему для самбы2.2

Новые хранилища аккаунтов
tdbsam – позволяет создать большую БД – хранилище аккаунтов. Хранит старую информацию smbpasswd и информацию SAM. Не подходит для нескольких контроллеров домена, т.е. (PDC + один или несколько BDC).
ldapsam – хранение аккаунтов в службе каталогов LDAP.
mysqlsam – хранение в БД mysql. Подходит для сайтов, которые используют mysql.
pgsqlsam – хранение в PostgreSQL. Настройка очень похожа на настройку хранения в mysql.
xmlsam – хранение в текстовом файле формата XML.

Многие пользователи задают вопрос: почему нельзя просто использовать системную базу данных паролей? Дело в том, что Windows использует свой метод шифрования паролей, который не совместим с шифрование в стиле UNIX. Конвертирование из одного формата в другой невозможно. Кроме того, Windows дописывает много другой информации: размещение профиля, рабочие станции с которых пользователей может входить и др.

Важные замечания по поводу безопасности.
Первоначально, кажется что шифрование SMB и UNIX очень похоже, но это только внешне. В отличие от паролей UNIX, SMB никогда не передает пароли открытым текстом. Зато, он записывать 16-битные хэши на диск, это плохо. Поэтому рекомендуется хранить базы данных бэкэндов(хранилищей паролей) в изоляции от остальных пользователей, хоть они и не содержат открытых паролей.

Mapping.
Каждая операция в UNIX'е требует идентификатора пользователя (UID), каждая операция в Windows требует идентификатора безопасности (SID). Самба предоставляет 2 значения установления связи между UID и SID.
Samba может записывать информацию о присвоение SID пользователю в бэкэнд или же использовать параметры idmap uid и idmap gid в конфигурационном файле smb.conf.

Утилиты управления аккаунтами.

smbpasswd
С ее помощью можно:
– добавить пользователя
– удалить пользователя
– включить пользователя
– временно отключить пользователя
– задать нулевой пароль пользователю
– управлять внутридоменными доверями

Для запуска smbpasswd как обычный пользователь:



Group mapping

Начиная с ~SAMBA3 новая функция group mapping позволяет создавать связь между Windows SID групп и группами Unix.

Групповые аккаунты могут управляться с использованием программы Win MMC. Соответствующий скрипт должен быть в smb.conf
Если этого скрипта нет и если запущен winbindd, идентификатор для группы, созданной с помощью этой программы будет выбран из диапазона, который предоставлен IDMAP.

Net groupmap используется, чтобы установить связь между UNIX-группами и NT SID. Часть информации Вы можете узнать в разделе IDMAP. Если создать пользователя testuser, чтобы он был в группе администраторов, то на компьютере – члене домена, этот пользователь будет иметь такие же права как пользователь Administartor.

Следующие шаги описывают как создать в Samba PDC пользователей – членов группы Domain Admins
1) Создать Unix-группу domadm
2) В /etc/group прописать членов группы:
domadm:x:502:joe,john,mary
3)Создать связь с NT-группой:


Внимание: Windows не допускает, чтобы имя пользователя совпадало с именем группы.

Удаленное и локальное управление

net [RPC|ADS] USER ADD name [password] [-F user flags] [-C comment]

<liberal use of snip>
Possible flags are listed below.
N: No password required
D: Account disabled
H: Home directory required
T: Temporary duplicate of other account
U: Regular user account
M: MNS logon user account
W: Workstation Trust Account
S: Server Trust Account
L: Automatic Locking
X: Password does not expire
I: Domain Trust Account

Identify mapping

IDMAP используется если более чем одна группа Samba установлена в домене. Когда несколько серверов Samba используется, часто приходится пермещать с одного сервера на другой и здесь начинаются чудеса! =)

Права пользователей и привелегии

Управление доступом

Блокировка файлов

Безопасность самбы

Interdomain Trust Relationships

MSDFS

MS DFS – распределенная файловая система позволяет разделять логическое и физическое нахождение файлов и директорий. Это делается для обеспечения высокой доступности, меньших затрат на системы хранения данных и распределения нагрузки.

За дополнительной информацией о MS DFS можно обратиться к соответствующей документации.

Samba-сервер может работать как DFS-сервер путем выставления логической переменной host msdfs в кофигурационном файле smb.conf. Соответствующие директории создаются как символические ссылки на другие сервера. Вот пример:



smb.conf:



Поддержка печати

Модуль VFS

Winbind

winbind – компонент samba, который помогает организовать вход пользователей домена Windows и работать как обыкновенным пользователям в UNIX-компьютер с помощью UNIX-реализации Microsoft RPC, PAM и NSS.

winbind предоставляет 3 отдельные функции:
– аутентификация (PAM);
– идентификация (NSS);
– winbind поддерживает базу данных, называемую winbind_idmap.tdb, в которой записаны соответствия между UNIX UID, GID и Windows SID. Это используется только для пользователей, не заведенных локально. Можно указать в качестве idmap-бэкенда ldap (тэг idmap backend).

Политики учетных записей

Управление профилями

Аутентификация PAM

Интеграция MS Windows и Самбы

Кодировки и руссификация

Пользователи Windows-машин должны нормально видеть файлы с русскими названиями, находящиеся на Linux-машине. Аналогично для пользователей Linux-машин. Предположим, что на Linux-машине стоит локаль koi-8. Тогда соответствующие параметры в файле конфигурации:

Миграция и обновление

Решение проблем

Дополнение

Примеры