Опубликован: 04.07.2008 | Уровень: специалист | Доступ: платный | ВУЗ: Европейский Университет в Санкт-Петербурге
Лекция 8:

Аутентификация в сети. NIS и NIS+. LDAP и PAM

< Лекция 7 || Лекция 8: 123 || Лекция 9 >

Службы имен

В любой сети всегда возникает вопрос централизованного хранения информации о пользователях и компьютерах. Такого рода информация включает в себя:

  • учетные записи пользователей;
  • имена компьютеров и их соответствие IP-адресам;
  • псевдонимы адресатов электронной почты (такие, как postmaster, abuse и т.п.).

Помимо этих основных элементов, удобно централизованно хранить не только имена и пароли, но и все остальные свойства существующих в сети объектов.

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

Смысл работы NIS состоит в том, чтобы сделать некую конфигурационную информацию общедоступной в пределах группы компьютеров. Большая группа компьютеров вместе со своими пользователями и группами называется доменом NIS. В домен NIS, например, могут входить все компьютеры и сотрудники организации.

В то же время в пределах домена NIS могут быть выделены так называемые сетевые группы, логически объединяющие некоторые компьютеры и пользователей. Сетевые группы описываются файлом /etc/netgroup. Этот файл, наряду с /etc/passwd и /etc/group, является одним из тех, что делаются общедоступными и централизованными в сети NIS.

Информация о компьютерах, пользователях, группах, сетевых группах и т.п. разделяется между компьютерами в сети посредством создания из текстовых файлов /etc/passwd, /etc/netgroup и ряда других так называемых карт NIS. Карта NIS – это хэшированная база данных, которую использует сервер NIS для ответа на запросы клиентов.

Для превращения файлов типа /etc/passwd в карту NIS требуется программа ypmake. Программы, связанные с NIS, имеют имена, начинающиеся с yp, поскольку в момент создания NIS носила название Sun Yellow Pages, но название пришлось изменить, поскольку словосочетание Yellow Pages оказалось зарегистрированной маркой другой компании. На именовании программ это не отразилось. Программа ypmake не изменяет исходный файл, она лишь генерирует на его основе новый файл-карту NIS.

На основе некоторых системных файлов из подлежащих разделению через NIS, например, passwd, потребуется сгенерировать две карты, так как хэширование базы данных можно осуществить только по одному ключу, а поиск в карте, возможно, потребуется производить по нескольким ключам. В случае passwd это именно так – надо искать и UID по имени пользователя, и имя пользователя по UID. Поэтому генерируются две карты – passwd.byname и passwd.byuid.

Запуск сервисов NIS на компьютере осуществляется командой /usr/lib/netsvc/yp/ypstart, а их остановка – командой /usr/lib/netsvc/yp/ypstop.

Ниже рассказано, какие именно демоны запускаются на серверах и клиентах NIS, в том числе и при выполнении команды /usr/lib/netsvc/yp/ypstart.

Узнать о том, к какому домену причисляет себя компьютер, можно командой

domainname

Если эта команда сообщает, что компьютер не входит в домен NIS, ввести компьютер в домен можно командой domainname имя_домена_NIS, после чего следует проверить наличие и создать при необходимости файл /etc/defaultdomain и каталог /var/yp/binding/имя_домена_NIS.

В каталоге /etc/ могут быть заготовки файлов nsswitch.conf для разных конфигураций сети. Когда вы просто копируете /etc/nsswitch.nis в /etc/nsswitch.conf, не забудьте о том, что если вы желаете использовать DNS для поиска адресов компьютеров в сети, следует исправить строку, определяющую порядок использования служб имен для поиска адресов компьютеров, так, чтобы dns предшествовало nis:

hosts: dns nis files

Для запрещения загрузки служб NIS при старте системы достаточно удалить файл /etc/defaultdomain.

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

Еще немного о сетевых группах

Для удобства администрирования домена NIS следует применять сетевые группы. Формат записей в файле /etc/netgroup весьма прост:

имя_группы список_участников

В качестве списка участников принимаются имена членов группы, разделенные пробелами. Член группы – это либо имя другой сетевой группы, либо конструкция вида

(имя_компьютера, имя_пользователя, имя_домена_NIS).

Отсутствие любой из этих компонент означает, что в соответствующей позиции подразумевается любой компонент. Например

(moon, ,columbia)

означает "любой пользователь компьютера moon в домене NIS columbia". Один компьютер может входить в несколько доменов NIS. Сетевые группы удобно использовать для назначения прав доступа к экспортируемым файловым системам NFS в командах share файла /etc/dfs/dfstab.

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

Сервер NIS хранит всю информацию о доменах NIS в подкаталогах каталога /var/yp. На главном сервере NIS должны быть запущены процессы ypserv (он отвечает на запросы клиентов), ypxfrd (обслуживает запросы от подчиненных серверов NIS для репликации информации), yppasswdd (демон изменения пароля пользователя).

Настройка главного сервера NIS

