Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

Серверы Linux. Часть VI. Знакомство с сервером Samba

Оригинал: Introduction to samba
Автор: Paul Cobbaut
Дата публикации: 24 мая 2015 г.
Перевод: A.Панин
Дата перевода: 13 июля 2015 г.

Глава 9. Вводная информация о сервере Samba

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

9.1. Проверка версии установленных программных компонентов

9.1.1. Дистрибутивы, использующие пакеты программного обеспечения формата RPM

Для того, чтобы получить информацию о версии установленных программных компонентов сервера Samba в дистрибутиве Red Hat, Fedora или CentOS следует использовать команду rpm -q samba.

[root@RHEL52 ~]# rpm -q samba
samba-3.0.28-1.el5_2.1

В примере выше показано, что в процессе установки дистрибутива RHEL5 были установлены программные компоненты сервера Samba версии 3.0. Последнее число в номере версии пакета программного обеспечения Samba предназначено для подсчета номера обновления или исправления пакета.

Ниже приведен вывод той же команды в более новой версии дистрибутива CentOS, в составе которого поставляется сервер Samba версии 3.5.

[root@centos6 ~]# rpm -q samba
samba-3.5.10-116.el6_2.i686

9.1.2. Дистрибутивы, использующие пакеты программного обеспечения формата DEB

В дистрибутиве Debian или Ubuntu следует использовать команду dpkg -l или aptitude show. Как в дистрибутиве Debian 7.0 (Wheezy), так и в дистрибутиве Ubuntu 12.04 (Precise) используется версия 3.6.3 сервера Samba.

root@debian7~# aptitude show samba | grep Version
Version: 2:3.6.3-1

В данный момент в дистрибутиве Ubuntu 12.04 используется версия 3.6.3 сервера Samba.

root@ubu1204:~# dpkg -l samba | tail -1
ii samba 2:3.6.3-2ubuntu2.1 SMB/CIFS file, print, and login server for Unix

9.2. Установка программных компонентов сервера Samba

9.2.1. Дистрибутивы, использующие пакеты программного обеспечения формата RPM

Сервер Samba устанавливается по умолчанию при установке дистрибутива Red Hat Enterprise Linux. В том случае, если сервер Samba по какой-либо причине не был установлен, вы можете использовать меню окружения рабочего стола (Приложения - Системные параметры - Установка/Удаление приложений) и выбрать пункт "Файловый сервер Windows" в разделе "Серверы". При отсутствии окружения рабочего стола следует использовать утилиты rpm и yum.

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

[paul@RHEL52 ~]$ rpm -i samba-3.0.28-1.el5_2.1.rpm

В том случае, если вы являетесь клиентом компании Red Hat и обладаете подпиской RHN (Red Hat Network), вы можете упростить задачу, воспользовавшись утилитой yum. Следующая команда на основе утилиты yum также корректно исполняется в бесплатных дистрибутивах Fedora и CentOS.

[root@centos6 ~]# yum install samba

9.2.2. Дистрибутивы, использующие пакеты программного обеспечения формата DEB

Пользователи дистрибутивов Ubuntu и Debian могут использовать утилиту aptitude (или приложение с графическим интерфейсом, такое, как менеджер пакетов программного обеспечения Synaptic).

root@debian7~# aptitude install samba
НОВЫЕ пакеты, которые будут установлены:
  samba samba-common{a} samba-common-bin{a} tdb-tools{a} 
обновлено 0, установлено 4 новых пакетов, для удаления отмечено 0 пакетов, и 1 пакетов не обновлено.
Необходимо скачать 15.1 MB архивов. После данной операции, объём занятого дискового пространства возрастёт на 42.9 MB.
Хотите продолжить [Д/н]?
...

9.3. Документация

9.3.1. Руководства от проекта Samba

Сервер Samba поставляется с отличной документацией в форматах HTML и PDF (которая также может быть загружена с ресурса samba.org или приобретена в печатном варианте).

