Pull to refresh

Comments 32

Скажите, а с какой практической целью вы добавляете Linux машины в AD?
Групповых политик нет — т.е. управлять данной машиной на ровне с Windows не получится.
Аутентификация на самой машине — ну Ok. Можете ли вы прозрачно аутентифицироваться на других машинах (на самом деле не знаю и хочу узнать)? Имеете ли доступ к DFS?
На других… Если вы имеете в виду Linux машины которые в домене, то да. Можно ходить прозрачно, но надо покрутить параметр GSSAPI.
У нас на работе применяют для того, чтобы не вводить пароль для расшаренных папок. Ссылки вида smb://filesrap при наличии у пользователя необходимых прав открываются сразу.
Да, основная цель — аутентификация пользователей на машине. При логине пользователя, в отличии от Windows, для него не генерируется Kerberos tiket, и я не знаю, есть ли дополнительный механизм для этого, поэтому у пользователя прозрачного доступа к общим файловым ресурсам домена не будет. Возможно, такой доступ можно реализовать с помощью дополнительной настройки, но так как задачи такой не было, я данным вопросом не занимался.
PS Проще прощения, не обновил страницу — не видел, что выше уже ответили.
Я использовал доменную аутентификацию через pam_sssd для авторизации пользователей на локальном RADIUS-сервере. Машина в домене ходила под своей учеткой в домен, чтобы проверять атрибуты пользователей.
Как все интуитивно-понятно и это при том, что в SUSE — ввод машины в домен существует «исскаропки» уже лет 10-15.
(у вас в начале текста contoso.com потом contoso.domain)
(у вас в начале текста contoso.com потом contoso.domain)

Спасибо, исправил.
Для того что бы sudo работало корректно нужно добавить
[sssd]
services = nss, pam, sudo

у меня на CentOS так
Про CentOS не могу комментировать — не знаю, но в Ubuntu c 16.04 и выше корректно работает без указания sudo.
Название не совсем корректное. Для rhel based дистрибутивов все делается куда проще, через authconfig.
Не имел опыта работы с rhel based дистрибутивами, не могу ничего сказать. Исходя из того, что sssd — это продукт red hat, то вполне логично, что у них есть дополнительный инструмент для настройки.
… вместо которого RedHat говорит использовать realmd
Редактируем файл /etc/sudoers


Лучше добавить — «используя visudo»
А еще лучше создать новый файл в /etc/sudoers.d/ и ничего не править кроме этого файла
Файлы в /etc/sudoers.d/ правятся по тем же правилам, что и /etc/sudoers:

visudo -f /etc/sudoers.d/ваш_файл


