Настройка UNIX и Linux для совместной работы

 

Настройка NIS-сервера

 

В системах Solaris, AIX® и HP-UX поддержка NIS включена по умолчанию. Дистрибутивы Linux® часто содержат NIS в качестве стандартного компонента, и библиотека glibc также включает в себя поддержку этой службы. Тем не менее, вы можете столкнуться с необходимостью установки дополнительного набора инструментов, необходимых для настройки и управления службой NIS. Для NIS-сервера под управлением Linux вам необходимо установить следующие пакеты:

·        ypserver

·        makedbm

 

После установки этих пакетов вам потребуется отредактировать поставляемый make-файл (как правило, /var/yp/Makefile). Этот файл содержит параметры конфигурации, которые будут использоваться для построения первоначальной базы данных YP. Вам будет необходимо отредактировать определение для правила all, перечислив все типы файлов, которые должны поддерживаться службой NIS. По умолчанию это правило включает поддержку всех файлов, как показано в листинге 1.

 

Листинг 1. Определение для правила all                

all: passwd group hosts ipnodes ethers networks rpc services protocols \\

     netgroup bootparams aliases publickey netid netmasks c2secure \\

     timezone auto.master auto.home ageing \\

     auth.attr exec.attr prof.attr user.attr audit.user

 

Вы можете удалить те файлы, с которыми вам не нужно работать – например, все файлы, за исключением passwd, group и hosts.

Теперь вы готовы к заполнению базы данных. Сначала задайте имя NIS-домена:

$ domainname mcslp.nis

На сервере под управлением Linux отредактируйте файлы /var/yp/securenets и /etc/ypserv.conf в соответствии с настройками ваших локальных сетей. Эти файлы определяют, какие компьютеры могут обмениваться информацией внутри вашего NIS-домена и получать доступ к ней.

Теперь выполните инициализацию базы данных:

$ ypinit -m

 

Команда ypinit выполняет за вас оставшуюся часть работы, используя make-файл для преобразования исходных файлов (например, /etc/passwd) в формат NIS.

При любом изменении содержимого исходных файлов перейдите в каталог /var/yp и повторно запустите команду make, чтобы выполнить перестроение баз данных

$ cd /var/yp

$ make

 

Если вы хотите разрешить отдельным пользователям удаленно обновлять свои пароли входа в систему, убедитесь, что в системе запущен демон rpc.yppasswdd; он принимает клиентские запросы на прямое обновление базы данных NIS, при этом все изменения передаются через основной и дополнительные серверы NIS, и корректно принимаются всеми клиентскими компьютерами.

 

Настройка NIS-клиента

 

Для настройки NIS-клиента вам необходимо задать имя NIS-домена, запустить локальные службы NIS, а затем выполнить инициализацию этих служб, чтобы они могли получать информацию с основного или вторичного сервера NIS. Для этих целей служит команда ypbind, которая присоединяет клиентские компьютеры к NIS-серверу.

 

В операционной системе UNIX NIS-сервер определяется автоматически при вызове команды ypbind. В большинстве версий Linux вы должны задать список доступных NIS-серверов в файле /etc/yp.conf. Например, вы можете сделать это следующим образом: ypserver 192.168.0.22

 

Основной процесс подключения клиента к NIS-серверу выглядит следующим образом:

1. Указание NIS-домена: $ domainname mcslp.nis.

2. Запуск демона portmap (сервера преобразования программных номеров RPC), если он еще не запущен: $/sbin/portmap.

3. Создание каталога /var/yp, который будет использоваться для хранения служебной информации NIS.

4. Запуск ypbind: $ /usr/sbin/ypbind.

 

Теперь проверьте соединение с NIS-сервером, запустив команду ypcat для выполнения прямого запроса к базе данных. Например, чтобы получить отсортированный по имени снимок файла passwd, выполните следующую команду:

$ ypcat passwd.byname

 

Эта команда создаст дамп всей базы данных passwd. Теперь, прежде чем клиентские системы смогут использовать информацию базы данных NIS, вы должны перестроить источники данных, используемые для поиска.

 

Файл nsswitch.conf

 

Как в Linux, так и в UNIX файл nsswitch.conf обычно используется для указания источников информации различного типа. Например, можно настроить систему на поиск данных о компьютерах с помощью DNS-запросов, в локальных файлах или с использованием службы NIS.