В дистрибутиве Red Hat/Fedora/CentOS документация отделена от программных компонентов сервера Samba и находится в отдельном пакете программного обеспечения, поэтому в случае необходимости чтения документации в процессе настройки сервера вы можете просто установить соответствующий пакет программного обеспечения.

[root@centos6 ~]# yum install samba-doc
...
[root@centos6 ~]# ls -l /usr/share/doc/samba-doc-3.5.10/
итого 10916
drwxr-xr-x. 6 root root    4096 май  6 15:50 htmldocs
-rw-r--r--. 1 root root 4605496 июн 14  2011 Samba3-ByExample.pdf
-rw-r--r--. 1 root root  608260 июн 14  2011 Samba3-Developers-Guide.pdf
-rw-r--r--. 1 root root 5954602 июн 14  2011 Samba3-HOWTO.pdf

В дистрибутивах Debian и Ubuntu используется аналогичный подход, единственное отличие которого состоит в том, что файлы документации формата PDF находятся в отдельном пакете программного обеспечения с именем samba-doc-pdf.

root@ubu1204:~# aptitude install samba-doc-pdf
НОВЫЕ пакеты, которые будут установлены:
  samba-doc-pdf
...

9.3.2. Samba в примерах

Помимо документации проекта Samba существует отличная книга под названием "Samba в примерах" (англоязычное название "Samba By Example"; книга также доступна для покупки в печатном варианте и для бесплатной загрузки в форматах PDF и HTML).

9.4. Запуск и остановка демонов Samba

Вы можете инициировать запуск демонов Samba с помощью команды /etc/init.d/smb start в любом дистрибутиве Linux (в некоторых системах используется сценарий /etc/init.d/samba).

root@laika:~# /etc/init.d/samba stop
 * Stopping Samba daemons                                    [ OK ] 
root@laika:~# /etc/init.d/samba start
 * Starting Samba daemons                                    [ OK ] 
root@laika:~# /etc/init.d/samba restart
 * Stopping Samba daemons                                    [ OK ] 
 * Starting Samba daemons                                    [ OK ] 
root@laika:~# /etc/init.d/samba status
 * SMBD is running  

В дистрибутивах на основе дистрибутива Red Hat для запуска демонов Samba может использоваться удобная команда service smb start.

[root@RHEL4b ~]# /etc/init.d/smb start
Starting SMB services:                                     [  OK  ]
Starting NMB services:                                     [  OK  ]
[root@RHEL4b ~]# service smb restart
Shutting down SMB services:                                [  OK  ]
Shutting down NMB services:                                [  OK  ]
Starting SMB services:                                     [  OK  ]
Starting NMB services:                                     [  OK  ]
[root@RHEL4b ~]#

9.5. Демоны Samba

Комплект поставки Samba 3 включает три демона с именами nmbd, smbd и winbindd.

9.5.1. Демон nmbd

Демон nmbd ведет учет всех имен систем и реализует механизм обслуживания этих имен. Он занимается регистрацией и разрешением имен систем, а также задействуется в процессе обзора сети. В соответствии с документацией от проекта Samba, данный демон должен запускаться в первую очередь.

[root@RHEL52 ~]# ps -C nmbd
  PID TTY          TIME CMD
 5681 ?        00:00:00 nmbd

9.5.2. Демон smbd

Демон smbd управляет операциями передачи файлов и аутентификации.

[root@RHEL52 ~]# ps -C smbd
  PID TTY          TIME CMD
 5678 ?        00:00:00 smbd
 5683 ?        00:00:00 smbd

9.5.3. Демон winbindd

Демон winbind (winbindd) является единственным демоном, который после запуска занимается обслуживаем механизма членства в домене, применяемого в ОС Windows компании Microsoft.

Обратите внимание на то, что демон winbindd запускается с помощью сценария /etc/init.d/winbind (в имени демона используются две буквы d, в имени сценария - одна буква d).

