Як подружити Linux із доменом Active Directory

Архів номерів / 2008 / Випуск №3 (64) / Як подружити Linux з доменом Active Directory

Рубрика: Адміністрація / Адміністрація

Мирослав Бусалов

Як подружити Linux із доменом Active Directory

Windows чи Linux? Напевно, немає жодного системного адміністратора, який би не замислювався над цим питанням. Про плюси та мінуси операційних систем Open Source та продуктів Microsoft написані гігабайти текстів, запеклі суперечки не вщухають уже багато років. Спостерігаючи за цими баталіями, хочеться лише одного – гармонії.

Припустимо таку ситуацію. Частина вашої компанії виконує лише рутинні операції в одному-двох бізнес-додатках, використовуючи браузер. І операційна система для них не має значення. Виходячи з економічної доцільності немає сенсу ставити на такі робочі станції Windows.

Стаття є покроковим керівництвом, як «подружити» робочі станції Linux з доменом Active Directory.

Домен Active Directory під керуванням одного або більше контролерів домену на базі Windows Server 2003; як Linux-десктоп використовується Kubuntu 7.10

Про останній пункт хотілося б сказати таке: у цьому прикладі як файловий сервер використовується Windows-сервер. Тому йдеться лише про зберігання даних користувачів. Зберігати профіль UNIX-користувача на сервері неможливо, оскільки як Linux-десктопа використовується Kubuntu 7.10 з вбудованим екранним менеджером KDE. Під час створення профілю користувача KDE створює символьні посилання (symlink), які потрібні для коректної роботи. Природно, що створити symlink у файловійсистемі NTFS на Windows Server 2003 не вийде.

  • domain.ru - повне ім'я домену Active Directory;
  • dc.domain.ru - повне ім'я контролера домену;
  • fileserver.domain.ru - повне ім'я файлового сервера.

Умовно всю роботу можна поділити на такі етапи:

Модернізація схеми Active Directory

У класичній схемі AD неможливо зберігати атрибути UNIX-користувачів, такі як UID, GID, Login Shell, Home Directory. Тому схему потрібно розширити, додавши до неї можливість зберігання необхідних нам відомостей. Існує два варіанти: перший – це безкоштовний пакет Microsoft під назвою Windows Services for UNIX 3.5 (SFU), другий – це використання останньої версії сімейства серверів 2003 – Windows Server 2003 R2. Ми будемо використовувати другий варіант. Якщо ваші контролери домену та файлові сервери вже працюють під релізом R2, можна сміливо пропустити кілька абзаців щодо оновлення стандартного Windows Server 2003 до R2.

Windows Server 2003 R2 – версія Windows Server 2003, що має вбудовані компоненти Windows Services for UNIX (SFU), необхідні нам для створення гетерогенного середовища для зберігання атрибутів UNIX-користувачів у схемі Active Directory. Реліз R2 включає два важливі компоненти:

  • Subsystem for UNIX-based Applications (SUA);
  • Identity Management for UNIX (IMU).

SUA допомагає UNIX-додаткам працювати під Windows так, ніби вони працюють у Linux чи UNIX. Це виходить за рамки нашої статті, тому ми сфокусуємо увагу на компоненті IMU, яка містить потрібні надалі служби – Administration Components, Password Synchronization, Server for NIS, їхню установку ми зараз і розглянемо.

Необхідно зазначити, що можливо два сценарії оновлення, залежно від того, встановлений пакет SFU чи ні. Ми розглядатимемо варіант, при якому SFU не встановлено. А якщо ні, то рекомендую відвідати англомовний ресурс http://www.winlinanswers.com/book/resources.php? >

Вставивши CD#2 з дистрибутивом Windows Server 2003 R2 і погодившись на продовження інсталяції, ви побачите повідомлення про помилку з описом, що інсталяція не може бути продовжена, оскільки версія схеми даного домену не сумісна з R2. Тому спочатку необхідно виконати таку команду:

де X – буква, відповідна CD із дистрибутивом. Після цього можна розпочати встановлення компонентів R2, виконавши файл R2auto.exe з кореневої директорії CD.

Після встановлення компонентів R2 потрібно в панелі керування в розділі установки та видалення програм вибрати пункт Windows Components, потім знайти рядок Active Directory Services і в деталізації вибрати установку Identity Management for UNIX.

Після завершення інсталяції потрібно буде перезавантажити сервер.

Налаштування атрибутів майбутніх UNIX-користувачів та груп

Відкрийте оснастку Active Directory User and Computers та викличте властивості будь-якого користувача. З'явилася нова закладка UNIX Attributes, в якій можна призначити властивості користувача UNIX (див. малюнок). Для початку нам потрібно створити кілька UNIX-груп, які стануть у нагоді нам надалі.

Властивості UNIX-користувача - UNIX attributes

Створіть групу UNIXusers – це буде група за промовчанням для всіх користувачів UNIX. Для цього створіть звичайним способом групу потрібного вам виду (Domain Local або Global), потім відкрийте властивості цієї групи і перейдіть на вкладку UNIX Attributes. У рядку "NIS Domain" виберіть вашдомен, після чого групі автоматично буде присвоєно GID. Якщо він не влаштовує вас з якоїсь причини, ви можете прописати новий ідентифікатор вручну. При створенні наступних груп GID автоматично збільшуватиметься на одиницю.

