Изучаем Linux, 302 (смешанные среды): Роли Samba

Архитектура, принципы и схема работы

Samba – это не просто программа, а комплекс взаимосвязанных специализированных серверных компонентов и утилит. Если вы знаете, чем отличаются эти серверы и утилиты, то сможете более эффективно управлять системой Samba. Кроме того, в Samba реализовано несколько различных моделей безопасности, о которых необходимо знать, чтобы правильно интегрировать Samba в существующую сеть или же создать новую сеть на основе серверов Samba.

Родерик Смит (Roderick Smith), автор и консультант, IBM

Род Смит (Rod Smith) - фотографияРод Смит (Rod Smith) долгое время работает техническим консультантом и является автором более десятка книг о Linux, UNIX и сетях.



22.03.2012

Об этой серии

Эта серия статьей поможет вам освоить задачи администрирования операционной системы Linux. Вы можете использовать материалы этих статей для подготовки к экзаменам программы LPIC третьего уровня (LPIC-3).

Чтобы посмотреть описания статей этой серии и получить ссылки на них, обратитесь к нашему перечню материалов для подготовки к экзаменам LPIC-3. Этот перечень постоянно дополняется новыми статьями по мере их готовности и содержит текущие (по состоянию на ноябрь 2010 года) цели экзаменов сертификации LPIC-3.

Краткий обзор

Из этой статьи вы узнаете о следующих концепциях:

  • Режимы безопасности Samba.
  • Роли основных демонов Samba.
  • Управление демонами Samba.

Эта статья поможет вам подготовиться к сдаче экзамена LPI 302 (специализация "Смешанные среды") и содержит материалы цели 310.2 темы 310. Цель имеет вес 1.

Предварительные требования

Чтобы извлечь наибольшую пользу из наших статей, необходимо обладать продвинутыми знаниями о Linux и иметь работоспособный компьютер с Linux, на котором можно будет выполнять все описанные команды. В частности, предполагается, что читатель умеет работать с командной строкой Linux и в общих чертах понимает назначение Samba (о чем рассказывалось в предыдущей статье "Изучаем Linux, 302: основные принципы"). Для выполнения примеров этой статьи на вашем компьютере должно быть инсталлировано программное обеспечение Samba. Для выполнения некоторых действий потребуется сетевое окружение, в котором используется протокол Server Message Block (SMB)/Common Internet File System (CIFS).


Демоны Samba

О факультативном экзамене LPI-302

Как и многие другие программы, программа сертификации Linux Professional Institute (LPIC) предусматривает различные уровни сертификации, где для получения каждого последующего уровня необходимо обладать более глубокими знаниями и практическим опытом. Экзамен LPI-302 – это факультативный экзамен третьего уровня программы LPIC, требующий продвинутых знаний в области системного администрирования Linux.

Для получения сертификата LPIC третьего уровня (LPIC-3) необходимо успешно сдать два экзамена первого уровня (101 и 102), два экзамена второго уровня (201 и 202), а также базовый экзамен 301 третьего уровня (LPIC-3). Если вы получили сертификат третьего уровня, вы можете сдавать факультативные экзамены по определенным специализациям, например, экзамен LPI-302.

Серверные службы Linux зачастую реализованы в виде демонов. Это слово было позаимствовано из греческой мифологии, в которой демоны являлись полезными сверхъестественными существами. Любой демон Linux работает в фоновом режиме и выполняет определенную полезную задачу. Серверный пакет Samba содержит несколько демонов, включая smbd, nmbd и winbindd. Программа swat также является сервером Samba, но, как правило, она запускается из-под супер-сервера и технически не является демоном.

Понимание smbd

Программа smbd обеспечивает основную базовую функциональность Samba, выполняя следующие функции:

  • Обеспечение общего доступа к файлам и принтерам. Эта функция smbd, вероятно, является одной из наиболее важных функций Samba.
  • Аутентификация пользователей. Демон smbd авторизует пользователей, выполняя поиск в локальной базе данных или передавая запросы на другой компьютер. Если сервер Samba настроен в качестве контроллера домена, то smbd также отвечает за обработку запросов авторизации, поступающих с других компьютеров (конфигурации для рабочей группы и домена будут кратко описаны в разделе Установка режима безопасности).
  • Служба времени. Samba может сообщать другим компьютерам о текущем времени. Этим также занимается smbd.

Создайте ваш собственный канал

