Автентифікація OpenBSD проти Active Directory


24

Редагувати: переформатували це як запитання та запитання. Якщо хтось може змінити це з спільноти Wiki на типове запитання, це, мабуть, також більше.

Як я можу аутентифікувати OpenBSD проти Active Directory?


Дуже хороша! Це виглядає дуже ретельно і добре написано. Я не використовую OpenBSD, але деталі AD виглядають точково.
Еван Андерсон

+1 за приємне керівництво, хоча це насправді не питання.
Девід Шмітт

Ви повинні змінити це у форматі запитань та відповідей.
Дуг Люксем

Змінено, хоча це все ще спільнота Wiki. Якщо хтось інший може це змінити, продовжуйте.
sh-beta

Відповіді:


17

Передмова

Аутентифікація Active Directory за допомогою Kerberos досить проста в системах, що використовують PAM, але OpenBSD не робить і ускладнює. З tcpdump, схоже, що PAM системи просто роблять попередню аутентифікацію, тоді як система bsd_auth OpenBSD використовує весь процес аутентифікації Kerberos.

У будь-якому випадку, мені знадобилося певний час, щоб розібратися, тому, сподіваюся, деякі стислі вказівки заощадять ваш час.

Кілька швидких приміток, перш ніж розпочати:

  • Користувачі повинні існувати в системі OpenBSD перед тим, як спробувати увійти. Вони не створюються автоматично.
  • Якщо ви хочете, щоб користувачі автоматично створили, погляньте на Samba / Winbind. У мене не було нічого, крім проблем (незрозумілі збої, серйозні спам-журнали, ненадійна автентифікація), тому я використовую лише тоді, коли мені доведеться.
  • Це було протестовано на OpenBSD 4.5 та Windows Server 2003. Я впевнений, що він буде працювати з Win2k, але YMMV.
  • У цій версії OpenBSD використовується Heimdal 0.7.2. Тут все, окрім шляхів та матеріалів login.conf, ймовірно, буде працювати на інших * nixx, що працюють на тому ж Heimdal, але знову ж таки, YMMV.

Інструкції