Для настройки следует выполнить следующие действия:

  1. убедиться, что в файлах passwd, netgroup и др. содержится верная информация, в самом деле подлежащая разделению в сети;
  2. перейти в каталог /var/yp ;
  3. запустить команду domainname имя_домена_NIS (для присвоения домену NIS желаемого имени);
  4. запустить команду ypinit –m для инициализации домена NIS и создания всех необходимых карт NIS. Ключ –m означает master, главный сервер;
  5. запустить необходимые демоны (как минимум, ypserv ).

В Solaris компьютер автоматически настроится на работу с NIS, если будет найден файл /etc/defaultdomain. Эту работу выполнит программа ypstart, которая при старте системы проверяет, установлено ли имя домена в этом файле.

Демон ypserv запускается автоматически, если соблюдаются все следующие условия:

  • указано имя домена в файле /etc/defaultdomain или в переменной среды окружения $domain ;
  • существует каталог /var/yp/имя_домена ;
  • существует переменная YPDIR и в каталоге $YPDIR (т.е. в каталоге, имя которого совпадает со значением этой переменной) есть доступный для выполнения файл ypserv.

Демон ypbind запускается автоматически, если соблюдаются все следующие условия:

  • указано имя домена в файле /etc/defaultdomain или в переменной среды окружения $domain ;
  • существует каталог /var/yp/binding/имя_домена ;
  • существует переменная YPDIR и в каталоге $YPDIR (т.е. в каталоге, имя которого совпадает со значением этой переменной) есть доступный для выполнения файл ypbind.

Серверы NIS одновременно являются и клиентами NIS, поэтому кроме серверных демонов на них запускается и клиентский демон ypbind, который посылает запросы демону ypserv. По умолчанию демон ypbind пытается найти в сети сервер NIS своего домена, рассылая широковещательный запрос. Чтобы данный компьютер использовал строго определенный сервер NIS для получения информации либо в случае, если сервер NIS находится в другом сегменте сети и широковещательный запрос до него не может дойти через маршрутизатор, следует запускать ypbind без ключа broadcast. Для настройки клиента для работы с определенным сервером NIS следует использовать команду ypset, а для настройки клиента NIS в целом применяется ypinit с ключом с. Поэтому обе эти задачи вместе решаются так:

ypinit –c имя_сервера
ypset имя_сервера

Это настраивает запуск ypbind так, чтобы не происходило поиска сервера NIS в сети. В таком случае на клиенте NIS обязательно должен быть минимальный файл /etc/hosts, чтобы при запуске ypbind была возможность обратиться хотя бы к серверу NIS по имени.

Для изменения сценария запуска сервера NIS в Solaris следует модифицировать файл /etc/init.d/inetinit.

В Solaris 10 и более свежих версиях имеет смысл использовать подсистему SMF для настройки и управления NIS, об SMF более подробно рассказано в "Управление службами с помощью SMF" .

Настройка подчиненных серверов NIS

Настройка подчиненного сервера NIS выполняется всегда только после настройки главного. Отличие в этих настройках невелико, так как состоит только в том, что надо программе ypinit передать ключ –s (slave) вместо –m. Разумеется, инспектировать локальные копии файлов passwd и прочих на подчиненном сервере не требуется, ибо его задача – только принимать реплицированные карты NIS с главного сервера. Итак, для настройки подчиненного сервера следует:

  1. перейти в каталог /var/yp ;
  2. запустить команду ypinit –s ;
  3. запустить необходимые демоны (как минимум, ypserv ).

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

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

Клиент не должен абсолютно во всем полагаться на сервер NIS. Следует иметь локальные файлы /etc/passwd, /etc/group и /etc/hosts. В файле passwd должны быть указаны основные предопределенные пользователи и, возможно, личная учетная запись системного администратора для экстренных случаев.

Помните о необходимости проверить порядок опроса служб имен (вначале NIS, затем локальные файлы) в /etc/nsswitch.conf. При переходе от аутентификации через локальные файлы к NIS или обратно не забывайте изменять файл /etc/nsswitch.conf в соответствии с принятым решением о схеме аутентификации.

NIS: полезные программы

Некоторые утилиты помогают в администрировании NIS:

  • yppush – команда с главного сервера, требующая от всех подчиненных обновить свои копии карт NIS (дается при необходимости немедленного внесения изменений);
  • makedbm – создает хэшированную базу данных из текстового файла;
  • yppoll – выдает версию карты сервера;
  • yppasswd – меняет пароль пользователя;
  • ypcat ypservers – выводит список имен NIS-серверов домена;
  • ypcat –x – выводит карты NIS (аналогично ypwhich –x ).
< Лекция 7 || Лекция 8: 123 || Лекция 9 >
Александр Тагильцев
Александр Тагильцев

Где проводится профессиональная переподготовка "Системное администрирование Windows"? Что-то я не совсем понял как проводится обучение.

Александр Гордеев
Александр Гордеев
Казахстан, Алматы, ТУРАН
Александр Даниленко
Александр Даниленко
Россия, Москва, 797, 1993