On-Line Библиотека www.XServer.ru - учебники, книги, статьи, документация, нормативная литература.
       Главная         В избранное         Контакты        Карта сайта   
    Навигация XServer.ru








 

Создание общих каталогов с помощью Samba

Содружество сервера Linux и клиентов Windows 2000

Внимание сетевых администраторов должно быть сосредоточено в первую очередь на создании надежного, безопасного и приемлемого по цене хранилища файлов. Для этого можно использовать разработанный Microsoft NT Server, который, благодаря усовершенствованной системе безопасности домена, предоставляет администратору превосходный инструмент управления доступом к файлу. Однако "путь Windows" - не единственно возможный путь.

Samba - это тщательно проработанный пакет программного обеспечения для организации совместного доступа к файлам и принтерам, а также поддержки имен NetBIOS для сетевых клиентов, использующих протокол Server Message Block (SMB) или Common Internet File System (CIFS). Samba - открытое программное средство, может работать на нескольких программных платформах, включая MVS, UNIX, Linux и VMS. Чтобы начать знакомство с Samba, следует установить и настроить этот пакет на сервере, который будет выступать в роли автономного файл-сервера для клиентов Windows 2000, NT и Windows 9x.

Почему может возникнуть необходимость использовать Samba, а не Windows? Во-первых, Samba работает под управлением Linux, а это значит, что открытое программное средство запускается на открытой ОС. Нулевые затраты на начальном этапе выглядят весьма привлекательно, особенно если учесть, что со временем в растущей сети может потребоваться добавить новых пользователей, что также хотелось бы осуществлять бесплатно. Другое преимущество совместного использования Samba и Linux: надежность.

Если клиенты используют протокол TCP/IP для доступа к файл-серверу NT, то и в этом случае тандем Samba-Linux удовлетворит возникающие потребности. Samba поддерживает доменную аутентификацию и авторизацию; но вместе с тем, настройка Samba для работы в контексте безопасности сети NT повышает уровень сложности при настройке самого продукта. Samba одинаково хорошо зарекомендовала себя и в традиционных рабочих группах на базе протоколов SMB/CIFS. Если не требуется высокого уровня безопасности доменов NT, можно установить обычные файловые службы. Если же обеспечение безопасности - первоочередная задача, то данную статью можно рассматривать как начальное руководство по настройке Samba в качестве более сложного файл-сервера.

ЗНАКОМСТВО С ФАЙЛОВОЙ СИСТЕМОЙ LINUX

Перед тем как начать устанавливать Samba в среде Linux, нужно понять, как работает файловая система Linux. Файловая система Linux похожа на NTFS: и там, и там есть понятие корневого каталога, подкаталогов и файлов, представляющих собой различные единицы данных. Однако файловая система Linux не использует понятие диск (drive); файловая система Linux монтируется в каталоги внутри корневого каталога. Наборы разрешений и права собственности для файлов и каталогов определяют, какими привилегиями обладает пользователь: чтение (read), запись (write) или исполнение (execute).

Как и файловая система Windows, для разных целей Linux использует различные каталоги. Есть каталоги, которые называются /etc, в них содержатся наиболее важные для Linux конфигурационные файлы; есть каталоги /home, в которых находятся домашние каталоги пользователей. Пользователь с именем root также имеет свой домашний каталог - /root. Наиболее популярные дистрибутивы Linux используют файлы сценариев (script), которые находятся в каталоге /etc/rc.d/init.d, для выполнения штатного запуска и выключения сервера.

УСТАНОВКА SAMBA

Я работаю с Red Hat Linux, которая уже имеет предустановленную версию Samba. Если же используется другой дистрибутив Linux (Caldera Systems, Turbolinux, SuSE Linux), совместимый с Red Hat Linux, то придется начинать "с чистого листа" - зарегистрироваться как пользователь root (административная учетная запись Linux) и деинсталлировать Samba с помощью команды rpm:


# rpm -e -nodeps samba
# rpm -e -nodeps samba-common
# rpm -e -nodeps samba-client