Помимо самих источников данных, в файле nsswitch.conf настраивается также и очередность их использования, которая может повлиять на выбор правильного источника, а также на способность восстановления вашей сети в случае возникновения каких-либо сбоев.

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

 

Листинг 2. Исходные строки файла nsswitch.conf               

passwd:      <!–?xml:namespace prefix = st1 ns = urn:schemas-microsoft-com:office:smarttags /?–>nis files

shadow:      nis files

group:       nis files

hosts:       nis dns files

networks:    nis dns files

Из листинга 2 видно, что поиск информации для базы passwd производится в базе данных NIS (если эта служба доступна). При входе пользователя в систему в первую очередь будет происходить обращение к таблицам NIS. Если служба NIS не сможет найти в своих таблицах указанное имя пользователя и возвратит ошибку, система перейдет к поиску информации в следующем указанном источнике – в нашем случае, в локальных файлах.

 

Следующие советы помогут вам правильно настроить и использовать файл nsswitch.conf:

– Поиск в локальных файлах всегда должен производиться в самую последнюю очередь; особенно это касается таких баз, как passwd, shadow и hosts. Если вы не настроите такую очередность, компьютер может оказаться неработоспособным, поскольку в случае отказа службы NIS даже пользователь root не сможет войти в систему.

– Убедитесь, что в перечисленных источниках содержатся все важные учетные записи и данные о компьютерах, а также прочая ключевая информация.

– Если компьютер подключен к Интернету, то более эффективным способом разрешения Интернет-имен будет являться использование службы DNS, а не функции перенаправления NIS.

 

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

 

Общий доступ к файлам через NFS

 

Сетевая файловая система (NFS) также была разработана компанией Sun Microsystems в качестве средства обмена файлами между различными компьютерами. Когда общий доступ к каталогу предоставлен с помощью NFS, вы можете монтировать этот каталог на другой машине так, как если бы он находился на ее локальном диске. Вся информация о безопасности, правах доступа к файлам и так далее реплицируется между NFS-клиентом и NFS-сервером. Поскольку для доступа к общим файлам NFS используются идентификаторы пользователей и групп, а также прочие сведения о пользователях, то удобнее всего передавать эту информацию через службу NIS.

В общем случае, прежде чем запускать NFS-сервер, вам нужно настроить общие каталоги. В ОС Linux для этого используется файл /etc/exports, в котором определяются общие каталоги, а также различные опции для этих каталогов (такие как права доступа). Например, чтобы предоставить общий доступ к каталогу /export/data только компьютерам вашей сети, вы можете использовать следующую строку:

/export/data *.mcslp.pri(rw,sync) *(sync)

 

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

Для предоставления общего доступа в системе Solaris используется файл /etc/dfs/dfstab, в котором вы указываете команды для каждого каталога. Например, вы можете предоставить общий доступ к каталогу /export/data с правами на чтение или запись для всех компьютеров с помощью следующей строки:

share -F nfs -o rw /export/data

 

Для предоставления общего доступа к каталогам в системе AIX используйте инструмент smit, а в системе HP-UX – инструмент SAM.

Во всех этих случаях после подготовки файлов и настройки необходимых параметров вы должны запустить службу NFS-сервера.

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

$ mount bear:/export/data /mnt/data

 

Вы можете автоматически монтировать каталоги NFS во время загрузки компьютера с помощью файлов /etc/fstab или /etc/vfstab, использующими тот же самый формат строки. Однако для упрощения процесса монтирования и обеспечения наилучшей производительности вашего сервера лучше всего использовать систему автоматического монтирования.

 

Использование системы автоматического монтирования

 

В качестве дополнительной возможности NFS вы можете задействовать систему автоматического монтирования. Этот компонент автоматически монтирует каталоги при обращении к ним. Например, если у вас настроено автоматическое монтирование NFS-каталога /mnt/data, он автоматически будет смонтирован и станет доступным в тот момент, когда вы наберете следующую команду:

$ cd /mnt/data

 

