The linux nis (yp)

Щоб відповісти на це питання ви повинні розглянути два випадки:

  1. Ваша машина входить в мережу, де вже є NIS сервери
  2. Ви поки не маєте ніяких NIS серверів в мережі
У першому випадку, вам потрібні тільки клієнтські програми (ypbind, ypwhich, ypcat, yppoll, ypmatch). Найважливішою програмою є ypbind. Ця програма повинна бути запущена завжди, вона повинна завжди бути в списку процесів. Ця програма є демоном і повинна запускатися при старті системи (наприклад з файлів /etc/init.d/nis, /sbin/init.d/ypclient, /etc/rc.d/init.d/ypbind, / etc / rc. local). Як тільки демон ypbind запущений у вашій системі, вона стає клієнтом NIS.

Є також інша вільна реалізація сервера NIS, звана "yps", яку написав Tobias Reber з Germany і яка не підтримує концепцію майстер-підлеглий і має інші обмеження і вже давно не підтримується.

Системна бібліотека "/usr/lib/libc.a" (версії 4.4.2 і вище) або динамічна бібліотека "/lib/libc.so.x" містить всі необхідні системні виклики для успішної компіляції клієнта і сервера NIS. Для бібліотеки GNU C 2 (glibc 2.x), також потрібна бібліотека /lib/libnsl.so.1.

Деякі люди кажуть, що NIS працює тільки з "/usr/lib/libc.a" версії 4.5.21 м вище, так що якщо ви хочете, щоб все було добре відразу, не використовуйте старі версії. Клієнт NIS може бути отриманий звідси:

Коли ви отримали клієнта, будь ласка дотримуйтесь інструкцій, які йдуть з клієнтом. yp-clients 2.2 може використовуватися як з libc4 так і з libc5 до версії 5.4.20. Для libc 5.4.21 і glibc 2.x потрібні yp-tools версії 1.4.1 або вище. Нові yp-tools 2.2 повинні працювати з будь-яким Linux libc. Так як в більш ранніх версіях libc, в коді NIS був знайдена помилка, вам не потрібні версії libc 5.4.21-5.4.35. Використовуйте libc 5.4.36 або вище замість них або більшість програм YP працювати не будуть. ypbind 3.3 також буде працювати з усіма бібліотеками. Якщо ви використовуєте gcc 2.8.x або вище, egcs або glibc 2.x, ви повинні додати виправлення ypbind-3.3-glibc5.diff для ypbind 3.3. Будь ласка ніколи не використовуйте ypbind від yp-clients 2.2. ypbind-mt - це новий демон, який використовує нитки (треди). Йому потрібно ядро ​​Linux версії 2.2 і glibc 2.1 або вище.

Після того як ви успішно скомпілювали програмне забезпечення, ви готові встановити його. Найкраще місце для демона ypbind - це каталог / usr / sbin. Деякі люди можу сказати вам, що вам не потрібен ypbind в системі з NYS. Це не вірно. Він потрібен для ypwhich і ypcat.

Зрозуміло ви повинні встановлювати демон з правами суперкористувача root. Інші програми (ypwhich, ypcat, yppasswd, yppoll, ypmatch) повинні бути в каталогах доступних всім користувачам, зазвичай в / usr / bin.

Нові версії ypbind мають файл з настройками, званий /etc/yp.conf. За допомогою нього ви можете налаштувати NIS сервер - для подробиць дивіться сторінку керівництва man ypbind (8). Це файл вам також знадобиться для NYS. приклад:

Добре б протестувати ypbind перед тим як включити його в роботу при старті системи. Для тестування ypbind треба зробити наступне:

  • Переконайтеся, що ви задали імена YP-доменів. Якщо ви це не зробили, то виконайте команду де nis.domain повинен бути деякою рядком зазвичай _не_ відповідної імені DNS-домену вашої машини! Причина цього в тому, що при однакових іменах доменів, хакерам зовні надається маленька можливість отримати базу даних паролів з ваших серверів NIS. Якщо ви не знаєте яке ім'я NIS-домену у вашій мережі, запитайте у вашого адміністратора системи / мережі.
  • Запустіть "/ usr / sbin / portmap", якщо він вже не запущений.
  • Створіть каталог "/ var / yp", якщо він не існує.
  • Запустіть "/ usr / sbin / ypbind"
  • Використовуйте команду "rpcinfo -p localhost" щоб перевірити, що ypbind доступу реєстрація своєї служби з portmapper. Ви повинні отримати: чи Залежно від версії ypbind яку ви використовуєте.
  • Ви можете також запустити "rpcinfo -u localhost ypbind". Ця команда повинна видати наступне: або в залежності від версії ypbind, яка встановлена. Важливим є тільки повідомлення "version 2".
Після цього вам повинно бути доступно використання клієнтських програм NIS, таких як ypcat, і т.д. Наприклад, "ypcat passwd.byname" дасть вам базу даних паролів NIS.

ВАЖЛИВО: Якщо ви пропустите процедуру тестування, то переконаєтеся що ви задали ім'я домену та створили каталог

Даний каталог ПОВИНЕН існувати для того, щоб запуск ypbind був успішний.

Для перевірки коректності установки імені домена, використовуйте / bin / ypdomainname з yp-tools 2.2. Ця програма використовує функцію yp_get_default_domain (), яка більш обмежена. Вона не дозволяє наприклад задавати ім'я домену "(none)", яке встановлюється за умовчанням в Linux і може створити велику кількість проблем.