Просто так править файлы в /etc/sudoers.d/ не стоит
А я и не говорил о правке существующих файлов — только о создании новых
Спасибо за интересное описание.
Меня сейчас интересует авторизация с использованием AD учетных данных в CentOS 6.10. Так как там пока отсутствует realmd.
Возможна ли замена heimdal-client на пакет krb5-workstation?
Точно не могу сказать, не работал с CentOS. Судя по описанию krb5-workstation, основной функционал в нем реализован (kinit, klist, kdestroy, kpasswd), так что возможно будет работать — нужно пробовать.
Приветствую. Помогите пожалуйста с проблемой по этой статье, делаю так:
msktutil -c -b 'CN=Computers,DC=DOM,DC=local' -s HOST/testhost.DOM.local -k /etc/sssd/test.keytab --computer-name TESTHOST --upn TESTHOST$ --server domserv.dom.local --user-creds-only
Выдает ошибку:
Error: ldap_add_ext_s failed (No such object)
additional info: 0000208D: NameErr: DSID-03100238, problem 2001 (NO_OBJECT), data 0, best match of:
'DC=DOM,DC=local'
Но если машину через самбу ввести в домен, то команда проходит нормально. Что я делаю не так?
Системы: Centos 7.5, Ubuntu 1810 (AD — Win2012R2)
Судя по логу, если я не ошибаюсь, вы пытаетесь добавить машину в несуществующий OU — попробуйте указать только CN=Computers, это стандартный OU для компьютеров в Windows AD.
Спасибо! Да, так и есть, нужно было указать только CN=Computers, а не целиком путь, но и совсем без указания BASE работает.
Да, это значение данного параметра по умолчанию. Если вам надо сразу поместить ваш хост в определенный OU, можно указать его. Например, указание '-b OU = Unix', для компьютера с именем SERVER, в домене example.com создаст учетную запись компьютера по следующему пути LDAP: CN = SERVER, OU = Unix, DC = EXAMPLE, DC = COM.
Эту опцию также можно определить, задав для переменной среды MSKTUTIL_LDAP_BASE требуемое вам значение.
есть способ проще (использует, например, VMware для vSphere) — PowerBroker Identity Services (PBIS)
очень удобная утилита. GSSAPI — SMB все прикручивается практически нативно…
На счет PBIS ничего сказать не могу, не пробовал, но вот на счет GSSAPI — SMB:
Так тут GSSAPI как раз используется. Есть одно немаловажное различие: SMB не говорит в чем у него проблема при попытке ввода в домен — просто с ошибкой вываливается, а msktutil при --verbose говорит. Например:
modify_ext: ldap_modify_ext_s failed (Insufficient access)
ldap modification of CN=…
failed while trying to change msDs-supportedEncryptionTypes to 28.
Error was: Insufficient access

А без этого старые линухи, например RHEL 6.5 или 6.9 не могут нормально подключиться к домену, а SMB говорит просто:
$ net ads join -U admin.account
Failed to join domain: failed to lookup DC info for domain '....' over rpc: NT_STATUS_CONNECTION_RESET
Или какие-нибудь другие ошибки RPC, но не конкретно что не нравится (пробовал дебаги включать — бес толку).
Подскажите, можно ли отправлять в AD DNS один основной IP, в случае если на сервере несколько IP?
Например, если на интерфейсе 2 IP — основной и кластерный. Вот чтобы отправлял основоной в DNS.
Не очень понятно, если у вас два IP на одном интерфейсе, то значит вы настроили интерфейс в ручную, нет? Тогда и в DNS хост добавляется в ручную — авторегистрация хоста в dns это функция dhcp клиента.
Кластерный IP-адрес назначается с помощью keepalived, соответственно он произвольно может переназначаться одному или другому хосту.
Более подробно о динамическом обновлении DNS-записей можно почитать по ссылке: docs.pagure.org/SSSD.sssd/design_pages/active_directory_dns_updates.html
Так что вопрос остаётся открытым.
Думаю вам подходит параметр:
dyndns_iface (string) — instead of updating the DNS with the address used to connect to LDAP, which is the default, use all addresses configured on a particular interface.
Но проблема в том, что у вас на одном интерфейсе 2 IP?
Попробуйте поднять macvlan — должны получить два интерфейса с разными маками и станет возможным повесить каждый IP на свой интерфейс.
У меня с realmd не получилось сделать SSO по SSH, авторизация работает но по паролю. Без ввода пароля работает только через net…
Если посмотреть внимательней на krb5.keytab, то видно что не все нужные SPN создаются:
root@ubuntu-ad2:~# klist -k -e
Keytab name: FILE:/etc/krb5.keytab
KVNO Principal
— — 4 UBUNTU-AD2$@MSSUP.LOCAL (des-cbc-crc)
4 UBUNTU-AD2$@MSSUP.LOCAL (des-cbc-md5)
4 UBUNTU-AD2$@MSSUP.LOCAL (arcfour-hmac)
4 UBUNTU-AD2$@MSSUP.LOCAL (aes128-cts-hmac-sha1-96)
4 UBUNTU-AD2$@MSSUP.LOCAL (aes256-cts-hmac-sha1-96)
4 host/UBUNTU-AD2@MSSUP.LOCAL (des-cbc-crc)
4 host/UBUNTU-AD2@MSSUP.LOCAL (des-cbc-md5)
4 host/UBUNTU-AD2@MSSUP.LOCAL (arcfour-hmac)
4 host/UBUNTU-AD2@MSSUP.LOCAL (aes128-cts-hmac-sha1-96)
4 host/UBUNTU-AD2@MSSUP.LOCAL (aes256-cts-hmac-sha1-96)
4 host/ubuntu-ad2@MSSUP.LOCAL (des-cbc-crc)
4 host/ubuntu-ad2@MSSUP.LOCAL (des-cbc-md5)
4 host/ubuntu-ad2@MSSUP.LOCAL (arcfour-hmac)
4 host/ubuntu-ad2@MSSUP.LOCAL (aes128-cts-hmac-sha1-96)
4 host/ubuntu-ad2@MSSUP.LOCAL (aes256-cts-hmac-sha1-96)
4 RestrictedKrbHost/UBUNTU-AD2@MSSUP.LOCAL (des-cbc-crc)
4 RestrictedKrbHost/UBUNTU-AD2@MSSUP.LOCAL (des-cbc-md5)
4 RestrictedKrbHost/UBUNTU-AD2@MSSUP.LOCAL (arcfour-hmac)
4 RestrictedKrbHost/UBUNTU-AD2@MSSUP.LOCAL (aes128-cts-hmac-sha1-96)
4 RestrictedKrbHost/UBUNTU-AD2@MSSUP.LOCAL (aes256-cts-hmac-sha1-96)
4 RestrictedKrbHost/ubuntu-ad2@MSSUP.LOCAL (des-cbc-crc)
4 RestrictedKrbHost/ubuntu-ad2@MSSUP.LOCAL (des-cbc-md5)
4 RestrictedKrbHost/ubuntu-ad2@MSSUP.LOCAL (arcfour-hmac)
4 RestrictedKrbHost/ubuntu-ad2@MSSUP.LOCAL (aes128-cts-hmac-sha1-96)
4 RestrictedKrbHost/ubuntu-ad2@MSSUP.LOCAL (aes256-cts-hmac-sha1-96)

