Каковы необходимые шаги для аутентификации пользователей из Active Directory, работающей на Windows Server 2012 R2 во FreeBSD 10.0, sssd
с использованием серверной части AD с работающим Kerberos TGT?
источник
Каковы необходимые шаги для аутентификации пользователей из Active Directory, работающей на Windows Server 2012 R2 во FreeBSD 10.0, sssd
с использованием серверной части AD с работающим Kerberos TGT?
Есть несколько хитрых соображений, чтобы все работало «из коробки». В sssd
данный момент FreeBSD поддерживает только версию 1.9.6. Так что нет никакой поддержки для основных имен предприятий.
Если у вас есть домен с несоответствующими именами UPN, он не сможет войти в систему, так как аутентификация Kerberos не будет выполнена во время процесса, даже если FreeBSD поддерживает основные корпоративные имена с Kerberos, sssd
этот случай не может быть обработан.
Таким образом, в реальной версии sssd
вы ограничены тем, что основное имя пользователя находится в одном доменном имени, например:
Domain Name = example.com
NetBIOS Name = EXAMPLE
User Principal Name:
username@example.com sAMAccountName: username
Зная это, мы можем описать шаги для успешной аутентификации пользователей из AD во FreeBSD.
Создайте файл /etc/krb5.conf
со следующим содержанием:
[libdefaults]
default_realm = EXAMPLE.COM
dns_lookup_realm = true
dns_lookup_kdc = true
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = yes
Установите Samba 4.1:
$ pkg install samba41
Создайте файл /usr/local/etc/smb4.conf
со следующим содержанием:
[global]
security = ads
realm = EXAMPLE.COM
workgroup = EXAMPLE
kerberos method = secrets and keytab
client signing = yes
client use spnego = yes
log file = /var/log/samba/%m.log
Спросите у администратора билет Kerberos:
$ kinit Administrator
Затем присоединитесь к домену и создайте таблицу ключей.
$ net ads join createupn=host/server-hostname.example.com@EXAMPLE.COM -k
$ net ads keytab create -k
Установите необходимые пакеты:
$ pkg install sssd cyrus-sasl-gssapi
Отредактируйте файл, /usr/local/etc/sssd/sssd.conf
чтобы он соответствовал этим настройкам:
[sssd]
config_file_version = 2
services = nss, pam
domains = example.com
[nss]
[pam]
[domain/example.com]
# Uncomment if you need offline logins
#cache_credentials = true
id_provider = ad
auth_provider = ad
access_provider = ad
chpass_provider = ad
# Comment out if the users have the shell and home dir set on the AD side
default_shell = /bin/tcsh
fallback_homedir = /home/%u
# Uncomment and adjust if the default principal SHORTNAME$@REALM is not available
#ldap_sasl_mech = GSSAPI
#ldap_sasl_authid = SERVER-HOSTNAME$@EXAMPLE.COM
Отредактируйте файл, /etc/nsswitch.conf
чтобы он соответствовал этим настройкам:
group: files sss
passwd: files sss
Установите дополнительные пакеты для создания домашнего каталога:
$ pkg install pam_mkhomedir
Измените необходимые PAM
области, чтобы соответствовать этим настройкам:
auth sufficient /usr/local/lib/pam_sss.so
account required /usr/local/lib/pam_sss.so ignore_unknown_user
session required /usr/local/lib/pam_mkhomedir.so mode=0700
session optional /usr/local/lib/pam_sss.so
password sufficient /usr/local/lib/pam_sss.so use_authtok
$ pkg remove -f openldap-client
$ pkg install openldap-sasl-client
$ getent passwd <username>
Какой Kerberos вы используете здесь? Встроенный или security / krb5 от MIT?
При установке sssd требуется установить security / krb5, который на данный момент все еще считается экспериментальным во FreeBSD. Таким образом, этот вопрос.
Мне не повезло в получении пользователей / групп AD при выполнении команд getent. это может быть связано с тем, что имя NETBIOS отличается от имени домена -ie в моем случае, имя домена - dawnsign.com, а имя NETBIOS - DSP.
Я настроил только модуль входа в систему pam.d. Какие другие модули pam необходимо отредактировать для успешной аутентификации?
Любая дополнительная информация будет принята с благодарностью!
источник
Перекомпиляция samba4 из портов позволяет использовать аутентификацию winbind как linux даже без sssd. Просто перекомпилируйте samba4 из портов после включения sasl ldap
Это перекомпилирует samba со всей необходимой поддержкой (gssapi, ldap, kerberos), а затем отредактируйте nsswitch.conf следующим образом
источник
Привет,
Это небольшое обновление по использованию sssd v1.11.7
Если вы используете "id_provider = ad" и видите следующую ошибку в лог-файле sssd:
Вы можете использовать следующую процедуру для решения этой проблемы и обеспечения правильной работы интеграции AD. Теперь соберите sssd v1.11.7 с поддержкой Samba, необходима сборка из src sssd, поэтому она связана с libsasl2
источник
Вот мое руководство по интеграции AD через SSSD с этими версиями FreeBSD на момент написания этой статьи (6/2017)
Установка (и забавные вопросы упаковки и зависимости)
/usr/bin
, а другой -/usr/local/bin
. Поскольку кажется, что ни один из базовых системных файлов не находится в пакете, вы не можете просто удалить содержимое Heimdal KRB. Что-то, о чем нужно знать.Прямые зависимости различных пакетов (интересные deps жирным шрифтом, конфликтующие deps жирным курсивом):
net-mgmt/adcli:
net/openldap24-sasl-client
security/cyrus-sasl2-gssapi: security/cyrus-sasl2
net/openldap24-sasl-client: security/cyrus-sasl2
security/sssd: security/nss
security/sssd:
security/krb5
security/sssd: security/cyrus-sasl2
security/sssd:
net/openldap24-client
security/sssd: lang/python27
security/sssd: lang/python2
security/sssd: dns/c-ares
security/sssd: devel/tevent
security/sssd: devel/talloc
security/sssd: devel/popt
security/sssd: devel/pcre
security/sssd: devel/libunistring
security/sssd: devel/libinotify
security/sssd: devel/gettext-runtime
security/sssd: devel/ding-libs
security/sssd: devel/dbus
security/sssd: databases/tdb
security/sssd: databases/ldb
Обратные зависимости различных пакетов:
net/openldap24-sasl-client: sysutils/msktutil
net/openldap24-sasl-client: net/nss-pam-ldapd-sasl
net/openldap24-sasl-client: net-mgmt/adcli
sssd
, MIT требует Kerberos, хотя в качестве базового пакета у нас есть Heimdaladcli
хочетopenldap-sasl-client
, но другие пакеты (включая подчиненные зависимостиsssd
)openldap-client
извлекаются, что является мьютексом с клиентом sasl (по какой-то глупой причине). Это затрудняет установку даже при минимальном наборе бинарных пакетов.На момент написания статьи бинарный пакет pkg для SSSD для FreeBSD не включал поддержку AD в SSSD.
SMB
adcli
существует, но на момент написания статьи не работает.GSSAPI_MIT
cyrus-sasl-gssapi
требуется, но двоичная версия pkg не работает и имеет странные проблемы с зависимостями, которые приводят к удалению SSSD.GSSAPI_MIT
openldap-sasl-client
требуется для функциональности, но SSSD хочет использовать версию openldap, отличную от SASL.openldap-sasl-client
сGSSAPI
параметром selected (make config
) в портах.pkg remove –f openldap-client
openldap-client
без каких-либо автоматических удалений любых других пакетов (например, SSSD) и позволит установить версию SASLopenldap-sasl-client
pkg remove –f sssd
(Необязательно) Когда все работает и проверено, вы можете использовать
pkg create
для создания бинарных пакетов из четырех пакетов с включенными надлежащими параметрами и использовать их вместо построения их в портах в каждой системе. Установка бинарного аналогична процессу сборки портов:pkg install sssd-1.11.7_8.txz
pkg add
другие пакеты (не устанавливать, не добавлять), сохраняя пакет openldap для последнего.openldap-sasl-client
сделайтеpkg remove –f openldap-client
pkg add openldap-sasl-client-2.4.44.txz
pkg create
чтобы заменить зависимость отopenldap-client
с ,openldap-sasl-client
чтобы избавиться от необходимости делать это удалить / переустановить. У меня не было времени заняться этим.openldap-client
, поэтому вам также придется их исправить.Конфигурация Kerberos:
/etc/pam.d
файлов, которые мне пришлось изменить, чтобы SSSD работал с FreeBSD:/etc/pam.d/sshd:
/etc/pam.d/system:
/etc/pam.d/su:
(Отступ)
system.dist
является копией стокового/etc/pam.d/system
файла Он включен в/etc/pam.d/su
файл выше, чтобы избежать проблем с командой su.su
учетные записи AD в качестве пользователя root, поскольку после получения имени rootsu
не нужно проходить проверку подлинности, а информация об учетной записи передается через переключатель службы имен через SSSD.sudo
только из соображений безопасностиksu
и это работает для переключения с пользователя A на пользователя Bksu
(в/usr/bin
) по умолчанию SUID не установленksu
работать,chmod u+s /usr/bin/ksu
krb5
пакет установлен в/usr/local/bin
) является SUID при установке/usr/local/bin
как раньше/usr/bin
, и т. Д.ksu
запросит у пользователя пароль AD / Kerberos целевого пользователяpasswd
не удастся изменить пароль AD / Kerberos, даже если вы добавитеpam_sss.so
PAM-файл passwd.passwd
Двоичная поддерживает только локальную и NIS Использованиеkpasswd
изменить пароль на AD / сервер Kerberos (s).Переключатель службы имен:
/etc/nsswitch.conf
Файл должен быть настроен на использование SSS сервиса для паролей и групп. Пример:group: files sss
passwd: files sss
Присоединение к домену:
adcli
kinit
перед использованием, он делает это для вас на основе предоставленных кредитов.adcli join -D mydomain.net -U Administrator--show-details –v
adcli join –H adclient.mydomain.net -D mydomain.net -U Administrator --show-details -v
net
утилитаnet
Утилита является частью пакета Samba.smb.conf
файле конфигурации, что делает его более сложным и неудобным в использовании, особенно неинтерактивно.kinit
. Опять же, это более неудобно и усложняет неинтерактивное использование в скрипте, так как вместо одного есть два шага.Соображения SSHD:
/etc/ssh/sshd_config
GSSAPIAuthentication yes
PasswordAuthentication yes
ChallengeResponseAuthentication yes
PasswordAuthentication no
при использовании этой опции./bin/passwd
, который не поддерживает ничего, кроме NIS и локального файла passwd.GSSAPICleanupCredentials yes
kdestroy
при выходеGSSAPIStrictAcceptorCheck no
host/<FQDN>@REALM
для связи с KDC, но иногда ошибается (например, если имя хоста не соответствует DNS-имени сервера SSH). Эта опция позволяет SSHD использовать любого участника в/etc/krb5.keytab
файле, который включает в себяhost/<FQDN>@REALM
ssh -K <ip>
работали без запроса пароля (при условии, что вы уже выполнили «kinit», конечно).источник