Вы можете создать ваш собственный RSS, Atom или HTML канал обновлений и получать уведомления о новых или обновленных статьях нашего сайта. Для этого перейдите на страницу developerWorks RSS feeds, выберите зону Linux, установите флажок Статьи и введите в качестве ключевой фразы Linux Professional Institute, после чего выберите требуемый тип канала.

По умолчанию демон smbd использует TCP-порты 139 и 445. Порт 139 обеспечивает работу SMB через службы NetBIOS поверх TCP (именно так с SMB/CIFS работает большинство более старых клиентов). Порт 445 обеспечивает работу SMB напрямую через TCP (через этот порт доступ к серверу Samba получает большинство более новых клиентов).

Поскольку выполняемые smbd функции (в частности, предоставление общего доступа к файлам и принтерам и аутентификация) имеют критический характер, то этот демон можно считать ядром Samba. Фактически, если на компьютере запущен только лишь демон smbd, к нему можно подключиться и обмениваться файлами, используя, например, программу smbclient из состава Samba. Тем не менее, работа некоторых клиентов зависит от служб, предоставляемых другими демонами Samba.

Понимание nmbd

Вторым ключевым демоном Samba является nmbd. Его основной обязанностью является выполнение задач, связанных с использованием имен. Можно рассматривать его как собственную доменную систему имен (DNS) Samba, хотя он не так сложен в настройке и намного проще, чем DNS. Nmbd выполняет следующие функции:

  • Ответы на широковещательные запросы имен. В одном из основных режимов работы клиенты посылают в сегмент сети широковещательные запросы на разрешение имен. Сервер nmbd отслеживает такие широковещательные запросы и отвечает на них, если система Samba настроена на использование запрашиваемых имен. Сервер nmbd также отвечает на запросы в тех случаях, когда он настроен в качестве прокси для другого компьютера или сети.
  • Регистрация имен NetBIOS. Для того чтобы разрешение имен NetBIOS работало, компьютеры должны зарегистрировать свои имена либо используя центральный сервер имен NetBIOS (NBNS, известный также, как сервер Windows Internet Name Service [WINS]), либо отправляя в сеть широковещательные пакеты с именами и соответствующими им переговорными правами. Nmbd отвечает за этот процесс, а также за переговоры с другими компьютерами, обладающими такими правами и зарегистрировавшими свои имена.
  • Работа в качестве сервера NBNS. Система Samba может быть настроена в качестве системы NBNS, функции которой выполняет nmbd.
  • Работа в качестве главного обозревателя (master browser). Одним из действий, выполняемых пользователями в сети SMB/CIFS, является обзор – возможность просматривать серверы в сети наподобие просмотра директорий на жестком диске компьютера. Эта возможность зависит от наличия в сети главного обозревателя, который формирует и распространяет списки просмотра. Если система Samba настроена в качестве главного обозревателя, эти функции выполняет nmbd.

Как видно из вышеприведенного списка, nmbd отвечает за выполнение множества задач. Хотя эти задачи не связаны с обслуживанием файлов или принтеров, многие из них являются критическими функциями любого сервера SMB/CIFS, поэтому демон nmbd также следует считать критически важным компонентом Samba. Обычно этот демон запускается вместе с демоном smbd в сценариях запуска операционной системы.

Для большинства функций nmbd требуется использовать TCP-порт с номером 137, однако служба главного обозревателя использует UDP-порт с номером 138.

Понимание winbindd

Третий демон Samba – это демон winbindd. В отличие от smbd и nmbd, winbindd не предоставляет никаких сервисов удаленным компьютерам, а служит интерфейсом между контроллером домена Windows® (или Samba) и собственными PAM-модулями (Pluggable Authentication Modules – подключаемые модули аутентификации) локальных компьютеров, позволяя контроллеру домена хранить информацию об учетных записях Linux.

Во многих дистрибутивах winbindd устанавливается отдельно от Samba в качестве самостоятельного пакета, который обычно называется winbind или winbindd. Как правило, запускается он тоже отдельно. В принципе, winbindd можно запускать на компьютере, на котором не установлен сервер Samba и который даже не является клиентом SMB/CIFS, не считая того, что winbindd сам является клиентом SMB/CIFS. Однако, как показывает практика, если на компьютере с Linux запущен winbindd, то, вероятно, на нем будет работать сервер Samba или он будет являться клиентом SMB/CIFS.


Управление Samba