[root@RHEL52 ~]# /etc/init.d/winbind start
Starting Winbind services:                                 [  OK  ]
[root@RHEL52 ~]# ps -C winbindd
  PID TTY          TIME CMD
 5752 ?        00:00:00 winbindd
 5754 ?        00:00:00 winbindd

В дистрибутивах Debian и Ubuntu демон winbindd устанавливается из отдельного пакета программного обеспечения с именем winbind.

9.6. Протокол SMB

9.6.1. Краткий экскурс в историю протокола

Разработка рассматриваемого протокола была начата в начале восьмидесятых годов сотрудниками компании IBM. К концу восьмидесятых годов инициатива по разработке протокола перешла к сотрудникам компании Microsoft. SMB является протоколом прикладного уровня, спроектированным для работы поверх стека протоколов NetBIOS/NetBEUI, но также может работать поверх стека протоколов TCP/IP.

В 1996 году компанией Microsoft была предпринята попытка документирования рассматриваемого протокола. В результате в качестве черновика стандарта были опубликованы спецификации протокола CIFS (Common Internet File System - Единая файловая система для Интернет), которые так и не приобрели статуса официального стандарта RFC.

В 2004 году чиновники Европейского союза приняли решение, обязывающее компанию Microsoft документировать протокол для того, чтобы сторонние разработчики имели возможность создания совместимых программных решений. 20 декабря 2007 года с компанией Microsoft было достигнуто соответствующее соглашение. На сегодняшний день команда разработчиков проекта Samba имеет доступ к документации, относящейся к SMB/CIFS, Windows for Workgroups и Active Directory.

9.6.2. Широковещательный протокол

Протокол SMB использует протокол обнаружения сетевых служб NetBIOS, который является широковещательным. Это означает, что имена систем в рамках сети, использующей протокол NetBIOS, должны быть уникальными (даже в том случае, если IP-адреса систем различны). Использование дубликатов имен систем в сети, построенной с использованием протокола SMB, может оказать крайне негативное влияние на процесс передачи данных.

9.6.3. Имена систем в рамках протокола NetBIOS

Имена систем в рамках протокола NetBIOS аналогичны именам узлов, но всегда записываются в верхнем регистре и имеют ограничение длины в 15 символов. Компьютеры, работающие под управлением ОС Microsoft Windows или использующие сервер Samba будут передавать информацию об именах систем в сеть.

9.6.4. Пропускная способность сети

При наличии в вашей сети множества компьютеров, осуществляющих широковещательную передачу в сеть информации о своих именах по протоколу SMB/CIFS, могут возникнуть проблемы с пропускной способностью сети. Решение описанной проблемы может заключаться в использовании сервера имен NetBIOS (NetBIOS Name Server, NBNS), такого, как Служба имен Windows Internet (Windows Internet Naming Service).

9.7. Практическое задание: вводная информация о сервере Samba

0. Убедитесь в том, что вы знаете свой номер студента, так как имя вашей системы должно в любом случае содержать этот номер!

1. Проверьте возможность входа в систему Linux/Unix, установленную на компьютере. После успешного входа в систему запишите имя и IP-адрес компьютера.

2. Сделайте то же самое со всеми другими системами (запущенными в виртуальных машинах), которые вам доступны.

3. Проверьте работоспособность сети с помощью утилиты ping и отредактируйте соответствующие файлы /etc/hosts для того, чтобы получить возможность использования имен компьютеров вместо их IP-адресов. Проверьте корректность указания имен компьютеров с помощью утилиты ping.

4. Убедитесь в том, что программные компоненты сервера Samba установлены в системе, после чего запишите версию сервера Samba.

5. Откройте файл формата PDF официального руководства от проекта Samba, установленный на вашем компьютере. Сколько страниц формата A4 содержит данный файл? После этого рассмотрите регулярно обновляющийся файл формата PDF с тем же именем с ресурса samba.org.

6. Остановите сервер Samba.


Предыдущий раздел: Оглавление Следующий раздел:
8.4. Практическое задание: фильтрация сетевых пакетов   Глава 10. Начало работы с сервером Samba