У меня много проблем с FreeBSD 10.3
Я считаю, что двоичные пакеты бесполезны. Мне пришлось построить почти все, чтобы все «работало». Мне нравится использовать инструмент adcli для присоединения к домену (НАМНОГО приятнее, чем самба). Но двоичная версия в пакете не работает. Построение его из портов со всеми включенными очевидными вещами заставляет его работать.
На данный момент он у меня до такой степени, что я могу успешно выполнить "getent", но, что бы я ни пытался, он не аутентифицирует мой Счет. SSH, sudo, даже запуск входа в систему напрямую, и он ведет себя так, как будто у меня неверный пароль.
Мне интересно, нужно ли мне использовать пакет heimdal krb вместо MIT?
Вот мои соответствующие конфигурации:
krb5.conf:
[libdefaults]
default_realm = MYDOMAIN-SR.NET
forwardable = true
[realms]
MYDOMAIN-SR.NET = {
admin_server = ad.mydomain-sr.net
kdc = ad.mydomain-sr.net
}
[domain_realm]
mydomain.net = MYDOMAIN-SR.NET
.mydomain.net = MYDOMAIN-SR.NET
MYDOMAIN.net = MYDOMAIN-SR.NET
.MYDOMAIN.net = MYDOMAIN-SR.NET
nsswitch.conf:
#
# nsswitch.conf(5) - name service switch configuration file
# $FreeBSD: releng/10.3/etc/nsswitch.conf 224765 2011-08-10 20:52:02Z dougb $
#
#group: compat
group: files sss
#group_compat: nis
hosts: files dns
networks: files
#passwd: compat
passwd: files sss
#passwd_compat: nis
shells: files
services: compat
services_compat: nis
protocols: files
rpc: files
sssd.conf:
[sssd]
config_file_version = 2
#domains = mydomain-sr.net
domains = MYDOMAIN-SR.NET
services = nss, pam, pac
fallback_homedir = /home/%u
debug_level = 9
[pam]
pam_verbosity = 3
[domain/MYDOMAIN-SR.NET]
id_provider = ad
access_provider = ad
auth_provider = ad
chpass_provider = ad
ldap_id_mapping = False
#cache_credentials = true
cache_credentials = false
ad_server = ad.mydomain-sr.net
override_shell = /bin/tcsh
#ldap_sasl_canonicalize = false
#krb5_canonicalize = false
(Скопировано из другого вопроса. Это мои заметки / руководство о том, как все это работает на большом клиенте с существующей инфраструктурой AD)
Установка (и забавная упаковка и проблемы с зависимостями)
/ usr / bin
, а другой в / usr / local / bin
. Поскольку ни одна из базовых
системные файлы, кажется, находятся в пакете, вы не можете просто удалить
Хеймдаль KRB материал. Есть кое-что, о чем следует знать. Прямые зависимости различных пакетов (интересные зависимости в жирным шрифтом, конфликтующие значения выделены жирным курсивом):
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
безопасность / sssd:
net / openldap24-client
security / sssd: lang / python27
security / sssd: lang / python2
security / sssd: dns / c-ares
security / sssd: devel / tevent
безопасность / sssd: devel / talloc
security / sssd: devel / popt
security / sssd: devel / pcre
security / sssd: devel / libunistring
security / sssd: devel / libinotify
безопасность / sssd: devel / gettext-runtime
безопасность / sssd: devel / ding-libs
безопасность / sssd: devel / dbus
безопасность / sssd: базы данных / tdb
безопасность / 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, хотя у нас есть Heimdal в качестве базового пакета adcli
хочет openldap-sasl-client
, но другие пакеты (включая подчиненные зависимости sssd
) втягивают openldap-client
, который является мьютексом с клиентом sasl ( по какой-то глупой причине). Это делает установку немного сложной, даже с минимальным набором двоичных пакетов. На момент написания этой статьи двоичный пакет для 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
( make config
) в портах. pkg remove –f openldap-client
openldap-client
, не выполняя никаких автоудалений. любые другие пакеты (например, SSSD) и разрешить установку версии SASL openldap-sasl-client
pkg remove –f sssd
(Необязательно) После того, как все будет работать и проверено, вы можете использовать pkg create
для создания двоичных пакетов из четырех пакетов с соответствующими включенными опциями и использовать их вместо того, чтобы создавать их в портах на каждом система. Установка двоичного файла выполняется аналогично процессу сборки портов:
pkg install sssd-1.11.7_8.txz
pkg добавить
другие пакеты (не устанавливать, добавить), сохраняя пакет 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:
[libdefaults] default_realm = MYDOMAIN.NET forwardable = true # Normally all you need in an AD environment, since DNS SRV records # will identify the AD/KRB servers/services. Comment out if you # want to manually point to your AD server dns_lookup_kdc = true [realms] MYDOMAIN.NET = { # If you're manually pointing to a different AD server than what's in DNS # admin_server = adserver.mydomain.net # kdc = adserver.mydomain.net } [domain_realm] mydomain.net = MYDOMAIN.NET .mydomain.net = MYDOMAIN.NET
[sssd] config_file_version = 2 domains = MYDOMAIN.NET services = nss, pam, pac fallback_homedir = /home/%u [domain/MYDOMAIN.NET] id_provider = ad access_provider = ad auth_provider = ad chpass_provider = ad # use AD POSIX attributes, comment out if you are using automatically generated # UIDs and GIDs. ldap_id_mapping = False cache_credentials = true ad_server = adserver.mydomain.net # if you don't have bash, or whatever is in the AD account's loginShell # attribute installed override_shell = /bin/tcsh
/etc/pam.d
, которые мне пришлось изменить, чтобы SSSD работал с FreeBSD: /etc/pam.d/sshd:
# # $FreeBSD: releng/11.0/etc/pam.d/sshd 197769 2009-10-05 09:28:54Z des $ # # PAM configuration for the "sshd" service # # auth auth sufficient pam_opie.so no_warn no_fake_prompts auth requisite pam_opieaccess.so no_warn allow_local #auth sufficient pam_krb5.so no_warn try_first_pass #auth sufficient pam_ssh.so no_warn try_first_pass auth sufficient pam_unix.so no_warn try_first_pass nullok auth sufficient pam_sss.so use_first_pass auth required pam_unix.so no_warn use_first_pass # account account required pam_nologin.so #account required pam_krb5.so account required pam_login_access.so account required pam_unix.so account sufficient pam_sss.so # session #session optional pam_ssh.so want_agent session optional pam_sss.so session required pam_mkhomedir.so mode=0700 session required pam_permit.so # password #password sufficient pam_krb5.so no_warn try_first_pass #password sufficient pam_unix.so try_first_pass use_authtok nullok password sufficient pam_unix.so try_first_pass use_authtok password sufficient pam_sss.so use_authtok
/etc/pam.d/system:
# # $FreeBSD: releng/11.0/etc/pam.d/system 197769 2009-10-05 09:28:54Z des $ # # System-wide defaults # # auth auth sufficient pam_opie.so no_warn no_fake_prompts auth requisite pam_opieaccess.so no_warn allow_local #auth sufficient pam_krb5.so no_warn try_first_pass #auth sufficient pam_ssh.so no_warn try_first_pass #auth required pam_unix.so no_warn try_first_pass nullok auth sufficient pam_unix.so no_warn try_first_pass auth sufficient pam_sss.so use_first_pass auth required pam_deny.so # account #account required pam_krb5.so account required pam_login_access.so account required pam_unix.so account sufficient pam_sss.so # session #session optional pam_ssh.so want_agent session required pam_lastlog.so no_fail session optional pam_sss.so session required pam_mkhomedir.so mode=0700 # password #password sufficient pam_krb5.so no_warn try_first_pass #password required pam_unix.so no_warn try_first_pass password sufficient pam_unix.so no_warn try_first_pass nullok use_authtok password sufficient pam_sss.so use_authtok #password required pam_deny.so
/etc/pam.d/su:
# # $FreeBSD: releng/11.0/etc/pam.d/su 219663 2011-03-15 10:13:35Z des $ # # PAM configuration for the "su" service # # auth auth sufficient pam_rootok.so no_warn auth sufficient pam_self.so no_warn auth requisite pam_group.so no_warn group=wheel root_only fail_safe ruser auth include system.dist # account account include system.dist # session session required pam_permit.so
(indent)
system.dist
- это копия стандартного файла /etc/pam.d/system
. Он включен в файл /etc/pam.d/su
выше, чтобы предотвратить проблемы с командой su. su
для учетных записей AD как root, поскольку после получения root su
не требуется аутентификация, а информация об учетной записи передается через переключатель службы имен через SSSD. sudo
только по соображениям безопасности ksu
и это работает для переключения с пользователя A на пользователя B
ksu
(в / 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. Переключатель службы имен:
Файл /etc/nsswitch.conf
должен быть настроен для использования службы sss для passwd и групп. Пример:
group: files sss
passwd: files sss
Присоединение к домену:
adcli
kinit
перед использованием, он делает это за вас на основе предоставленных кредитов.
adcli join -D mydomain.net -U Администратор - show-details –v
adcli join –H adclient.mydomain.net -D mydomain.net -U Администратор --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 нет
host / @REALM
для общения с KDC, но иногда ошибается (например, если имя хоста не совпадает с DNS-именем SSH-сервера) . Эта опция позволяет SSHD использовать любой принципал из файла /etc/krb5.keytab
, который включает правильный host / @REALM
ssh -K
работал без запроса пароля (при условии, что вы выполнили команду kinit 'уже, конечно).