Назад | Перейти на главную страницу

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

Редактировать: Переформатировал это как Q&A. Если кто-то может изменить это из Community Wiki на типичный вопрос, это, вероятно, также более уместно.

Как я могу аутентифицировать OpenBSD в Active Directory?

Предисловие

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

В любом случае, мне потребовалось время, чтобы понять, поэтому, надеюсь, некоторые краткие инструкции сэкономят ваше время.

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

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

инструкции

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

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

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

  3. На pdc.EXAMPLE.COM загрузите и установите Windows Server Support Tools (в частности, вам понадобится 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, а затем выгружает информацию об основном и закрытом ключах в -out файл 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, как выполнять преобразование между областями DNS и Kerberos.

    [libdefaults]
    clockskew = 300
    default_realm = ПРИМЕР.COM

    [царства]
    EXAMPLE.COM = {
    default_domain = ПРИМЕР.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 и Sudo. Оба должны безупречно работать с вашими учетными данными Active Directory.

Это все, что нужно сделать.

Ссылки

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

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

В 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 сейчас.