Когда каталог перестает использоваться, происходит его автоматическое размонтирование. Автомонтировщик становится особенно полезным при работе с домашними каталогами пользователей: пользователь может войти в систему на любой машине и получить доступ к своему домашнему каталогу, который будет автоматически смонтирован с удаленного NFS-сервера.

Использование автомонтировщика не только упрощает монтирование удаленных каталогов с NFS-сервера, но также помогает снизить нагрузку на сервер, избавляя от ненужных взаимодействий с клиентскими компьютерами, не использующими ресурсы NFS.

Функция автоматического монтирования включена в различные версии ОС UNIX. Если вы работаете в ОС Linux, то прежде чем настраивать и запускать автомонтировщик, вы должны сконфигурировать поддержку этой функции в ядре и перезагрузить компьютер. Для настройки автомонтировщика вы должны сначала отредактировать файл etc/auto.master (или /etc/autofs/auto.master) – так называемую главную карту автомонтировщика. В этом файле определены наборы сопоставлений верхнего уровня и указывается, какие карты и в каких файлах должны использоваться для каталогов верхнего уровня. Например, следующие строки сопоставляют каталоги /home и /mnt двум другим картам:

/home /etc/autofs/auto.home

/mnt  /etc/autofs/auto.mnt

 

Затем в рамках карты каталога /mnt вы настраиваете его подкаталоги и соответствующие им NFS-ресурсы. В листинге 3 приведен фрагмент карты каталога mnt.

 

Листинг 3. Фрагмент карты каталога mnt               

applications     atuin:/Volumes/Shared1/Applications

archiveprepare   atuin:/Volumes/Shared1/ArchivePrepare

backupprepare    atuin:/Volumes/Shared1/BackupPrepare

build            atuin:/Volumes/Shared1/Build

correspondence   atuin:/Volumes/Shared1/Correspondence

devprojects      atuin:/Volumes/Shared1/DevProjects

docarchive       atuin:/Volumes/Shared1/DocArchive

incoming         atuin:/Volumes/Shared1/Incoming

information      atuin:/Volumes/Shared1/Information

 

Так как приведенный выше фрагмент является картой каталога /mnt, то при обращении пользователя к каталогу /mnt/applications автомонтировщик монтирует сопоставленный ему NFS-каталог, в нашем случае – atuin:/Volumes/Shared1/Applications.

При работе в UNIX вам также нужно будет запустить службу автомонтировщика. В большинстве версий UNIX эта служба называется automount или automountd, тогда как во многих версиях Linux она называется autofs и запускается следующим образом:  /etc/init.d/autofs start

 

Синхронизация времени

 

При совместном использовании NIS/NIS+ и NFS неплохо убедиться, что на всех серверах установлено одинаковое время. Для служб NIS/NIS+ это критически важно, так как механизмы синхронизации и проверки актуальности баз данных основаны на использовании временных отпечатков. Если время на ваших компьютерах не будет синхронизировано, вторичные NIS-серверы могут перестать принимать информацию с основного NIS-сервера, а основной NIS-сервер может начать отклонять обновления баз данных.

Простейший способ выполнить синхронизацию – это использовать протокол сетевого времени (Network Time Protocol, NTP), который является встроенным либо дополнительно устанавливаемым компонентом большинства систем Linux, и все больше и больше используется в системах UNIX.

 

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

Если вы используете службу NIS, настройте основной NIS-сервер в качестве источника для синхронизации остальных компьютеров в сети. Сервер можно настроить как на использование собственных встроенных часов, так и на получение времени от одного из многих публичных серверов (при наличии подключения к Интернету). Например, такую услугу предоставляет мой Интернет-провайдер, и файл конфигурации моего основного NIS-сервера /etc/ntp.conf содержит имя NTP-сервера моего Интернет-провайдера:

server ntp0.zen.co.uk minpoll 12 maxpoll 17

 

Затем на каждом NIS-сервере и NIS-клиенте сети используется одинаковый файл /etc/ntp.conf, настроенный на получение информации о времени от основного NIS-сервера:

server atuin.mcslp.pri minpoll 12 maxpoll 17

 

После того, как обе системы настроены, запустите демон NTP на основном NIS-сервере, выполнив следующую команду:

/etc/init.d/ntp start

 

Повторите этот процесс на каждом вторичном NIS-сервере и на каждом NIS-клиенте.

 

Заключение

 

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