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

Что-либо с ушами стойки на нем обычно значительно более дорого, чем это было бы иначе. Если Вы - планирование добавления стойки, то пойдите для него. Если бы не - затем Вы действительно просто выбросили бы деньги.

24
задан 9 June 2009 в 18:16
2 ответа

Предисловие

Аутентификация против Active Directory с Kerberos довольно проста в системах с помощью PAM, но OpenBSD не делает и делает это более трудным. От tcpdump похоже, что системы PAM просто делают предварительную аутентификацию, в то время как bsd_auth система OpenBSD использует целый процесс аутентификации Kerberos.

Так или иначе это взяло меня некоторое время для выяснения так, надо надеяться, некоторые краткие инструкции сэкономят Вам время.

Несколько быстрых примечаний, прежде чем мы начнем:

  • Пользователи должны существовать в системе OpenBSD прежде, чем попытаться войти в систему. Они не автосоздаются.
  • Если Вы хотите автосозданных пользователей, изучаете Samba/Winbind. Я испытал только затруднения (необъяснимые катастрофические отказы, серьезный спам журнала, ненадежная аутентификация) от него, таким образом, я только использую его, когда я имею к.
  • Это было протестировано на OpenBSD 4.5 и Windows Server 2003. Я вполне уверен, это будет работать с Win2k, но YMMV.
  • Эта версия OpenBSD использует Хеймдаль 0.7.2. Все здесь кроме путей и материала login.conf, вероятно, продолжит работать другой *, отклоняет выполнение того же Хеймдаля, но снова, YMMV.

Инструкции

Эти шаги предполагают, что Вы пытаетесь аутентифицировать myuser@myhost.fqdn против домена EXAMPLE.COM. Контроллером домена является pdc.EXAMPLE.COM.

  1. Создайте учетную запись Пользователя Active Directory, названную myhost (это не опечатка, эти инструкции не будут работать с Учетной записью компьютера). Отключите истечение пароля и не позволяйте пользователю изменить его собственный пароль. Установите пароль на то, что Вы любите - он будет скоро изменен.

  2. Это - вероятно, хорошая идея создать Учетную запись пользователя под новым OU, удалить его из группы Пользователей домена и добавить его к специализированной группе. Это - весь вопрос вкуса и Вашего расположения безопасности.

  3. На pdc.EXAMPLE.COM загрузите и установите Инструменты Поддержки Windows Server (а именно, Вам будет нужен ktpass.exe),

  4. На pdc.EXAMPLE.COM, выполненном:

    ktpass - 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 и затем выводит основную и информацию с закрытым ключом в - keytab файл.

  5. Надежно скопируйте c:\temp\myhost.keytab в myhost и удалите файл из pdc.EXAMPLE.COM

  6. На myhost добавьте AD keytab к Вашему основному keytab:

    ktutil копируют/path/to/myhost.keytab/etc/kerberosV/krb5.keytab

  7. Настройте/etc/krb5.conf. Ниже абсолютный минимум, в котором Вы нуждаетесь. Существует много доступных опций, смотрите на страницу справочника для получения дополнительной информации. Это просто устанавливает максимальную приемлемую расфазировку тактовых сигналов на 5 минут, делает EXAMPLE.COM областью по умолчанию и говорит Kerberos, как перевести между областями Kerberos и DNS.

    [libdefaults]
    расфазировка тактовых сигналов = 300
    default_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 сначала, если пользователь не является корнем. Если Kerberos перестанет работать, то он будет использовать локальные пароли.

  10. Добавьте пользователей, которых требуется аутентифицировать на этом хосте. Оставьте пароли, незаполненные, если Вы не хотите, чтобы они смогли использовать и Пароли Active Directory и локальные пароли (не рекомендуемый).

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

  11. Протестируйте SSH и Sudo. Оба должны работать безупречно с Вашими учетными данными Active Directory.

Вот и все.

Ссылки

Пара полезных сайтов:

17
ответ дан 28 November 2019 в 20:18

Обновление инструкций, как некоторые вещи изменились с тех пор.

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

-3. Установите пакеты heimdal и login_krb5 из вашего любимого зеркала.

-2. Copy /usr/local/libexec/auth/login_krb5* to /usr/libexec/auth.

-1. Если вы намерены часто использовать геймдальные утилиты, добавьте /usr/local/heimdal/bin к вашему системному пути. В противном случае, не забудьте указать инструменты с их полным путем при их использовании.

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

.
5
ответ дан 28 November 2019 в 20:18

Теги

Похожие вопросы