Ці кроки передбачають, що ви намагаєтесь підтвердити автентифікацію myuser@myhost.fqdn щодо домену EXAMPLE.COM. Контролер домену - pdc.EXAMPLE.COM.

  1. Створіть обліковий запис користувача Active Directory на ім'я myhost (це не помилка, ці вказівки не працюватимуть із обліковим записом Комп'ютера). Вимкніть термін дії пароля і не дозволяйте користувачеві змінювати свій власний пароль. Встановіть пароль на все, що вам подобається - він буде незабаром змінений.

  2. Можливо, добре створити обліковий запис користувача під новим ОУ, видалити його з групи користувачів домену та додати його до виділеної групи. Це все питання смаку та вашої безпеки.

  3. На pdc.EXAMPLE.COM завантажте та встановіть Інструменти підтримки Windows Server (зокрема, вам знадобиться ktpass.exe)

  4. На pdc.EXAMPLE.COM запустіть:

    ktpass -out c: \ temp \ myhost.keytab -princ host/myhost.fqdn@EXAMPLE.COM -mapuser myhost -pType KRB5 _NT_PRINCIPAL + rndpass

    Це оновлює пароль користувача myhost на щось випадкове (+ rndpass), відображає основний Kerberos "host/myhost.fqdn@EXAMPLE.COM" на користувача "myhost" в Active Directory, а потім скидає інформацію про головний та приватний ключ у -від файлу клавіатури.

  5. Безпечно скопіюйте c: \ temp \ myhost.keytab в myhost та видаліть файл із pdc.EXAMPLE.COM

  6. На myhost додайте клавішу AD на основну вкладку клавіш:

    ktutil copy /path/to/myhost.keytab /etc/kerberosV/krb5.keytab

  7. Налаштування /etc/krb5.conf. Нижче наведений мінімум, який вам потрібен. Доступно багато варіантів, ознайомтеся з інформацією про сторінку, щоб дізнатися більше. Це просто встановлює максимально прийнятне нахил тактової частоти на 5 хвилин, робить EXAMPLE.COM цариною за замовчуванням і повідомляє Керберосу, як переводити між царствами DNS і Kerberos.

    [libdefaults]
    Clockkew = 300 за
    замовчуванням_realm = EXAMPLE.COM

    [області]
    EXAMPLE.COM = {
    default_domain = EXAMPLE.COM
    }

    [domain_realm]
    .EXAMPLE.COM = EXAMPLE.COM

  8. Перевірте, чи можна отримати квиток:

    # kinit Administrator@EXAMPLE.COM
    Administrator@EXAMPLE.COM's Password:
    # klist
    Credentials cache: FILE:/tmp/krb5cc_0
    Principal: Administrator@EXAMPLE.COM

    Issued Expires Principal
    Jun 4 21:41:05 Jun 5 07:40:28 krbtgt/EXAMPLE.COM@EXAMPLE.COM

  9. Змініть /etc/login.conf, щоб використовувати автентифікацію Kerberos. Ваша точна конфігурація login.conf залежить від способу використання вашої системи, але для того, щоб перейти від установки ванілі до Kerberos, просто відредагуйте та прокоментуйте цей рядок під типовим класом входу за замовчуванням:

    :tc=auth-defaults:\

    І додайте вище:

    :auth=krb5-or-pwd:\

    Це перевіряє Kerberos спочатку, якщо користувач не має root. Якщо Kerberos не вдасться, він використовуватиме локальні паролі.

  10. Додайте користувачів, яких ви хочете пройти автентифікацію на цьому хості. Залиште паролі порожніми, якщо ви не хочете, щоб вони могли використовувати як Active Directory, так і локальні паролі (не рекомендується).

    Ви можете видалити паролі існуючих користувачів "chpass <user>" та замінити значення "Зашифрований пароль:" зірочкою (*)

  11. Тест на SSH та судо. Обидва повинні працювати бездоганно з вашими обліковими записами Active Directory.

Це все, що там є.

Посилання

Кілька корисних сайтів:


Схоже, 2008 R2 запустив ktpass.exe. Можливо, 2008 також не можу сказати точно на цьому етапі. Якщо хтось може уточнити, це було б чудово.
Аарон Мейсон

Крім того, для того, щоб зробити це з 5,7 далі, вам потрібно буде встановити пакет Heimdal - його було видалено з бази в 5.6.
Аарон Мейсон

Додавання до попереднього коментарю - ви також повинні встановити пакет login_krb5 і скопіювати login_krb5-or-pwdв /usr/libexec/auth- також файли конфігурації і Keytab тепер в /etc/heimdalі не /etc/kerberosVяк в попередніх версіях OpenBSD.
Аарон Мейсон

5

Оновлення наведених вище вказівок, оскільки відтоді змінилися декілька речей.

У OpenBSD 5.6 було прийнято рішення про вилучення Heimdal з базового розподілу через стурбованість якістю коду, і ніхто не готовий витрачати час на його аудит. У 5.7 він був доступний у вигляді пакету (для 5.6 вам потрібно буде створити з джерела або придумати, як його знову включити в джерело). Отже, перш ніж виконувати наведені вище інструкції, необхідно буде виконати наступні додаткові кроки:

-3. Встановіть heimdalі login_krb5пакунки з улюбленого дзеркала.

-2. Скопіювати /usr/local/libexec/auth/login_krb5*в /usr/libexec/auth.

-1. Якщо ви збираєтесь багато використовувати heimdal інструменти, додайте /usr/local/heimdal/binдо системного шляху. В іншому випадку обов'язково посилайтеся на інструменти з їх повним шляхом при їх використанні.

Крім того, krb5.confі krb5.keytabфайли /etc/heimdalзараз переходять у файл .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.