Изменить: переформатировал это как Q & A. Если кто-то может изменить это с вики-сообщества на типичный вопрос, это, вероятно, более уместно.
Как я могу аутентифицировать OpenBSD в Active Directory?
Изменить: переформатировал это как Q & A. Если кто-то может изменить это с вики-сообщества на типичный вопрос, это, вероятно, более уместно.
Как я могу аутентифицировать OpenBSD в Active Directory?
Ответы:
Предисловие
Аутентификация в Active Directory с помощью Kerberos довольно проста в системах, использующих PAM, но OpenBSD этого не делает и усложняет. Из tcpdump похоже, что системы PAM просто выполняют предварительную аутентификацию, в то время как система OpenBSD bsd_auth использует весь процесс аутентификации Kerberos.
В любом случае, мне потребовалось некоторое время, чтобы понять, так что, надеюсь, некоторые краткие инструкции сэкономят ваше время.
Несколько быстрых заметок, прежде чем мы начнем:
инструкции
В этих шагах предполагается, что вы пытаетесь аутентифицировать myuser@myhost.fqdn в домене EXAMPLE.COM. Контроллером домена является pdc.EXAMPLE.COM.
Создайте учетную запись пользователя Active Directory с именем myhost (это не опечатка, эти инструкции не будут работать с учетной записью компьютера). Отключите срок действия пароля и не позволяйте пользователю менять свой собственный пароль. Установите пароль на то, что вам нравится - он скоро изменится.
Вероятно, хорошей идеей будет создать учетную запись пользователя в новом подразделении, удалить ее из группы «Пользователи домена» и добавить ее в выделенную группу. Это все дело вкуса и вашей схемы безопасности.
На pdc.EXAMPLE.COM загрузите и установите средства поддержки Windows Server (в частности, вам понадобится ktpass.exe)
На 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, а затем выгружает информацию о главном и частном ключе в файл ключей.
Надежно скопируйте c: \ temp \ myhost.keytab в myhost и удалите файл из pdc.EXAMPLE.COM
На myhost добавьте таблицу ключей AD в основную таблицу ключей:
ktutil copy /path/to/myhost.keytab /etc/kerberosV/krb5.keytab
Настройте /etc/krb5.conf. Ниже приведен необходимый минимум. Доступно много вариантов, для более подробной информации обратитесь к руководству. Это просто устанавливает максимально допустимую асимметрию часов равной 5 минутам, делает EXAMPLE.COM областью по умолчанию и сообщает Kerberos, как выполнять преобразование между областями DNS и Kerberos.
[libdefaults]
clockskew = 300
default_realm = EXAMPLE.COM[realms]
EXAMPLE.COM = {
default_domain = EXAMPLE.COM
}[domain_realm]
.EXAMPLE.COM = EXAMPLE.COM
Убедитесь, что вы можете получить билет:
# 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
Измените /etc/login.conf, чтобы использовать аутентификацию Kerberos. Точная конфигурация login.conf будет зависеть от того, как вы используете вашу систему, но чтобы перейти от простой установки к Kerberos, просто отредактируйте и прокомментируйте эту строку в классе входа по умолчанию:
:tc=auth-defaults:\
И добавить над этим:
:auth=krb5-or-pwd:\
Сначала проверяется Kerberos, если пользователь не является пользователем root. В случае сбоя Kerberos он будет использовать локальные пароли.
Добавьте пользователей, которых вы хотите аутентифицировать на этом хосте. Оставьте пароли пустыми, если вы не хотите, чтобы они могли использовать как Active Directory, так и локальные пароли (не рекомендуется).
Вы можете очистить пароли существующих пользователей «chpass <user>
» и заменить значение «Зашифрованный пароль:» звездочкой (*)
Тест SSH и Sudo. Оба должны безупречно работать с вашими учетными данными Active Directory.
Это все, что нужно сделать.
связи
Пара полезных сайтов:
login_krb5-or-pwd
туда /usr/libexec/auth
- также есть файлы конфигурации и таблица ключей, /etc/heimdal
а не их, /etc/kerberosV
как в предыдущих выпусках OpenBSD.
Обновление инструкций выше, так как несколько вещей изменились с тех пор.
В 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
сейчас.