Управление системой Samba включает в себя две задачи: настройка параметров конфигурации в конфигурационном файле и их изменение "на лету". В первом случае задача решается путем редактирования конфигурационного файла Samba, а во втором случае – путем использования конфигурационной утилиты smbcontrol.

Настройка параметров в конфигурационном файле

Главный конфигурационный файл Samba называется smb.conf и обычно расположен в директории /etc/samba, хотя может располагаться и в другом месте (если вы компилируете Samba из исходного кода, то он может быть в директории /usr/local/samba/lib).

Файл smb.conf разбит на разделы, каждый из которых начинается с имени, заключенного в квадратные скобки ([]), например, [global] или [documents]. В большинстве разделов настраиваются параметры общих ресурсов (файлов или принтеров), однако раздел [global] является особенным: в нем содержатся параметры, которые влияют на работу всего сервера или задают значения по умолчанию, используемые в последующих определениях общих ресурсов. Обычно раздел [global] находится в самом начале конфигурационного файла.

Строки в файле smb.conf могут являться комментариями, начинающимися с символов решетки (#) или точки с запятой (;), названиями разделов или строками, содержащими параметры Samba. В последнем случае строки имеют следующий вид:

параметр = значение

Параметр – это ключевое слово, например, security или create mask. Имена параметров не чувствительны к регистру. Для некоторых распространенных параметров существуют синонимы, а для некоторых – антонимы. Например, writable и writeable – это синонимы, а read only – антоним для них, т. е. конструкция read only = Yes эквивалентна конструкции writable = No.

Значение, присваемое параметру, может быть строкой произвольной формы (включая специализированные числовые значения, например, IP-адреса), логическим значением, переменной или списком. Логические значения могут принимать одно из следующих значений: Yes, True, 1 (синонимы) или No, False, 0.

Переменные начинаются с символа процента (%) и предназначены для хранения информации, которая может быть не известна на момент создания конфигурационного файла. Например, переменная %D означает имя рабочей группы или домена сервера, %h – DNS-имя сервера, %H – домашнюю директорию пользователя, %L – NetBIOS-имя сервера и %u – имя пользователя.

Некоторые параметры могут представлять собой списки из нескольких значений, например, списки имен пользователей. В этих случаях элементы списка разделяются запятыми (например, конструкция george, mary относится как к пользователю george, так и к пользователю mary). В большей части файла smb.conf символ пробела игнорируются, поэтому если значение содержит такой символ, оно должно быть заключено в кавычки.

Файл smb.conf содержит параметры для smbd, nmbd, winbindd, а также других сервисов и приложений Samba. Параметры различных программ не отделяются явно друг от друга, хотя иногда имя параметра позволяет ясно понять, для какого демона он предназначен.

Управление Samba с помощью smbcontrol

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

smbcontrol [-i] [-s файл_конфигурации]
smbcontrol [назначение] [сообщение] [параметр]

При использовании опции -i программа smbcontrol переходит в интерактивный режим, в котором можно выполнять по очереди несколько команд, не набирая каждый раз smbcontrol перед именем команды. В поле назначение можно указать имя сервера (smbd, nmbd или winbindd), ключевое слово all (если требуется послать сообщение всем демонам) или номер идентификатора процесса. Поле сообщение – это команда (список команд приведен в таблице 1). В поле параметр можно указать необязательный параметр, который может потребоваться какой-либо команде.

Таблица 1. Список команд smbcontrol
Команда (сообщение)Описание
close-shareЗакрывает общий доступ к ресурсу, указанному в параметре.
debugУстанавливает уровень отладки, указанный в параметре.
force-electionЗапускает принудительную процедуру выборов главного обозревателя.
debuglevelОтображает текущий уровень отладки демона.
printnotifyОтправляет сообщение клиентам, подключенным к общему принтеру, внося принудительные изменения в статус очереди клиентов.
samsyncСинхронизирует базу данных пользователей с контроллером домена (в официальной документации сказано, что эта функция на текущий момент не работает, поэтому протестируйте ее, прежде чем использовать).
shutdownОстанавливает работу указанного демона.
pool-usageОтображает информацию об использовании памяти для указанного демона.
drvupgradeУведомляет клиентов о новом доступном драйвере принтера. В качестве параметра этой команды указывается имя общего принтера.
reload-configУказывает серверу принудительно перезагрузить файл smb.conf.

Установка режима безопасности

В Samba имеется ряд параметров, связанных с аутентификацией пользователей. Наиболее важным из них является параметр security, который может принимать пять различных значений:

  • Share. Этот режим безопасности эмулирует метод аутентификации, используемый операционными системами Microsoft® Windows 9x/Windows Me. В этом режиме имена пользователей игнорируются, а пароли назначаются общим ресурсам. В этом режиме Samba пытается использовать предоставленный клиентом пароль, которым могут пользоваться разные пользователи.
  • User. Этот режим безопасности установлен по умолчанию и использует для аутентификации имя пользователя и пароль, как это обычно делается в Linux. В большинстве случаев в современных операционных системах пароли хранятся в зашифрованной базе данных, которую использует только Samba.
  • Server. Этот режим безопасности используется тогда, когда необходимо, чтобы Samba выполняла аутентификацию, обращаясь к другому серверу. Для клиентов этот режим выглядит так же, как аутентификация на уровне пользователя (режим User), но фактически для выполнения аутентификации Samba обращается к серверу, указанному в параметре password server.
  • Domain. Используя этот режим безопасности, вы можете полностью присоединиться к домену Windows; для клиентов это выглядит так же, как аутентификация на уровне пользователя. В отличие от аутентификации на уровне сервера, доменная аутентификация использует более защищенный обмен паролями на уровне домена. Для полного присоединения к домену требуется выполнить дополнительные команды в системе Samba и, возможно, на контроллере домена.
  • ADS. Этот режим безопасности похож на метод аутентификации в домене, но требует наличия контроллера домена Active Directory® Domain Services.

В качестве общей рекомендации мы советуем использовать аутентификацию на уровне пользователей, которая является наилучшим выбором в том случае, если ваш сервер Samba является членом рабочей группы Windows (простейшая форма сети SMB/CIFS). Рабочая группа отличается от домена преимущественно тем, что в последнем случае имеется контроллер домена – сервер, обеспечивающий аутентификацию в домене. Для использования контроллера домена необходимо установить режим безопасности (параметр security) Server, Domain или ADS. Режим Server более прост в настройке, но менее безопасен, тогда как режим ADS наоборот, является наиболее сложным в настройке и наиболее безопасным.

Для полного присоединения к домену (режим безопасности Domain или ADS) необходимо указать в разделе [global] файла smb.conf несколько дополнительных параметров:

password server = DOMCONT
domain logons = No
encrypt passwords = Yes

Вместо DOMCONT необходимо указать имя контроллера домена. Кроме того, на сервере Samba, который вы хотите присоединить к домену, необходимо выполнить следующую команду:

# net join member -U пользователь-администратор

Для присоединения сервера Samba к домену может также потребоваться настроить контроллер домена. Этот вопрос рассматривается в цели 312.4 (управление доменом).

Режим безопасности Share сильно устарел и существует только для обеспечения совместимости с очень старыми клиентами, не воспринимающими имена пользователей. Его также можно использовать для общих ресурсов, для которых нужно обеспечить минимальную защиту, например, общие принтеры. Поскольку операционная система Linux требует, чтобы для всех типов доступов обязательно использовалась учетная запись, Samba пытается сравнивать полученный пароль с некоторым набором учетных записей до тех пор, пока не будет найдено совпадение или пароль не будет отвергнут. Вот список этих учетных записей:

  • Гостевая учетная запись (задается параметром guest account), если guest only = Yes.
  • Имя пользователя, указанное клиентом (не все клиенты указывают имя пользователя, но некоторые делают это).
  • Имя пользователя, использовавшееся в последний раз при доступе с клиентского компьютера.
  • Имя общего ресурса, к которому пытается получить доступ клиент.
  • NetBIOS-имя клиента.
  • Любые имена пользователей, указанные с помощью параметра username.

Поскольку большинство клиентов на сегодняшний день понимают имена пользователей, редко возникает необходимость в режиме безопасности на уровне ресурса. Использование этого режима лишь приводит к путанице и снижает уровень безопасности: пароли сравниваются с множеством учетных записей, и если один пароль случайно попадет другому пользователю, это создаст значительный риск для вашего сервера.


Что дальше

Следующая статья этой серии содержит материалы цели 310.3 темы 310. В ней рассматривается формат файлов базы данных Trivial Database (TDB), которую Samba использует для хранения информации об учетных записях.

Ресурсы

Научиться

Получить продукты и технологии

  • Вы можете загрузить систему Samba и получить информацию о ней на Web-сайте Samba (EN).

Обсудить

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Linux
ArticleID=806558
ArticleTitle=Изучаем Linux, 302 (смешанные среды): Роли Samba
publish-date=03222012