Последнюю версию Samba в виде файла RedHat Package Manager (RPM) можно загрузить по адресу http://us2.samba.org/samba/ftp/Binary_Packages. RPM-файлы - это двоичные дистрибутивные файлы, облегчающие процесс установки и удаления программного продукта. В них содержатся все файлы, необходимые для запуска программы. Для обслуживания RPM-файлов и предназначена команда rpm. class=pre>
# rpm -i samba-<x.x.x.>rpm

В число устанавливаемых файлов входят:

/etc/smb.conf - конфигурационный файл;
/etc/rc.d/init.d/smb - файл запуска Samba;

файлы из /usr/bin и /usr/sbin для всевозможных сопутствующих программ.

Метод установки Samba может несколько отличаться в зависимости от дистрибутива Linux. Обратите внимание на версию Samba, поддерживаемую и обслуживаемую поставщиком Linux, или установите Samba с использованием исходного кода.

НАСТРОЙКА SAMBA

Файл /etc/smb.conf позволяет полностью настроить Samba для работы - включая настройки безопасности, настройки рабочей группы, описания совместно используемых ресурсов - все это собрано в одном месте. Если в процессе установки Samba создается файл примера smb.conf, его нужно переместить или переименовать в /etc/smb.conf.bak. Четыре основные раздела конфигурационного файла - это global, printers, homes, а также user-defined, и в каждом настраивается своя индивидуальная служба.

Секция global описывает глобальные характеристики Samba, такие как собственное имя NetBIOS и ассоциированная рабочая группа. Администраторы в основном работают с секциями user-defined, имя которым задает сам администратор, и в которых описываются конкретные каталоги и принтеры, предоставленные для совместного доступа. Секции printers и homes описывают, соответственно, общие принтеры и домашние каталоги, но в этих секциях не так много возможностей для дополнительной настройки.

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


 [<section name>]
<parameter> = <value>

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

Начните процесс настройки Samba с указания имени сервера (до 15 символов) и его рабочей группы в секции global. Эти настройки позволят запустить сервер Samba. Например:


 [global]
netbios name = <sambasvrname>
workgroup = <workgroupname>

Установка NetBIOS-имени не является необходимым условием работы Samba, поскольку по умолчанию в качестве имени Samba получает имя хоста. Однако обычно назначение NetBIOS-имени весьма желательно, так как соглашение об именах NetBIOS предполагает, что в пределах одной подсети имена хостов должны быть уникальны, а это не всегда справедливо для имен хостов Linux-серверов. В качестве теста можно попробовать указать имя неиспользуемой рабочей группы. Однако после правильной настройки Samba может потребоваться, например, изменить значение параметра workgroup на имя существующей рабочей группы.

Теперь нужно определить, как Samba будет выполнять аутентификацию пользователей. Samba поддерживает два типа аутентификации: на уровне ресурсов (share-level) и на уровне пользователей (user-level). Аутентификация уровня share-level требует, чтобы каждый пользователь имел или учетную запись в формате SMB на сервере Samba или для данного совместно используемого ресурса были предоставлены права доступа пользователю anonymous. Для создания учетных записей используется программа smbpasswd. Эти требования являются единственными ограничениями на разделяемые ресурсы при аутентификации на уровне ресурсов; если пользователи обладают учетными записями SMB, то Samba , при работе в режиме share-level, не может наложить ограничения для пользователей при обращении к общим ресурсам. Доступ к разделяемым ресурсам в системе Windows 9x организован иначе: здесь можно дополнительно задать пароль на доступ к общим ресурсам.

Более сильная в смысле безопасности система доступа к общим ресурсам реализована при использовании аутентификации типа user-level. Администратор может задать список пользователей, которым предоставляется доступ к общим ресурсам. В режиме share-level доступ пользователей контролируется на уровне сервера, в то время как в режиме user-level доступ контролируется на уровне самого ресурса. Samba подразделяет доступ к ресурсам типа user-level на аутентификацию типа user и domain. При использовании уровня user сервер Samba при авторизации пользователей анализирует свою собственную базу данных учетных записей; на уровне domain пользователи аутентифицируются в базе данных пользователей домена (на сервере PDC). Естественно, что в доменной сети NT-администраторы предпочитают использовать тип аутентификации на уровне пользователей user-level. Однако конфигурировать доступ этого типа на сервере Samba труднее, чем организовать режим доступа на уровне ресурсов share-level. Основная задача этой статьи - показать, как с помощью Samba можно создать совместно используемый файловый ресурс, поэтому вполне достаточно ограничиться организацией доступа типа share-level:


