автор Frédéric Raynal Об авторе: Frédéric Raynal пишет диссертацию по информатике в INRIA. Он любит читать (Толкиена равно как и Бальзака) и слушать музыку (от Моцарта до Филипа Гласса и от Led Zeppelin до Massive Attack через Björk и Boris Vian, но старательно обходя рэп, техно и некоторые другие разновидности шума ;-) Содержание: |
Резюме:
Предыдущая статья была введением в принципы работы желтых страниц (Yellow Pages, YPs). Здесь мы рассмотрим, как сконфигурировать вашего клиента, практический пример, показывающий, как работает клиент, и различные утилиты, которые нужны для его работы. В конце мы расскажем кое-что о NIS+.
Работа сервисов, связанных с желтыми страницами, на стороне клиента коренным образом основана на работе демона ypbind : он посылает запросы на сервер YP. Сначала мы расскажем как он работает и как его настроить. Затем, мы посмотрим как работает протокол NIS. Последняя часть статьи посвящена различным утилитам, применяемым на стороне клиента YP (yp-утилиты).
ypbind устанавливает соединение между клиентом и сервером NIS. Это соединение можно увидеть в дериктории /var/yp/binding1 в файле, который обычно называется имя_домена.версия. Единственная поддерживаемая версия в настоящее время - версия 2. Значит, если имя моего домена NIS - "messiah", то имя файла будет messiah.2
Программа ypbind принадлежит привилегированному пользователю (т.е. root), а значит, она должна находиться в /sbin или в /usr/sbin.
При запуске, ypbind берет предписания для себя из файла /etc/yp.conf. Этот файл состоит из следующих строк:
Если этот конфигурационный файл неверен или не существует, ypbind будет делать широковещательный запрос2 по локальной сети, чтобы найти сервер NIS локального домена.
Несколько основных действий позволяют нам проверить, правильно ли сконфигурирован ypbind.
program | vers | proto | port | |
100000 | 2 | tcp | 111 | portmapper |
100000 | 2 | udp | 111 | portmapper |
100007 | 2 | tcp | 637 | ypbind |
100007 | 2 | udp | 639 | ypbind |
program | vers | proto | port | |
100000 | 2 | tcp | 111 | portmapper |
100000 | 2 | udp | 111 | portmapper |
100007 | 2 | udp | 758 | ypbind |
100007 | 1 | udp | 758 | ypbind |
100007 | 2 | tcp | 761 | ypbind |
100007 | 1 | tcp | 761 | ypbind |
program 100007 version 2 ready and waiting |
program 100007 version 1 ready and waiting |
program 100007 version 2 ready and waiting |
nisplus | поиск по NIS+ (то есть NIS версии 3, защищенная версия NIS) |
nis | поиск по NIS (NIS версия 2, синоним YPs) |
dns | поиск по DNS (Domain Name Server) |
files | поиск в локальных файлах |
db | поиск в базе данных /var/db |
Теперь, когда наш клиент NIS находится в рабочем состоянии, мы посмотрим, что он делает для получения необходимой информации.
Когда клиенту необходима информация, содержащаяся в карте YPs, он начинает с поиска сервера YP. Чтобы найти его, он открывает TCP соединение с локальным ypbind. Клиент сообщает ему домен (домен NIS), которому он принадлежит, и ypbind делает широковещательный запрос через функцию RPC YPPROC_DOMAIN_NOACK. Серверы NIS, обслуживающие этот домен, отзываются посылкой ACK. Остальные молчат.
ypbind посылает клиенту результаты поиска (неудачный или удачный) и, если у него есть, адрес первого ответившего сервера YP. Теперь клиент может направить серверу свой запрос, указывая домен, карту и ключ.
Данный протокол достаточно медленен, так как использует TCP соединения. Более того, он также использует много сокетов. Чтобы улучшить положение, ypbind не ожидает подключения клиента для поиска серверов. На самом деле, список серверов для каждого домена он содержит в файле /var/yp/binding/<имя_домена>.<версия> и постоянно проверяет, правильно ли они работают.
В этой части коротко рассказывается о некоторых утилитах из пакета yp-утилит. Чтобы узнать больше, вы можете вызвать очень подробную man-страницу для каждой из этих команд ;-P
До этого мы не говорили о разновидностях NIS. Использование NIS в сети означает сильно рисковать безопасностью. Например, если сервер NIS плохо защищен и если некто с плохими намерениями узнает:
NIS+ предлагает дополнительный уровень безопасности, интегрируя протокол аутентификации основанный на обмене ключами и шифрование данных.
Данные содержатся в таблицах, которые расположены в различных директориях. Каждый столбец в таблице имеет заголовок, во котором указано, например, будут ли данные зависеть от регистра ("case sensitive"), в двоичном формате и т.д.
Вышеописанная структура легко позволяет поддерживать права доступа на директории и таблицы и дополнительно на столбцы в таблицах. Это значит, что возможно запретить доступ к таблице паролей всем пользователям, не аутентифицированым на сервере NIS+. Но это дает доступ всем аутентифицированым пользователям к таблице паролей, кроме поля "passwd". Только владелец поля "passwd" может извлекать информацию из него.
Есть 4 уровня защиты :
В этой конфигурации, root - всего лишь один из пользователей ... ну почти ;-) Если у него нет соответствующих разрешений, он не сможет больше посмотреть пароли других пользователей. Поэтому он больше не сможет быть аутентифицирован как другой пользователь ... однако, он все еще может легко выполнить su :)
Данные, передающиеся по сети, не будут зашифрованы. Однако это не так для паролей : ни один пароль не передается по сети открытым текстом.
NIS+ - мощная вещь ... но ее сложно установить. Thorsten
Kuduk пишет следующее (он работает над NIS, NIS+, NIS-HOWTO ...
поэтому он знает о чем говорит ;-) :
"Сделать выбор между NIS и NIS+ очень просто : используйте NIS до тех
пор, пока у вас нет особой нужды в безопасности. NIS+ во много раз
сложнее администрировать (особенно на стороне сервера)"
Мы научились добавлять новую машину в существующую сеть, где уже установлен сервер NIS. В следующей статье мы рассмотрим, как сконфигурировать сервер и как он работает.
|
Webpages maintained by the LinuxFocus Editor team
© Frédéric Raynal, FDL LinuxFocus.org Click here to report a fault or send a comment to LinuxFocus |
Translation information:
|
2001-07-10, generated by lfparser version 2.8