Аналогічно створіть групу UNIXadmins, яка потім буде вказана в налаштуваннях конфігураційного файлу /etc/sudoers як група, членам якої дозволено виконувати sudo на робочих станціях з Kubuntu.

Створіть ще одну групу та назвіть її audio, привласнивши їй вручну GID 29. Справа в тому, що в Linux є одна особливість – файли аудіопристроїв, як правило, мають спільну групу таким чином, що можливість роботи з аудіо доступна лише власникам файлів та членам цієї групи. У цю групу потім додамо всіх користувачів, щоб вони мали можливість використовувати навушники і мікрофон.

Тепер виберіть одного з тих користувачів вашого домену, якому ви хочете присвоїти UNIX-атрибути. У властивостях відкрийте вкладку UNIX Attributes, так само як і для групи, виберіть ім'я вашого домену в рядку NIS Domain, і в рядку Primary group name/GID виберіть групу за замовчуванням UNIXusers.

Якщо потрібно змінити параметри Login Shell і Home Directory з якихось причин, можна це зробити. UID надається автоматично, але при бажанні можна прописати його вручну.

Після присвоєння UNIX-атрибутів всім користувачам, що їх потребують, повернемося до груп. Відкривши властивості групи UNIXusers, на вкладці UNIX Attributes натисніть кнопку Add і додайте туди всіх користувачів.

Аналогічно надійдемо з групою audio, а до групи UNIXadmins внесемо лише тих користувачів, кому дозволено виконання sudo на робочих станціях.

Тепер залишається тільки створити нового користувача, наприклад unixldap, тапривласнити йому відповідні атрибути. Обліковий запис цього користувача буде використовуватися при реєстрації та пошуку в LDAP з Linux-декстопу, тому його необхідно максимально обмежити в правах, припустимо, явно заборонивши доступ до всіх ресурсів файлового сервера і т.д.

На цьому роботи з оснащенням Active Directory User and Computers закінчені.

Небагато про налаштування файлового сервера для роботи з UNIX-клієнтами

У цьому прикладі монтування домашніх каталогів користувачів здійснюється за допомогою CIFS (Common Internet File System).

Якщо вам потрібно працювати з NFS (Network File System), то для забезпечення доступу до файлових ресурсів вашого Windows-сервера з Linux-десктопів необхідно буде встановити на сервер пакет Microsoft Services for NFS. Наводжу короткий посібник, як це зробити.

Зайдіть у панель керування, потім у розділі установки та видалення програм виберіть пункт Windows Components, там увійдіть в Other Network File and Print Services і в деталізації виберіть установку Microsoft Services for NFS. З цього пакета необов'язковими є два останні пункти: Server for NFS Authentication і User Name Mapping. Після встановлення даних служб користувачі з робочих станцій під керуванням Linux матимуть доступ до файлових ресурсів даного сервера, використовуючи NFS.

Налаштування робочої станції з Kubuntu

Тепер приступимо до найбільшої частини роботи – налаштування Kubuntu. Спочатку виконайте встановлення Kubuntu 7.10 на робочу станцію, після чого встановіть усі необхідні оновлення, наприклад, використовуючи вбудований у KDE менеджер оновлень Adept Updater.

Також рекомендується змінити параметри входу для KDE (в інших екранних менеджерах можуть бутивідмінності) – відкриваємо меню System Settings, переходимо на закладку Advanced, там вибираємо Менеджер входу в систему, і, увійшовши в адміністративний режим, відключаємо опцію Показувати список на вкладці Користувачі. Якщо цього не зробити, система при вході буде відображати всіх UNIX-користувачів вашого домену, що зовсім ні до чого.

Для коректної роботи протоколу Kerberos, який буде використовуватися для аутентифікації в нашому гетерогенному середовищі, важливим моментом є синхронізація часу робочої станції з контролером домену.

Тому першим пунктом налаштуємо синхронізацію часу. Для цього у файлі /etc/default/ntpdate внесемо такі зміни:

При наступному перезавантаженні ПК синхронізуватиме час із контролером домену, а поки проведемо синхронізацію вручну, виконавши таку команду:

$sudo ntpdate -s dc.domain.ru

Вказуємо FQDN для робочої станції, що настроюється у файлі /etc/hosts:

127.0.0.1 workstation.domain.ru localhost workstation

Перевірте доступність машини за командою FQDN:

ping workstation.domain.ru -з 4

Тепер необхідно встановити та налаштувати підтримку Kerberos. Встановлюємо потрібні пакети:

$sudo apt-get install krb5-user libpam-krb5 krb5-config libkrb53 krb5-doc

Якщо система видала помилку:

dpkg was interrupted, you must manually run dpkg –configure –a to correct this problem

дотримуйтесь поради підказки, наберіть:

$sudo dpkg –configure –a

У процесі вас попросять ухвалити рішення про заміну файлу /etc/qt3/qt_plugins_3.3rc – погодьтеся з варіантом за замовчуванням, залиште поточну версію без змін. Ця помилка іноді виявляється у версії 7.10 після першої установки оновлень.

Іприступаємо до налаштування – внесемо зміни до файлу /etc/krb5.conf:

# DOMAIN.RU пишеться обов'язково головними літерами

# The following krb5.conf variables are only for