security = share

Если в сети используется служба WINS, нужно также указать IP-адрес сервера WINS:


wins server = <10.x.x.x>

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


# /etc/rc.d/init.d/smb start

Получив сообщение от файла-сценария init.d о том, что Samba успешно стартовала, подождите немного, пока сервер Samba зарегистрируется на сервере WINS, после чего воспользуйтесь командой Net View на станции Windows, чтобы "увидеть" Samba-сервер.


C:> net view \\<sambasvrname>

Результат работы этой команды:


Shared resources at \\<sambasvrname>
There are no entries in the list.

По мере добавления новых совместных файловых ресурсов команда Net View будет информировать о новых общих ресурсах сервера Samba.

Если Net View выдает ошибку, то, вероятнее всего, возникли проблемы с "видимостью" сервера Samba. Попробуйте "достучаться" до сервера с помощью Net View и непосредственно по адресу IP. Если по IP сервер "откликается", а команда с использованием NetBIOS-имени по-прежнему не работает, убедитесь, что параметры wins и workgroup заданы правильно. Если же и команда с использованием IP также выдает ошибку, нужно проверить, что Samba работает и что сервер Linux настроен правильно.

СОЗДАНИЕ ОБЩЕГО ФАЙЛОВОГО РЕСУРСА

Убедившись в том, что Samba работает, создадим на Linux-сервере каталог, который Samba будет предоставлять для совместного доступа. Независимо от платформы, Windows или Linux, процедура одна и та же. Создайте каталог и убедитесь, что соответствующий пользователь или группа являются его собственником.

Зарегистрируйтесь как root и введите команду mkdir для создания нового каталога в файловой системе Linux (я назвал этот каталог files):


# mkdir /home/samba/files

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

Чтобы установить права собственности для каталога Linux, используется команда chown. Выдайте эту команду с указанием учетной записи nobody (создается автоматически при инсталляции Linux). Администраторы Linux обычно используют запись nobody для предоставления доступа пользователю anonymous:


# chown nobody /home/samba/files

Затем сконфигурируйте дисковый ресурс для совместного использования в файле настройки Samba в секции user-defined. Сначала нужно создать секцию, указав в качестве ее имени имя разделяемого ресурса, заключить его в квадратные скобки и расположить после секции глобальных параметров. Имя секции может быть любым, за исключением зарезервированных имен - global, printers, homes, но для простоты назовите ее Files.


[Files]

Начните заполнять секцию с комментария, что позволит задать для совместного ресурса пояснение - пользователям будет удобнее работать. Например:


comment = Network Files

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


path = /home/samba/files

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


writeable = yes

Установка по умолчанию задействуется, если параметр writeable не указан, или ему присвоено значение no.

И, наконец, присвойте параметру значение yes, чтобы разрешить пользователю anonymous доступ к совместному каталогу. Если пользователю anonymous доступ запрещен, то любой пользователь, который собирается обращаться к данному сетевому ресурсу, обязан иметь учетную запись в локальной базе Samba.

Разрешая пользователю anonymous доступ к ресурсу, нужно дополнительно указать учетную запись Linux, в контексте которой пользователи станут обращаться к файлам совместного каталога. Эту учетную запись можно также указать в глобальной секции, и такая настройка в дальнейшем будет использоваться по умолчанию, но при этом останется возможность переписывать ее каждый раз, когда задается совместный ресурс. Этот шаг обязательно надо выполнить, так как любой доступ к файловой системе должен пройти аутентификацию и в Samba, и в Linux. Используйте гостевую запись guest для указания учетной записи nobody (учетной записи с первоначальным правом владения каталогом):


guest ok = yes
guest account = nobody

Начиная с этого момента, мы получаем работоспособный каталог для общего доступа. А в конфигурационном файле /etc/smb.conf будет содержаться следующая информация:


