Добавить в избранное | Сделать стартовой страницей

Большая Linux библиотека для пользователей OS Linux и ПО для нее







Переносим file- и print- сервер с NT на Linux.

Автор : David Smith
Перевод : Valery V. Kachurov.

Вы, скорее всего, уже встречались с различными дискуссиями насчет использования Linux в корпоративной среде и на производстве. Некоторые просто не доверяют свой бизнес этой OS, а я, например, уже давно использую Linux в производственной среде и знаю многих, кто делает то же самое.

Сейчас в производственных системах используется много web-, mail-, и database- серверов, и их количество постоянно увеличивается. А истории успешного использования Linux охватывают огромное количество случаев - от использования Linux в NASA до создания анимации и спецеффектов. Так готов ли Linux к тому, чтобы заменить Windows NT сервера в корпоративных сетях? Конечно же, да! И я расскажу вам, как построить сервер на Linux, который будет стабильнее, быстрее, легче в поддержке, и намного дешевле.

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

Происхождение SMB.

Windows использует протокол Server Message Block (SMB) для осуществления совместного доступа к файлам и принтерам. Этот протокол определяет, как клиенты обращаются к серверу для запроса принтеров и файлов, обеспечивает безопасность, и т.д. SMB запросы и ответы базированы на локальных broadcast-запросах к именам NetBIOS. Отсюда появляются проблемы со средами, где сети разделены роутерами, потому что broadcasts не проходят через роутеры. Поэтому необходимо переводить имена NetBIOS в IP-адреса, и этим занимается Windows Internet Name Service (WINS).

Так же SMB используется для сервисов директорий (directory services). Для большинства пользователей сервисы директорий - это то, что они видят в папке "Сетевое окружение". Вообще-то сервис директорий - более сложное понятие, но для начала достаточно и этого. Нужно постоянно следить, какие компьютеры находятся в сети, и какие сервисы они обеспечивают, и этим занимается "Browse master" (это звание присваивается одному из компьютеров в сети). Когда компьютер, подключенный к сети, загружается, Windows отсылает имя этого компьютера и информацию о своих сервисах всем, кто может принять эту информацию. Выбранный browse master хранит базу данных по всем включенным компьютерам и отвечает на запросы других компьютеров. Этот browse master может так же связываться с другими browse masters из других сетей, и они могут обмениваться информацией.

Сервисы Windows NT.

Рассмотрим пример: Windows NT сервер сконфигурирован, как file и print сервер. Юзеры подключаются к серверу, используя их клиенты для сетей Microsoft. Когда юзер подключен и опознан, запускается сценарий подключения для него, определяющий его домашний каталог, и его права доступа. Так же сервер хранит информацию о других компьютерах, которую этот юзер может увидеть в "Сетевом окружении".

Взгляд со стороны Linux.

Linux может использовать протокол SMB для взаимодействия с Windows- и Dos-клиентами, используя пакет под названием Samba. Samba был создан Andrew Tridgell, и сейчас его разрабатывает Samba team. Сейчас Samba используется примерно на 40 различных платформах. Главные демоны Samba - это smbd и nmbd, которые произносятся как "SMB-Dee" и "NMB-Dee". Smbd предоставляет file и print сервисы + сервис аутентификации для Windows и Dos клиентов, а nnmb предоставляет распознавание имен NetBIOS и browsing сервисы (rfc1001/1002). Используя эти программы, Linux может легко предоставлять такие же услуги, как NT.

Построение сервера с помощью Samba.

Скачайте самую последнюю версию Samba c официального сайта (она называется samba-latest.tar.gz), и распакуйте ее во временную директорию:

tar -xvzf samba-latest.tar.gz

Зайдите в директорию и ознакомьтесь с файлами README. После этого можно начинать инсталляцию:

cd source
/configure
make
make install

Когда команда make install будет завершена, smbd и nmbd должны быть готовы для конфигурации.

Читая документацию к Samba, вы найдете много разных способов конфигурации smbd и nmbd. Пакет Samba имеет обширные и продвинутые возможности, которые позволяют Линуксу интегрироваться и дополнять NT сервера и сервисы, но сейчас мы хотим сконфигурировать наш Linux-сервер для замены сервера NT из рассмотренного раньше примера. Мы собираемся отконфигурировать Samba для того, чтобы осуществлять распознавание пользователей, запуск сценария подключения, предоставлять совместный доступ к файлам и принтерам и network-browsing сервисы.

Начнем с редактирования файла инициализации smbd - smb.conf. Его расположение по умолчанию - /usr/local/samba/lib/smb.conf, но в некоторых системах он расположен в /etc/smb.conf. Я должен предупредить, что возможностей конфигурации очень много, и здесь я рассматриваю только основы.

Глобальные параметры:

security = user
Настройка безопасности в Samba 2.x по умолчанию. При этой опции Samba требует у пользователей аутентификацию для доступа к серверу. Чтобы понять, как Samba работает с NT доменами и серверами, посмотрите опцию "Security = Domain" в документации Samba.

iworkgroup = MyGroup
Контролирует, к какой рабочей группе принадлежит ваш сервер.