А вот так работает:
root@ubuntu-ad2:~# klist -k
Keytab name: FILE:/etc/krb5.keytab
KVNO Principal
— — 3 host/ubuntu-ad2.mssup.local@MSSUP.LOCAL
3 host/UBUNTU-AD2@MSSUP.LOCAL
3 host/ubuntu-ad2.mssup.local@MSSUP.LOCAL
3 host/UBUNTU-AD2@MSSUP.LOCAL
3 host/ubuntu-ad2.mssup.local@MSSUP.LOCAL
3 host/UBUNTU-AD2@MSSUP.LOCAL
3 host/ubuntu-ad2.mssup.local@MSSUP.LOCAL
3 host/UBUNTU-AD2@MSSUP.LOCAL
3 host/ubuntu-ad2.mssup.local@MSSUP.LOCAL
3 host/UBUNTU-AD2@MSSUP.LOCAL
3 UBUNTU-AD2$@MSSUP.LOCAL
3 UBUNTU-AD2$@MSSUP.LOCAL
3 UBUNTU-AD2$@MSSUP.LOCAL
3 UBUNTU-AD2$@MSSUP.LOCAL
3 UBUNTU-AD2$@MSSUP.LOCAL

simple_allow_groups = users #каким группам разрешено логиниться, через запятую. Есть ограничение — названия групп должны быть с маленькой буквы.

Это не совсем так…
Есть специальный параметр, я бы рекомендовал его явно ставить в False:
case_sensitive (string)
Treat user and group names as case sensitive. At the moment, this
option is not supported in the local provider. Possible option
values are:

True
Case sensitive. This value is invalid for AD provider.

False
Case insensitive.

Preserving
Same as False (case insensitive), but does not lowercase names
in the result of NSS operations. Note that name aliases (and in
case of services also protocol names) are still lowercased in
the output.

Default: True (False for AD provider)
Sign up to leave a comment.

Articles