Якщо тест працює, то ви можете тепер захотіти змінити ваші файли старту системи таким чином, щоб ypbind запускався під час завантаження і ваша система ставала клієнтом NIS. Переконайтеся, що ім'я домену встановлено перед тим як запускати ypbind.

Добре. Тепер увійдіть або машину і дивіться повідомлення, що видаються при завантаженні, щоб побачити, що ypbind дійсно запустився.

Для пошуку вузлів ви повинні встановити (або додати) запис "nis" в рядок lookup order в файлі /etc/host.conf. Будь ласка прочитайте станицю керівництва man "resolv + (8)" для подробиць.

Додайте наступний рядок в файл / etc / passwd на машинах NIS-клієнтів:

Ви можете також використовувати символи + та - для додавання / виключення або зміни користувачів. Якщо ви хочете виключити користувача guest, то просто додайте -guest в файл / etc / passwd file. Ви хочете використовувати інший інтерпретатор команд (наприклад ksh) для користувача "linux"? Немає проблем, просто додайте "+ linux. / Bin / ksh" (без лапок) в файл / etc / passwd. Поля, які вам не потрібно змінювати ви повинні залишити порожніми. Ви можете також використовувати Netgroups для управління користувачем.

Зауважимо, що в Linux ви можете також перекрити поле пароля, як ми робили в цьому прикладі. Ми також видалили ім'я "ftp", так що воно стало невідомим і anonymous ftp працювати не буде.

Мережева група може виглядати так

ВАЖЛИВО: Можливість роботи з мережевою групою реалізується починаючи з libc 4.5.26. Якщо ви маєте версію libc молодше 4.5.26, кожен користувач в базі даних паролів NIS може мати доступ до вашої linux машині, якщо ви запустили "ypbind".

Все що потрібно - це файл з настройками NIS (/etc/yp.conf) з коректною інформацією про сервер (серверах). Також, повинен бути коректно встановлений файл з настройками Перемикача Служб Імен (/etc/nsswitch.conf).

Ви повинні встановити ypbind. Це не вимагає libc, але потрібно для утиліт NIS (YP).

Якщо ви бажаєте скористатися наявними можливостями додавання / видалення користувача (+/- guest / + @ admins), ви повинні використовувати "passwd: compat" і "group: compat" в файлі nsswitch.conf. Зауважимо, що там немає рядка "shadow: compat"! Ви повинні використовувати "shadow: files nis" в цьому випадку.

Вихідні тексти NYS є частиною вихідних текстів libc 5. Коли ви запускаєте configure, спершу скажіть "NO" на питання "Values ​​correct", потім "YES" на питання "Build a NYS libc from nys".

glibc використовує "традиційну NIS", так що вам потрібно просто запустити ypbind. Файл з настройками Перемикача Служб Імен (/etc/nsswitch.conf) повинен бути коректно встановлений. Якщо ви використовуєте режим compat для passwd, shadow або group, ви повинні додати "+" в кінець цих файлів і ви можете використовувати можливість додавання / виключення користувачів. Налаштування точно така ж як в Solaris 2.x.

Файл Перемикача Служб Імен /etc/nsswitch.conf визначає порядок пошуку, який виконується коли потрібен певний шматок інформації, також як файл /etc/host.conf, який визначає спосіб виконання пошуку вузлів. Наприклад, рядок

каже, що функції пошуку вузлів повинні спершу дивитися в локальний файл / etc / hosts, потім проводити пошук через NIS і нарешті використовувати службу доменних імен (/etc/resolv.conf і демон named), і якщо потрібний вузол не знайдений, повернути помилку. Даний файл повинен бути доступний на читання для будь-якого користувача! Ви можете знайти більше інформації на станиці керівництва nsswitch (5) або nsswitch.conf (5).

Хороший файл /etc/nsswitch.conf для NIS це:

passwd_compat, group_compat і shadow_compat підтримуються тільки glibc 2.x. Якщо у файлі /etc/nsswitch.conf немає правил для shadow, glibc буде використовувати для пошуку правило passwd. Для glibc має трохи більше модулів для пошуку таких як hesoid. Для подробиць дивіться документацію на glibc.

Тіньові паролі через NIS завжди погана ідея. Ви втрачаєте безпеку, яку дають вам тіньові паролі і крім того така можливість підтримується деякими бібліотеками C в Linux. Гарна ідея в використанні тіньових паролів з NIS полягає в тому, щоб помістити в / etc / shadow тільки локальних системних користувачів. Видаліть записи про користувачів NIS з бази даних тіньових паролів або помістіть паролі назад в файл / etc / passwd. Ви можете використовувати тіньової пароль для користувача root і звичайний пароль для користувача NIS. Це буде працювати з будь-яким клієнтом NIS.

Тільки бібліотека GNU C 2.x в Linux підтримує тіньові паролі через NIS. Linux libc5 скомпільована з NYS також має можливості для цього. Але код в ній погано працює в деяких випадках і може працювати не завжди коректно.

Solaris не має підтримку тіньових паролів через NIS.

PAM не підтримує тіньових паролів через NIS, особливо pam_pwdb / libpwdb. Це велика проблема для користувачів RedHat 5.x. Якщо ви маєте glibc і PAM, вам потрібно змінити значення /etc/pam.d/*. Замініть всі правила pam_pwdb на pam_unix_ * модулі. Але через помилки в pam_unix_auth.so це не завжди працює.

Приклад файлу /etc/pam.d/login:

Для auth вам потрібно використовувати модуль pam_unix_auth.so, для account модуль pam_unix_acct.so, для password модуль pam_unix_passwd.so і для session модуль pam_unix_session.so.

Схожі статті