encrypt passwords = Yes
Использование зашифрованных паролей. Windows NT 4SP3+ и Windows 98 работают с зашифрованными паролями по умолчанию.

min passwd length = 6
Устанавливает минимальную длину пароля, который примет smbd.

smb passwd file = /etc/smbpasswd
Определяет путь к файлу с паролями. По умолчанию, путь к файлу smbpasswd встроен в Samba, но я всегда добавляю эту строку для уменьшения недоразумений.

logon script = STARTUP.BAT
Определяет Bat файл (.bat) или файл команд NT (.cmd), который будет скачан и запущен на машине подключенного пользователя. Окончания строк в этом файле должны быть стандартными для Dos и Windows - cr/lf (carriage return/line feed).

Если установлена опция "domain logons = Yes", Samba будет обслуживать доменные подключения (domain logons) Windows 95/98 для рабочей группы, в которой он находится. Для более подробной информации читайте DOMAINS.txt из документации Samba.

domain master = Yes
Включает функцию "WAN-wide (wide area network) browse list collation". (WAN расшифровывается, как wide area network - сеть, занимающая обширное пространство). Установка этой опции заставляет nmbd просить себе специальное имя NetBIOS (специфичное для домена), которое идентифицирует компьютер как master browser для данного домена и рабочей группы. Локальные master browser'ы из той же рабочей группы, но из других изолированных подсетей будут отдавать nmbd свои локальные browse-листы, и просить у smbd полную копию browse-листа для всей WAN. После этого клиенты изолированной подсети будут получать у своего локального master browser'а информацию по всему домену, а не только по их подсети.

preferred master = Yes
Будет ли nmbd предпочитаемым master browser'ом для этой рабочей группы.

Установка расшаренных ресурсов.

Установка глобальных параметров закончена, теперь мы можем переместиться к созданию сетевых ресурсов общего пользования. Установив секцию [homes], наш сервер может создать привязки домашних директорий на лету:

[homes]
comment = Home Directories
read only = No
create mask = 0750
browseable = No

Теперь создадим несколько расшаренных ресурсов, к которым будут иметь доступ пользователи. При этом нужно указать путь ресурса, пользователей, которые имеют к нему доступ, и их права (имеют ли они доступ только для чтения или полный доступ). По умолчанию ресурс полностью открыт для всех, так что - помните об этом, создавая ресурсы. Для ресурса "apps" я создал unix-группу all_users, содержащую всех моих локальных пользователей, и теперь на нее ссылаюсь.

[apps]
comment = Apps Directory
path = /shares/apps
valid users = @all_users
read only = No
[project1]
comment = Project 1 Directory
path = /shares/proj1
valid users = dcsmith kholmes joe katie redpup
read only = No

И, наконец, я указал путь для сценариев подключения. В этом примере мой сценарий подключения находится в /etc/netlogon/STARTUP.BAT.

[netlogon]
path = /etc/netlogon

Демоны Samba.

Следующий шаг - запуск демонов samba. Добавьте это в процедуру запуска вашей системы:

/usr/local/samba/bin/smbd -D -s /usr/local/samba/lib/smb.conf
/usr/local/samba/bin/nmbd -D

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

Если все прошло нормально, то smbd и nmbd должны успешно начать работу. А если что-то не так - нужно произвести поиск и решение проблем. Для начала посмотрите в лог /var/adm/logs и почитайте FAQ с сайта Samba.

Так же в директории bin вместе с samba есть утилиты для решения проблем: testparm проверяет ошибки в файле конфигурации smb.conf, а smbstatus и nmblookup помогают исправить проблемы с распознаванием имен NetBIOS.

Установка файла с паролями Samba.

Теперь можно добавить пользователей и их пароли в файл smbpassword. Пользователи должны иметь Unix-account и пароль к нему. Есть много опций хранения паролей - например, удаленная синхронизация паролей, или NT domain and pass-through authentication, которые помогают при админинстрировании больших сетей. Но в нашем случае все пользователи будут прописаны в нашей локальной Linux-системе. Эта команда создаст SMB-account и запросит для него пароль:

/usr/local/samba/bin/smbpasswd -a testuser

Теперь вы сможете заходить, как testuser, быть аутентифицированным с вашего Windows-компьютера и иметь доступ к расшаренным ресурсам. Great fun, eh? :).

Существуют различные вспомогательные утилиты и инструменты, придающие Samba дополнительные возможности. Например, одна из самых используемых утилит - это SWAT, инструмент для админинстрации Samba с web-интерфейсом, позволяющий совершать удаленный мониторинг и конфигурацию. Все эго и многое другое можно скачать на официальном сайте проекта Samba.

Заключение.

Я надеюсь, что я обеспечил вас достаточным количеством информации для того, чтобы построить file и print сервер на базе Linux. Дайте шанс Linux - и вы увидите, что он более стабилен, а средства удаленного управления там вообще находятся на высоте. Команда Samba постоянно совершенствует свой продукт, и добавляет больше новых возможностей и утилит. Так как Linux-решения все чаще становятся реальностью, я верю, что вы найдете применение этому эффективному и бесплатному инструменту, которому будете довольны и вы, и ваш бюджет.