Службы каталогов. Развертывание NIS
Сервис Network Information System (NIS) - служба каталогов, ориентированная на использование в изолированных сетях под управлением UNIX/Linux систем.
Цель работы: Использование Network Information System (NIS) для централизованного управления разделяемыми ресурсами локальной сети.
Задания для выполнения
- Проверьте доступность узлов tester.asoiu, hackme.asoiu, repo.asoiu.
- Проверьте наличие portmap. Если не установлен - установите.
- Установите пакеты ypbind и yp-tools (устанавливается совместно с ypbind)
- Сконфигурируйте и запустите демон ypbind. Выясните, какие порты используют программы portmapper и ypbind в сконфигурированной вами системе.
- Установите ypbind как сервис на 3 и 5 уровнях запуска.
- Просмотрите ресурсы карты passwd (обратите внимание на пути к домашнему каталогу). Сколько пользователей зарегистрированы в NIS? Какой минимальный идентификатор пользователя (UID)?
- Перезагрузите компьютер и выполните вход в систему под одной из учетных записей пользователей NIS (в учебных целях пароли совпадают с логинами). Объясните причины появления ошибок (если они возникли) при входе пользователя.
- Получите список карт ресурсов NIS, представляемых сервером nis.asoiu.
- Просмотрите ресурсы карты hosts. Какие сетевые имена у узла с адресом 194.188.210.199?
- Проверьте доступность узлов (по именам), перечисленных в карте hosts. Сравните результаты с результатами, полученными в п.1.
- Используйте команду yppaswd для изменения полного имени (не логина), дополнительной информации (GECOS) и пароля текущего пользователя (см. man yppasswd).
- Используйте команду finger для получения развернутых сведений о пользователях сети (см. man finger).
- ОБЯЗАТЕЛЬНО! Верните все сделанные в ходе лабораторной работы изменения системы к исходным, в т.ч. удалите ypbind, yp-tools и finger.
- Составьте отчет о выполнении работы.
Указания к лабораторной работе
Назначение, функции и принципы работы NIS приведены в этой лекции. Лабораторная работа не предусматривает установку и настройку серверной части NIS. Это означает, что в сети должен быть хотя бы один действующий NIS-сервер, информацию о котором представляет преподаватель.
ВНИМАНИЕ: в текущей сети NIS-сервер работает на хосте с адресом 194.188.210.254. Имя сервера — nis.asoiu.
Для настройки системы в качестве клиента NIS необходимо войти в систему с правами суперпользователя (или использовать su/sudo).
Для начала необходимо проверить, что необходимое ПО установлено или может быть установлено. Для этого нужно использовать программу управления пакетами, соответствующую вашей системе. Так, для дистрибутивов Linux на основе RedHat packet manager (.rpm) можно использовать команду вида:
rpm -q <имя-пакета>
Например:
root@edu.asoiu # rpm -q portmap portmap-6.0+git20070716-38.1 <—результат выполнения
Установить программы portmaper, ypbind и yp-tools (набор пользовательских программ NIS: ypwhich, ypcat, yppasswd, yppoll, ypmatch) можно с помощью того же rpm:
rpm -ivh <имя-файла-пакета.rpm>
Однако удобнее выполнять установку из программ типа yum, zypper, yast или synaptic. Пример установки для OpenSuSE (подразумевается, что репозитории ПО настроены и подключены):
root@edu.asoiu # zypper install ypbind Чтение установленных пакетов... Будет установлен следующий НОВЫЙ пакет: ypbind Полный размер загрузки: 39,0 K. После этой операции будет использовано дополнительно 72,0 K. Продолжить? [да/нет]: yes Загружается пакет ypbind-1.21-16.1.i586 (1/1), 39,0 K (72,0 K нераспакованный) Загружается: ypbind-1.21-16.1.i586.rpm [готово] Устанавливается: ypbind-1.21-16.1 [готово]
Проверить, что демон portmap установлен и запущен можно командой rpcinfo:
rpcinfo -p localhost
Если portmap не установлен в системе, его необходимо установить (в обычном порядке), а затем запустить как системный сервис. Это можно сделать например так (rpm-based дистрибутивы):
root@edu.asoiu # service portmap start
Starting RPC portmap daemon done
Аналогичным образом запускается и клиентская служба NIS - демон ypbind. Но прежде чем запускать его, нужно выполнить базовую настройку. Это сводится к правке конфигурационного файла (/etc/yp.conf), файлов passwd, nsswitch.conf и других (в зависимости от требуемой конфигурации NIS). Кроме того, до запуска ypbind, необходимо указать имя домена NIS.
В файл настроек /etc/yp.conf нужно ip-адреса серверов NIS. Пример:
ypserver 192.168.0.1
Если в сети имеется сервис DNS и система может получить имена серверов (отрезолвить) без использования NIS, то в yp.conf можно использовать доменное имя, иначе - придется использовать ip-адрес.
По умолчанию вся информация о доступных клиенту сервисах NIS размещается в каталоге /var/yp. Если он не существует, то нужно создать его.
Следующий шаг - указание домена, к которому будет принадлежать клиентский хост. Это выполняется командой domainname, например так:
domainname <nis.domain>
где nis.domain - имя существующего в сети NIS-домена (в нашем случае - nis.asoiu). В целях обеспечения безопасности это имя должно отличаться от DNS-имени сервера NIS.
Теперь можно запускать ypbind в качестве сервиса:
root@edu.asoiu # service ypbind start
Для проверки того, что ypbind работает можно использовать команду rpcinfo (см. выше) или, например, service:
root@edu.asoiu # service --status-all | grep ypbind
...
Checking for NIS client program: ..running
Если будет выведено нечто подобное, значит установка и начальная настройка клиента NIS прошли успешно и можно использовать клиентские программы NIS, таких как ypcat, ypwhich и т.д.
Для автоматического запуска демонов portmap и ypbind стоит добавить их в автозагрузку. Это можно сделать например так:
## установить запуск ypbind на 3 и 5 уровнях (runlevel's) root@edu.asoiu # chkconfig -s ypbind 35
Использование NIS
Для просмотра ресурсов NIS предназначена программа ypcat. Программа позволяет просмотреть как список доступных карт, так и ресурсы указанной карты. Имя карты может быть задано как полное, так и сокращенное (alias). Примеры использования ypcat:
root@edu.asoiu # ypcat -x <— получение списка карт Use "ethers" for map "ethers.byname" Use "aliases" for map "mail.aliases" Use "services" for map "services.byname" Use "protocols" for map "protocols.bynumber" Use "hosts" for map "hosts.byname" Use "networks" for map "networks.byaddr" Use "group" for map "group.byname" Use "passwd" for map "passwd.byname" root@edu.asoiu # ypcat hosts <— ресурсы карты hosts 194.188.210.254 edu.asoiu 194.188.210.199 tester.asoiu tester 127.0.0.1 localhost 194.188.210.199 tester.asoiu tester 194.188.210.199 hackme.asoiu
Для получения имени сервера NIS предназначена программа ypwhich.
root@edu.asoiu # ypwhich tester.asoiu
Программа yppoll возвращает версию карты и имя мастер-сервера NIS, представившего эту карту.
root@edu.asoiu # yppoll hosts.byname Domain nis.asoiu is supported. Map hosts.byname has order number 1254796444. [Tue Oct 6 09:34:04 2009] The master server is tester.asoiu.
Команда ypmatch выдает значения одного или более ключей из карты NIS.
root@edu.asoiu # ypmatch nisuser passwd nisuser:hsB.xq3nXoULk:1002:100:lexa:/home/nisuser:/bin/bash
За более подробной информацией по каждой утилите обратитесь к соответствующим man-страницам.
Файл /etc/nsswitch.conf указывает системе, где она должна искать требуемую информацию, например, имена хостов и логины пользователей. Можно использовать этот файл для управления порядком (или приоритетом), в котором просматриваются базы данных и обрабатываются ошибки.
Примерное содержание файла /etc/nsswitch.conf для NIS может быть таким:
# # /etc/nsswitch.conf sample passwd: nis files group: nis files shadow: nis files hosts: nis files dns networks: nis [NOTFOUND=return] files netmasks: nis [NOTFOUND=return] files services: nis [NOTFOUND=return] files protocols: nis [NOTFOUND=return] files rpc: nis [NOTFOUND=return] files ethers: nis [NOTFOUND=return] files netgroup: nis bootparams: nis [NOTFOUND=return] files publickey: nis [NOTFOUND=return] files automount: files aliases: nis [NOTFOUND=return] files
Для управления пользователями, которым разрешен вход на клиентскую машину нужно отредактировать файл /etc/passwd. Например, для разрешения входа всем пользователям следует добавить такую строчку:
+::::::
Символы "+" и "-" соответственно разрешают или блокируют пользователей. Здесь же можно изменить пользовательскую оболочку и прочую информацию о пользователях. Поля, которые не нужно изменять должны оставаться пустыми.
Например, для того, чтобы разрешить вход в систему только пользователям miquel, alex и ed, и всем членам сетевой группы sysadmin, но при этом чтобы была доступна информация о всех других пользователях, passwd нужно изменить так:
+miquel::::::: +alex::::::: +ed:::::::/bin/sh <—для этого пользователя оболочкой будет sh, а не bash +@sysadmins::::::: <—разрешаем вход пользователям из группы sysadmins -ftp <—запрещаем вход для этого пользователя +:*::::::/etc/NoShell <—отключаем оболочку для всех прочих пользователей
В указанном примере определена cетевая группа (sysadmins). Информация о ней должна быть занесена в файл /etc/netgroup (см. комментарии в файле /etc/netgroup). Пример описания сетевой группы:
sysadmins (-,software,) (-,mazzy,) (-,got,)
При настройке параметров входа надо соблюдать осторожность. Если сделан доступным администраторский пароль и логин, как и логин/пароль других пользователей, то не следует использовать при неудачном поиске пары значений логин/пароль опцию 'return' (см. man nsswitch.conf). Подобная конфигурация блокирует вход всем пользователям (в т.ч. и суперпользователю), чьи учетные записи не входят в NIS.
Контрольные вопросы
- Какие карты ресурсов доступны и имеют отображения в домене сервера nis.asoiu?
- О каких пользователях можно изменить информацию с помощью команды ypasswd?
CC-BY-CA Анатольев А.Г., 17.10.2013