[global]
netbios name = <sambasvrname>
workgroup = <sambagroup>
security = share
wins server = <10.x.x.x>
[Files]
path = /home/samba/files
comment = Network Files
writeable = yes
guest ok = yes
guest user = nobody

Samba периодически сканирует файл /etc/smb.conf на предмет поиска изменений и соответствующим образом обновляет конфигурацию, поэтому нет нужды перезапускать ее вручную. Однако после того как были внесены изменения в глобальную секцию и секцию Files, только перезапуск Samba немедленно активизирует внесенные изменения. Для перезапуска Samba используйте следующие команды:


# /etc/rc.d/init.d/smb stop
# /etc/rc.d/init.d/smb start

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

Убедитесь, что каталог files доступен по сети. Выполните простой поиск \\:


C:> net view \\<sambasvrname>

Результат выполнения этой команды обычно примерно следующий:


Shared resources at \\<sambasvrname>
Samba 2.0.7
Share name Type   Used as  Comment
---------------------
Files       Disk            Network Files
The command completed successfully.

Если команда выполнена успешно, новый файловый сетевой ресурс доступен для поиска в сети. С этой целью можно также воспользоваться значком Network Neighborhood.

Кроме того, следует установить, можно ли подсоединиться к ресурсу и есть ли право записи. Используйте команду Net Use, чтобы проверить наличие доступа, а затем выполните операцию записи. В приведенном ниже примере я тестирую возможность создания каталога в новом сетевом ресурсе:


C:> net use Z: \\<sambasvrname\files

Результат выполнения команды:


The command completed successfully.

Дальше пытаюсь создать новый каталог:


C:> Z:
C:> mkdir test
C:> dir

Результат:


Volume in drive Z is Files
Volume Serial Number is 2EE5-053C


Directory of Z:
11/15/00 11:02a <DIR> .
11/15/00 11:02a <DIR> ..
11/15/00 11:02a <DIR> test

Если ресурс доступен, и в него можно записывать данные, то примите поздравления - в сети появился новый файловый сервер, хотя и без возможности аутентификации пользователей и авторизации доступа к каталогам. Чтобы исключить названные недостатки, нужно познакомиться с режимом аутентификации на уровне пользователей user-level. Для начала прекрасным источником информации по этому вопросу может стать пример конфигурационного файла по настройке режима user-level , включенного в состав большинства дистрибутивов Samba, а также Web-сайт Samba или же группы новостей Samba newsgroups и другие открытые публикации.

УСТРАНЕНИЕ НЕИСПРАВНОСТЕЙ SAMBA

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

Кроме того, настройки можно проверить с помощью программы testparm, включенной в состав Samba. Эта программа контролирует правильность синтаксиса. Дополнительную информацию для выяснения причины ошибки можно найти в двух журнальных файлах - log.smb и log.nmb (каталог /var/log/samba). В файле log.smb регистрируется активность сервера при обращении к общим файлам и принтерам, а log.nmb регистрирует активность, связанную с именами серверов (например, регистрацию Samba на сервере WINS).

ПРЕКРАСНАЯ ВОЗМОЖНОСТЬ

Насколько вы выйдете за рамки простой организации файлового сервера, зависит от того, как глубоко вы решили "погрузиться" в тандем Samba-Linux. Можно интегрировать Samba в домен NT для обслуживания пользователей системой безопасности NT. Samba может обеспечить выполнение функций основного контроллера домена (PDC). Кроме того, Samba можно задействовать для подключения Windows-клиентов к принт-серверам на Linux- или UNIX-системах. Samba позволяет управлять выполнением задач, связанных с печатью (то есть снимать задания с печати, проводить мониторинг их исполнения, менять принтеры). Можно даже настроить Samba на использование внешних программ для осуществления мониторинга принтеров или факсов.

Возможности программного пакета Samba поразительны. По мере знакомства с этим программным продуктом все больше раскрывается его мощь и гибкость. И нет разницы - используется ли Samba в ограниченном режиме или решено официально перевести файловые и принтерные службы с NT на Linux. В любом случае Samba - неплохой выбор для сети.



Литература по Windows 2000