Решено: Проблемы с авторизацией в AD через LDAP (Решено.)

openSUSE, SUSE Linux Enterprise

Модератор: Модераторы разделов

UTiM
Сообщения: 180
ОС: OpenSuse

Решено: Проблемы с авторизацией в AD через LDAP

Сообщение UTiM »

В связи с "поломкой" авторизации через winbind (см. здесь) возникла идея авторизоваться в AD через LDAP. Мануалы "курил" здесь и здесь (см пункт 11.3). В результате - клиент и обозреватель LDAP содержимое LDAP AD успешно видят, однако не "getent passwd" ни обозреватель пользователей в Yast пользователей из AD невидит (и не авторизует - соответственно). После перенастройки соединения на OpenLDAP - все успешно работает. Так что скорее всего pam тут не причем. ldap.conf прописывал и как в мануалах и по заготовке для SFU3,5 внутри. Пробовал на OpenSUSE 10.2 и 10.3

Кто настраивал, поделитесь опытом.

И главное - работает ли это в SUSE вообще?
Спасибо сказали:
Loky
Сообщения: 1651
Статус: Инженер-системотехник
ОС: Netware, OES, SLED
Контактная информация:

Re: Решено: Проблемы с авторизацией в AD через LDAP

Сообщение Loky »

UTiM писал(а):
09.11.2007 14:46
В связи с "поломкой" авторизации через winbind (см. здесь) возникла идея авторизоваться в AD через LDAP. Мануалы "курил" здесь и здесь (см пункт 11.3). В результате - клиент и обозреватель LDAP содержимое LDAP AD успешно видят, однако не "getent passwd" ни обозреватель пользователей в Yast пользователей из AD невидит (и не авторизует - соответственно). После перенастройки соединения на OpenLDAP - все успешно работает. Так что скорее всего pam тут не причем. ldap.conf прописывал и как в мануалах и по заготовке для SFU3,5 внутри. Пробовал на OpenSUSE 10.2 и 10.3

Кто настраивал, поделитесь опытом.

И главное - работает ли это в SUSE вообще?

Вообще работает, только не через LDAP. MAD не является LDAP-совместимым каталогом, отсюда всё и вытекает.
MOSQIT: Novell/Axigen/Syncsort/Moonwalk/CAStor
Спасибо сказали:
UTiM
Сообщения: 180
ОС: OpenSuse

Re: Решено: Проблемы с авторизацией в AD через LDAP

Сообщение UTiM »

Loky писал(а):
09.11.2007 15:07
Вообще работает, только не через LDAP. MAD не является LDAP-совместимым каталогом, отсюда всё и вытекает.


Что не является - это понятно. Для этого и ставился на виндовый сервер SFU3,5 (который добавляет недостающие поля в AD) и прописывались маппинги в ldap.conf (что-бы "совместить").
Возможно всетаки дело в pam_ldap, например здесь пишут, что "не все pam_ldap совместимы с AD". Вообще информация из AD LDAP например с помощью ldapsearch цепляется замечательно (например путь к подключаемому сетевому диску), задача теперь "зацепить" самих пользователей. Вот здесь человек примерно то-же сделать пытается. Мне главное знать - у кого нибудь такое работает?
Спасибо сказали:
Loky
Сообщения: 1651
Статус: Инженер-системотехник
ОС: Netware, OES, SLED
Контактная информация:

Re: Решено: Проблемы с авторизацией в AD через LDAP

Сообщение Loky »

UTiM писал(а):
09.11.2007 15:45
Loky писал(а):
09.11.2007 15:07
Вообще работает, только не через LDAP. MAD не является LDAP-совместимым каталогом, отсюда всё и вытекает.


Что не является - это понятно. Для этого и ставился на виндовый сервер SFU3,5 (который добавляет недостающие поля в AD) и прописывались маппинги в ldap.conf (что-бы "совместить").
Возможно всетаки дело в pam_ldap, например здесь пишут, что "не все pam_ldap совместимы с AD". Вообще информация из AD LDAP например с помощью ldapsearch цепляется замечательно (например путь подключаемому сетевому диску), задача теперь "зацепить" самих пользователей. Вот здесь человек примерно то-же сделать пытается. Мне главное знать - у кого нибудь такое работает?

Смотрю тема популярная, может кто-нить из успешно реализовавших сделает подробную хаутушку?
Кста, вопрос, в опенсусе есть вариант регистрации пользователей через Windows Domain, кто-нить пробовал? В SLED это дело работает, на опенсусе не проверял.
MOSQIT: Novell/Axigen/Syncsort/Moonwalk/CAStor
Спасибо сказали:
UTiM
Сообщения: 180
ОС: OpenSuse

Re: Решено: Проблемы с авторизацией в AD через LDAP

Сообщение UTiM »

Loky писал(а):
09.11.2007 16:21
Кста, вопрос, в опенсусе есть вариант регистрации пользователей через Windows Domain, кто-нить пробовал? В SLED это дело работает, на опенсусе не проверял.

Это который при установке предлагается? Пробовал на 10.2 Попадаешь в плагин Yast "Регестрация в домене виндовс" (через samba-winbind), при этом настроить kerberos система предложить забывает - соответственно ничего и не работает (вернее работает, но уже после настройки kerberos). А поскольку winbind в SLED10.1, SLES10.1 -поломан (как я писал здесь - там повидимому самбу взяли из поздних обновлений 10.2) - то и результат -"никакой" :(
Спасибо сказали:
Loky
Сообщения: 1651
Статус: Инженер-системотехник
ОС: Netware, OES, SLED
Контактная информация:

Re: Решено: Проблемы с авторизацией в AD через LDAP

Сообщение Loky »

UTiM писал(а):
09.11.2007 16:41
Loky писал(а):
09.11.2007 16:21
Кста, вопрос, в опенсусе есть вариант регистрации пользователей через Windows Domain, кто-нить пробовал? В SLED это дело работает, на опенсусе не проверял.

Это который при установке предлагается? Пробовал на 10.2 Попадаешь в плагин Yast "Регестрация в домене виндовс" (через samba-winbind), при этом настроить kerberos система предложить забывает - соответственно ничего и не работает. А поскольку winbind в SLED10.1, SLES10.1 -поломан (как я писал здесь - там повидимому самбу взяли из поздних обновлений 10.2) - то и результат -"никакой" :(

Если английским владеешь то зарегистрируйся bugzilla.novell.com, напиши разработчикам в чем они неправы. А вообще описанные тобой симптомы весьма странны, в SLED10SP1 вход в домен винды железно работает.
MOSQIT: Novell/Axigen/Syncsort/Moonwalk/CAStor
Спасибо сказали:
qqq1971
Сообщения: 157

Re: Решено: Проблемы с авторизацией в AD через LDAP

Сообщение qqq1971 »

Может быть я чего-то не понял: вопрос в том, чтобы
1) пользователи домена (зарегистрированные в Win AD) могли заходить в suse
2) в управление пользователями Yast-а не видно пользователей домена
3) из Yast-а нельзя завести пользователя в AD
4) не получается управлять пользователями в случае suse как ADS
?

1) в 10.3 работает на ура (при установке выбрал управление пользователями win domain).
2) не работает (у меня)
3) не работает (у меня)
4) не копенгаген
Спасибо сказали:
UTiM
Сообщения: 180
ОС: OpenSuse

Re: Решено: Проблемы с авторизацией в AD через LDAP

Сообщение UTiM »

Loky писал(а):
09.11.2007 16:55
Если английским владеешь то зарегистрируйся bugzilla.novell.com, напиши разработчикам в чем они неправы. А вообще описанные тобой симптомы весьма странны, в SLED10SP1 вход в домен винды железно работает.

Только что в SLED10SP1 откатил самбу на состояние поставки (3.0.24-2.23), вышел из домена и попытался опять присоединится (через Yast или "ручками"). Результат:

Код: Выделить всё

utils/net_ads.c:ads_statup_int(285)
Как и в 10.2 после обновления. Так, что у меня работает только со старой самбой 3.0.23d-6 и возможно с более свежей, чем 3.0.24-2.23 (как в 10.3 - но там свои тараканы!)

Поскольку эти игры надоели, то и смотрю в сторону AD через LDAP. Кроме того, там есть свои "вкусности".... если получится..
Спасибо сказали:
UTiM
Сообщения: 180
ОС: OpenSuse

Re: Решено: Проблемы с авторизацией в AD через LDAP

Сообщение UTiM »

qqq1971 писал(а):
09.11.2007 17:36
Может быть я чего-то не понял: вопрос в том, чтобы
1) пользователи домена (зарегистрированные в Win AD) могли заходить в suse
2) в управление пользователями Yast-а не видно пользователей домена
3) из Yast-а нельзя завести пользователя в AD
4) не получается управлять пользователями в случае suse как ADS
?

1) в 10.3 работает на ура (при установке выбрал управление пользователями win domain).
2) не работает (у меня)
3) не работает (у меня)
4) не копенгаген


Это все samba+winbind, поэтому:
п.1 - работает не всегда, вот например.
п.2 - Пользователи в Yast будут видны только в случае авторизации в AD через LDAP
п.3 - Скорее всего не получится при любом способе авторизации, да и ненужно и опасно через "неродной" клиент.
п.4 - такой задачи и не стоит .
Спасибо сказали:
NiKoLa_N
Сообщения: 639

Re: Решено: Проблемы с авторизацией в AD через LDAP

Сообщение NiKoLa_N »

10.2 у меня поставлено штук 5. Все нормально вошли в домен. krb5.conf настроен ястом автоматически во всех случаях. Также, с помощью яст, выбран эталонный ntp-сервер и настроен на синнхронизацию при старте системы.
Кстати, с ntpd в линуксе есть интересная фишка - если виндовый сервер не является эталонным (читай не синхронизируется через тырнет), то линукс, с большой степенью вероятности, не будет синхзронизировать время с вендой.
ЗЫ: Версии самбы - коробочная и обновленная 3.0.26 (вроде)

10.1 - 8 штук. Ввожу в домен, перегружаю, вхожу под рутом, еще раз ввожу в домен. прописываю скрипт в crontab содержания: net time set -S ip_контроллера_домена на выполнение раз в минуту.

все работает отлично.

1. Почти все зависит от кривизны настройки виндового домена.
2. По-внимательнее с синхронизацией времени
3. Для AD в smb.conf security = ads
Спасибо сказали:
qqq1971
Сообщения: 157

Re: Решено: Проблемы с авторизацией в AD через LDAP

Сообщение qqq1971 »

Аналогично для 10.3. Все делал через Yast. Автоматом поставились дополнительные пакеты (какие не помню). Одна проблема была. У нас домен имеет как бы два имени - XXX.YYYY.RU и XXXYYYY (сужу со своей дилетантской точки зрения). При присоединении к домену через Yast нужно указывать XXX.YYYY.RU, на XXXYYYY почему-то ругается нехорошо. В 10.2, наоборот, указывал XXXYYYY. А при входе в kdm показывает XXXYYYY.

Кстати, AD у нас на win 2003, а у меня в smb.conf security = domain. С ads были какие-то проблемы.

Хотя, поставил ads, перегрузил - тоже все работает.

Обязательно нужно настроить синхронизацию времени. В 10.2 у меня были проблемы, когда вдруг из списка доступных доменов в kdm все пропадало кроме local. Лечилось настройкой синхронизации времени, кажется (это было оч. давно).

Еще один момент - сетевые сервисы не успевают за запуском kdm. Т. е. мне, например, нужно подождать пока все сервисы не стартуют. Только потом можно логиниться.

~> rpm -qa | grep samba
kdebase3-samba-3.5.7-87
samba-winbind-3.0.26a-3
samba-3.0.26a-3
yast2-samba-client-2.15.11-33
samba-client-3.0.26a-3
yast2-samba-server-2.15.7-57

~> rpm -qa | grep krb
krb5-client-1.6.2-22
krb5-1.6.2-22
krb5-devel-1.6.2-22

Если нужны мои конфиги - выложу. Только какие конкретно?
Спасибо сказали:
UTiM
Сообщения: 180
ОС: OpenSuse

Re: Решено: Проблемы с авторизацией в AD через LDAP

Сообщение UTiM »

NiKoLa_N писал(а):
10.11.2007 11:03
10.2 у меня поставлено штук 5. Все нормально вошли в домен. krb5.conf настроен ястом автоматически во всех случаях. Также, с помощью яст, выбран эталонный ntp-сервер и настроен на синнхронизацию при старте системы.
Кстати, с ntpd в линуксе есть интересная фишка - если виндовый сервер не является эталонным (читай не синхронизируется через тырнет), то линукс, с большой степенью вероятности, не будет синхзронизировать время с вендой.
ЗЫ: Версии самбы - коробочная и обновленная 3.0.26 (вроде)

10.1 - 8 штук. Ввожу в домен, перегружаю, вхожу под рутом, еще раз ввожу в домен. прописываю скрипт в crontab содержания: net time set -S ip_контроллера_домена на выполнение раз в минуту.

все работает отлично.

1. Почти все зависит от кривизны настройки виндового домена.
2. По-внимательнее с синхронизацией времени
3. Для AD в smb.conf security = ads


С входом в домен через samba-winbind-kerberos и их настройкой в 10.1 и 10.2 нет проблем. При определенном подкручивании все работает.

Вопрос был в настройке входа через LDAP!!!!
Спасибо сказали:
UTiM
Сообщения: 180
ОС: OpenSuse

Re: Решено: Проблемы с авторизацией в AD через LDAP

Сообщение UTiM »

qqq1971 писал(а):
10.11.2007 11:24
Еще один момент - сетевые сервисы не успевают за запуском kdm. Т. е. мне, например, нужно подождать пока все сервисы не стартуют. Только потом можно логиниться.



Вот и я в посте по 10.3 здесь примерно о том-же (пытался init 3... и т.п.). Иногда windbind стартует нормально. Но происходит это "случайным" образом. Так работать нельзя!

Ребята, с настройками winbind у меня нет проблем. Здесь уже все изучено. Просто, если планируется ставить Linux не только себе, а всей конторе - механизм авторизации должен работать "как часы", а не зависеть от "фазы луны". Поэтому и ищем "новые пути"
Спасибо сказали:
UTiM
Сообщения: 180
ОС: OpenSuse

Re: Решено: Проблемы с авторизацией в AD через LDAP

Сообщение UTiM »

Ну что, ВСЕ РАБОТАЕТ!


Авторизуется и через LDAP и как бонус (если запустить соответствующий сервис на винде) через NIS

"getent passwd" пользователей видит. Еще бы в оснастке Yast "управление пользователями" увидеть пользователей AD LDAP (также как оснастка видит NIS или OpenLDAP) но это уже придирки...

Надо еще поиграться с правами и группами, выбрать как лучше цеплять сетевые ресурсы (самбой или NFS) учитывая что серваки есть и те и другие, а SFU3,5 позволяет делать как NFS шары на винде, так и шлюзовать NFS в микрософтовскую шару.

Короче. Если нужны подробности и конфиги, чирканиете здесь - выложу.

Советы и рекомендации "знатоков" по поводу моих рассуждений с благодарностью принимаются...
Спасибо сказали:
qqq1971
Сообщения: 157

Re: Решено: Проблемы с авторизацией в AD через LDAP

Сообщение qqq1971 »

Ну что, ВСЕ РАБОТАЕТ!

Поздравляю.

Если нужны подробности и конфиги

Нужны.
Спасибо сказали:
UTiM
Сообщения: 180
ОС: OpenSuse

Re: Решено: Проблемы с авторизацией в AD через LDAP

Сообщение UTiM »

Итак, мой рецепт.

Качаем SFU3.5 (www.microsoft.com/windows/sfu). Бесплатно. Размер примерно 230 Мб.

На сервере Windows:
  • Инсталлируем regsvr32 с:\WINNT\system32\schmmgmt.dll (необходимость не проверял, но точно не помешает ;) )
  • Ставим SFU (Можно по умолчанию, а можно только NIS. Имя домена NIS оставляем пустым - система его задаст автоматом в соотв. с кратким именем домена AD). Перезагруз.
  • Выбираем группы, которые будут видны в Linux. Для этого в свойствах группы на новой вкладке UNIX Attributes выбираем из списка NIS Domain (он там один)
  • Выбираем пользователей, котрым хотим разрешить логинится в LINUX. Для этого также в UNIX Attributes выбираем из списка NIS Domain . (Эта операция добавляет в схему LDAP нужные атрибуты). Выбираем Primay Group.
  • Если планируем использовать NIS, то тоже самое проделываем с компьютерами, если они уже есть в списке AD. Которых нет - добавляем (ручками или потом с помощью "net ads join..." - нужна будет samba/winbind).
  • Обязательно производим процедуру смены пароля пользователя виндовс (можно на тот-же). Это нужно для того, что бы его хеш появился в новом поле схемы LDAP.
  • Если планируем для авторизации использовать NIS, стартуем службу Server for NIS ручками (по умолчанию она отключена).
  • Если будем использовать LDAP заводим в AD нового пользователя с минимальным набором прав (главное - право просмотра схемы LDAP). Имеено эту учетную запись будем использовать для соединения с AD.
  • Если есть DHCP то можно прописать туда адреса серверов NIS и NTP - потом пригодится!
С Windows пожалуй все...

Для Linux...
Подготовка.
Данные действия делать, возможно, не обязательно, но позволить в дальнейшем избежать лишних проблем и уж точно ненавредит.
  • Настраиваем синхронизацию времени NTP и Kerberos. Kerberos должен быть настроен, но авторизация выключена. (Возможно потребуется ручками установить krb-client).
  • Желательно прописать в hosts IP адрес контроллера домена и сопоставить ему полное имя контроллера, полное имя домена и краткое имя домена. (Даже если вы уверены в своем DNS)
  • Если планируем использовать LDAP - можно заранее поставить необходимые пакеты nss_ldap и pam_ldap
Внимание! При использовании данных способов авторизации имя домена перед именем пользователя не вводится. Кроме того логин чувствителен к регистру символов!

Использование NIS:
  • Заходим в Yast>Серевые службы>Настройка клиента NIS. Ставим "использовать". Если ранее настроили DHCP можно сразу "завершить". Иначе прописываем краткое имя домена и адрес сервера. Закрываем настройки.
  • В начало файла /ets/pam.d/common-session прописываем строку session optional pam_mkhomedir.so skel=/etc/skel/ umask=0022. Внимание! После каждого завершения конфигурации проверяем наличие этой строки, так как Yast норовит после каждого визита в настройки ее прибить.Файлы nsswitch.conf и остальные /etc/pam.d можно не проверять, Yast их настраивает корректно автоматом.
  • Проверяем видимость доменных пользователей командой "getent password" и любуемся в "Управлении пользователями" выбрав фильтр "NIS"
Все. Можно логинится.

Использование LDAP:
  • Создаем или правим в /etc/ файлик ldap.conf следующего содержания, прописывая туда собственные настройки.

    Код: Выделить всё

    #Адрес контроллера домена
    host    192.168.1.1
    #База поиска
    base    DC=firma,DC=local
    #Ищем в папке и ниже в подпапках
    scope    sub
    #можно не указывать
    #port 389
    
    ldap_version    3
    
    # Тот самый аккаунт для доступ к LDAP, создан в контейнере Users с именем ldap и паролем qwerty
    binddn    CN=ldap,CN=Users,DC=firma,DC=local
    bindpw     qwerty
    
    # Когда вы будете вводить имя пользователя и пароль, будут применяться следующие объекты и атрибуты из AD:
    pam_filter            objectclass=User
    pam_login_attribute        msSFU30Name
    pam_password        ad
    pam_member_attribute    msSFU30PosixMemberof
    
    #в принципе и так работает
    #nss_schema rfc2307bis
    
    # Эти записи нужны для ускорения  поиска. В данном случае все пользователи хранятся в cn –> Users
    
    nss_base_passwd    cn=Users,dc=firma,dc=local?sub
    nss_base_shadow    cn=Users,dc=firma,dc=local?sub
    nss_base_group    cn=Users,dc=firma,dc=local?sub
    
    # Эти записи относятся к модулю nss_ldap, преображают объекты и атрибуты AD к виду, принятому в LDAP
    nss_map_objectclass posixAccount          User
    nss_map_objectclass    shadowAccount    User
    nss_map_objectclass    posixGroup         Group
    nss_map_attribute    uid             msSFU30Name
    nss_map_attribute    uidNumber        msSFU30UidNumber
    nss_map_attribute    gidNumber        msSFU30GidNumber
    nss_map_attribute    uniqueMember     msSFU30PosixMember
    nss_map_attribute    userPassword        msSFU30Password
    nss_map_attribute    homeDirectory     msSFU30HomeDirectory
    nss_map_attribute    loginShell         msSFU30LoginShell
    
    #эти две строки возможно ненужны
    nss_map_attribute    cn sAMAccountName
    nss_map_attribute    gecos name
    
    ssl    start_tls

    То что AD LDAP доступен можно потом проверить через "Обозреватель LDAP"
  • Заходим в Yast>Сетевые cлужбы>Клиент LDAP. Включаем "Использовать LDAP". Обязательно ставим галку "Создать домашний каталог пользователя при входе". Кроме того желательно поставить "LDAP TSL/SSL". Остальные настройки можно просто проверить. Файл nsswitch.conf и содержимое каталога /etс/pam.d настраиваются корректно автоматически. Завершить.
  • Проверяем видимость доменных пользователей командой "getent password"
Все. Наслаждаемся...

Более общие случаи настроек и конфигураций можно подсмотреть по данной ссылке

Замечания и предложения приветствуются...
Спасибо сказали:
CAEman
Сообщения: 178
ОС: OpenSUSE (GNU/Linux)

Re: Решено: Проблемы с авторизацией в AD через LDAP

Сообщение CAEman »

UTiM писал(а):
17.11.2007 21:19
На сервере Windows:
  • Инсталлируем regsvr32 с:\WINNT\system32\schmmgmt.dll (необходимость не проверял, но точно не помешает ;) )
  • Ставим SFU (Можно по умолчанию, а можно только NIS. Имя домена NIS оставляем пустым - система его задаст автоматом в соотв. с кратким именем домена AD). Перезагруз.
  • Выбираем группы, которые будут видны в Linux. Для этого в свойствах группы на новой вкладке UNIX Attributes выбираем из списка NIS Domain (он там один)
  • Выбираем пользователей, котрым хотим разрешить логинится в LINUX. Для этого также в UNIX Attributes выбираем из списка NIS Domain . (Эта операция добавляет в схему LDAP нужные атрибуты). Выбираем Primay Group.
  • Если планируем использовать NIS, то тоже самое проделываем с компьютерами, если они уже есть в списке AD. Которых нет - добавляем (ручками или потом с помощью "net ads join..." - нужна будет samba/winbind).
  • Обязательно производим процедуру смены пароля пользователя виндовс (можно на тот-же). Это нужно для того, что бы его хеш появился в новом поле схемы LDAP.
  • Если планируем для авторизации использовать NIS, стартуем службу Server for NIS ручками (по умолчанию она отключена).
  • Если будем использовать LDAP заводим в AD нового пользователя с минимальным набором прав (главное - право просмотра схемы LDAP). Имеено эту учетную запись будем использовать для соединения с AD.
  • Если есть DHCP то можно прописать туда адреса серверов NIS и NTP - потом пригодится!
С Windows пожалуй все...


А если нет админ-ских прав на сервере?
На клиентской машине, которая была подключена к Windows серверу с аутентификацией с помощью LDAP, установил вместо WinXP32 - openSUSE11.1x86_64.
Задача состоит в том, чтобы вход пользователей оставался прежним - с аутентификацией на сервере windows.
Нужный windows домен системой обнаруживается, но к LDAP не подключается:
"udevd[719]: llnss_ldap: failed to bind to LDAP server ...: Can't contact LDAP server
udevd[719]: nss_ldap: failed to bind to LDAP server ...: Can't contact LDAP server
udevd[719]: nss_ldap: could not search LDAP server - Server is unavailable
udevd[719]: error resolving user 'root, GROUP=': Connection refused"
Запустил (под wine) ldp.exe (которая подключается к этому LDAP серверу даже с машин, не подключённых к нему вообще), но она выдаёт: "Error <0x51>: Fail to connect to ...", а в консоли, из-под которой я её запустил:
"fixme:winsock:WSALookupServiceBeginW (0x32f8bc 0x00000710 0x32f914) Stub!
fixme:advapi:LsaOpenPolicy ((nu),0x32f834,0x00000001,0x32f84c) stub
fixme:advapi:LsaClose (0xcafe) stub"
Что это за "заглушка(-и)"?

P.S. С DHCP всё нормально - всё получает с этого win сервера и в и-нет выходит...
Спасибо сказали:
CAEman
Сообщения: 178
ОС: OpenSUSE (GNU/Linux)

Re: Решено: Проблемы с авторизацией в AD через LDAP

Сообщение CAEman »

Тема довольно старая. Попробую ещё свою создать...
Спасибо сказали:
UTiM
Сообщения: 180
ОС: OpenSuse

Re: Решено: Проблемы с авторизацией в AD через LDAP

Сообщение UTiM »

CAEman писал(а):
28.08.2009 19:21
А если нет админ-ских прав на сервере?


Тогда забудьте про LDAP и NIS авторизацию! Она настраивается только при установленном на сервере дополнении SFU от Микрософта. Максимум что вы сможете без него - просматривать записи в AD с помощью клиентских программ, но не авторизоваться, так как нужных для этого Linu-ху полей в LDAP AD просто нет. (Собственно SFU их туда и добавляет)

Без него возможна только стандартная winbind- авторизация. Настраивается элементарно через Yast2 - здесь на форуме полно информации...
Спасибо сказали:
CAEman
Сообщения: 178
ОС: OpenSUSE (GNU/Linux)

Re: Решено: Проблемы с авторизацией в AD через LDAP

Сообщение CAEman »

UTiM писал(а):
29.08.2009 01:02
Она настраивается только при установленном на сервере дополнении SFU от Микрософта. Максимум что вы сможете без него - просматривать записи в AD с помощью клиентских программ, но не авторизоваться, так как нужных для этого Linu-ху полей в LDAP AD просто нет. (Собственно SFU их туда и добавляет)

А по приведённым ниже портам сервера, полученных с помощью PortScan, можно определить, установлена ли SFU (а если нет, то - наилучший способ аутентификации)?
42 open name
53 open domain
88 open kerberos
135 open epmap
139 open netbios-ssn
389 open ldap
445 open microson-ds
464 open kpasswd
593 open hnp-rpc-epmap
636 open ldaps
1025 open blackjack
1027 open unknawn
1034 open activesync
1038 open mtqp
1048 open neod2
3268 open msn-qc
3269 open msn-qc-ssl
3389 open ms-wbt-server
Спасибо сказали:
UTiM
Сообщения: 180
ОС: OpenSuse

Re: Решено: Проблемы с авторизацией в AD через LDAP

Сообщение UTiM »

CAEman писал(а):
04.09.2009 15:39
А по приведённым ниже портам сервера, полученных с помощью PortScan, можно определить, установлена ли SFU (а если нет, то - наилучший способ аутентификации)?

Наличие можно определить по наличию полей типа..

Код: Выделить всё

msSFU30UidNumber
msSFU30GidNumber
msSFU30PosixMember
msSFU30Passwor

в схеме учетной записи пользователя (смотрится с помощью любого просмотрщика LDAP - например в yast2 - "Обозреватель LDAP" ), но проще спросить у админа, так как эти поля должны быть еще и заполнены соотв. данными...

Если вы сами не админ, то лучший (и единственный) способ авторизации в домене в вашем случае - winbind
Спасибо сказали:
CAEman
Сообщения: 178
ОС: OpenSUSE (GNU/Linux)

Re: Решено: Проблемы с авторизацией в AD через LDAP

Сообщение CAEman »

При попытке настройки через winbind выдаётся сообщение:
This host is not a member of the domain...
Join the domain ...?
После утвердительного ответа и ввода имени и пароля пользователя сервера (естественно, не администратора):
Failed to join domain: Failed to set account flags for machine account (NT_STATUS_ACCESS_DENIDED)

При попытке подключения с того же компьютера, но из-под Windows (c тем же именем комп-а):
В домене "..." обнаружена учётная запись для данного компьютера.
Использовать её?
А после утвердительного ответа и ввода пользователя:
Не удалось присоединить этот компьютер к домену из-за следующей ошибки:
Отказано в доступе
(Хотя он уже присоединён через эту Windows, в которой все загружаются нормально.)

Что нужно делать?
Спасибо сказали:
UTiM
Сообщения: 180
ОС: OpenSuse

Re: Решено: Проблемы с авторизацией в AD через LDAP

Сообщение UTiM »

Подсоединять компьютер к домену, как в Linux так и в Windows может только администратор - под учеткой пользователя это не прокатит! Но в данном случае вам этого и не нужно, winbind будет работать и без админского пароля - вам просто придется настроить его в ручную, (без yast), так как тот честно пытается выполнить 'нормальную' процедуру ввода машины в домен из под админа (кстати, если все-таки попросить админа подойти и ввести вам пароль там, где его требует yast - сэкономите кучу времени, так как ручная настройка требует хотя-бы поверхностного понимания механизмов работы авторизации Linux)

Ну а для настройки 'в ручную' вот вам пара ссылочек, найденных в поисковике за 2 минуты:
http://mixa.su/news/linux/nastraivaem-avto...-directory.html
http://asplinux.net/node/69
Для Suse могут быть некоторые нюансы, которые вы выясните пройдясь поиском по этому форуму.
Спасибо сказали:
CAEman
Сообщения: 178
ОС: OpenSUSE (GNU/Linux)

Re: Решено: Проблемы с авторизацией в AD через LDAP

Сообщение CAEman »

UTiM писал(а):
14.09.2009 22:10
Подсоединять компьютер к домену, как в Linux так и в Windows может только администратор - под учеткой пользователя это не прокатит! Но в данном случае вам этого и не нужно, winbind будет работать и без админского пароля - вам просто придется настроить его в ручную, (без yast), так как тот честно пытается выполнить 'нормальную' процедуру ввода машины в домен из под админа (кстати, если все-таки попросить админа подойти и ввести вам пароль там, где его требует yast - сэкономите кучу времени, так как ручная настройка требует хотя-бы поверхностного понимания механизмов работы авторизации Linux)

Ну а для настройки 'в ручную' вот вам пара ссылочек, найденных в поисковике за 2 минуты:
http://mixa.su/news/linux/nastraivaem-avto...-directory.html
http://asplinux.net/node/69
Для Suse могут быть некоторые нюансы, которые вы выясните пройдясь поиском по этому форуму.



А Вы уверены, что это позволит обойтись без ввода админ-ского пароля?
После следующего ввода из первой статьи:
"Далее запускаем команду:
# kinit adsadmin@PHYSNET.LOCAL", -
разве не будет запрошен пароль админ-а?
Ведь во второй статье прямо написано:
"kinit admin@DOMAIN.RU
после чего ввести пароль админа."
Спасибо сказали:
UTiM
Сообщения: 180
ОС: OpenSuse

Re: Решено: Проблемы с авторизацией в AD через LDAP

Сообщение UTiM »

CAEman писал(а):
19.09.2009 14:27
Ведь во второй статье прямо написано:
"kinit admin@DOMAIN.RU
после чего ввести пароль админа."


Это проверка правильности работы Керберос. Можно просто kinit VASYA@DOMAIN.RU после чего- пароль "Васи". Если пароль/логин совпали то... никаких сообщений не будет (Вася получит "тикет" керберос), если начнет ругаться - или парль/логин не совпали или керберос настроен неправильно. А нужно это, чтоб виндовый сервер не спрашивал пароль повторно при каждой попытке доступа с сетевым ресурсам. Керберосовский "тикет" дает индульгенцию на некоторое время (обычно - на сутки, а вообще - так как админ настроил)

Естественно

Код: Выделить всё

net ads join -U admin@DOMEN.RU
- команда, вводящая машину в домен - тоже не для вас.

В результате ваших трудов:
1. Команды wbinfo -u /wbinfo -g должны выдавать списки пользователей/груп домена - говорит о правильной настройке samba/winbind
2. Команды getent passwd / getent group выдают кроме локальных пользователей/груп еще и доменных - nsswitch.conf настроен правильно (обязательно наличие в smb.conf кроме того что в статьях...)

Код: Выделить всё

winbind enum users = yes
winbind enum groups = yes

3. Авторизация проходит и домашний каталог пользователя создается - pam настроен правильно....
Спасибо сказали:
CAEman
Сообщения: 178
ОС: OpenSUSE (GNU/Linux)

Re: Решено: Проблемы с авторизацией в AD через LDAP

Сообщение CAEman »

Kerberos настроил, даже не прибегнув к дедовским способам редактирования файлов конфигурации, прямо через Yast.
А вот с winbind - проблема (даже с редактированием smb.conf). На wbinfo -p выдаёт:
Ping to winbindd failed
could not ping winbindd!
Чтобы это значило (ведь testparm проходит без проблем)?
Спасибо сказали:
UTiM
Сообщения: 180
ОС: OpenSuse

Re: Решено: Проблемы с авторизацией в AD через LDAP

Сообщение UTiM »

CAEman писал(а):
25.09.2009 21:59
А вот с winbind - проблема (даже с редактированием smb.conf). На wbinfo -p выдаёт:
Ping to winbindd failed
could not ping winbindd!


А если все-таки запустить winbind? (samb-у запускать не надо)

Код: Выделить всё

service winbind start


Проверить, запущен-ли демон можно:

Код: Выделить всё

service winbind status


И не забыть прописать запуск службы при старте системы (если все настроено правильно)

Код: Выделить всё

insserv -d winbind
или с помощью Yast -"Системные службы"
Спасибо сказали:
CAEman
Сообщения: 178
ОС: OpenSUSE (GNU/Linux)

Re: Решено: Проблемы с авторизацией в AD через LDAP

Сообщение CAEman »

Winbind запускается даже из-под Yast (по крайней мере, возвращает "0") и прописан там.
(При этом этот повторный запуск вручную был произведён уже после удачного kinit'a.)
Но при повторном открытии в Yast списка служб - оказывается не запущенным.
При этом в сислоге (т.е. в "messages") прописывается следующая информация:
"initialize_winbindd_cache: clearing cache and re-creating with version number 1
winbindd/winbindd_util.c:init_domain_list(740)
Could not fetch our SID - did we join?
winbindd/winbindd.c:main(1285)
unable to initialize domain list"

Вы считаете, что ему может мешать запущенная Samba, и её следует отключить и после запустить Winbind? Уточните, пожалуйста.
Может, всё-таки, без "net ads join" winbind не работает (ведь в "smb.conf" стоит "security = ADS")? Вы сами пробовали?
Или в статьях была не совсем правильная последовательность, и следует сначала настроить nsswitch.conf & PAM?

Для полноты информации привожу содержание "smb.conf" (домен, адреса и т.п. изменены):
"[global]
log file = /var/log/samba/log.%m
max log size = 2048
workgroup = domen
password server = server.domen
encrypt passwords = yes
auth methods = winbind
winbind enum groups = yes
winbind enum users = yes
winbind use default domain = yes
case sensitive = no
interfaces = eth0
printing = cups
printcap name = cups
printcap cache time = 750
cups options = raw
map to guest = Bad User
include = /etc/samba/dhcp.conf
netbios name = %h
# logon path = \\%L\profiles\.msprofile
logon home = \\%L\users\%U
logon drive = Z:
usershare allow guests = No
idmap gid = 1000-20000
idmap uid = 1000-20000
realm = DOMEN
security = ADS
template homedir = /home/%U/Documents
template shell = /bin/bash
winbind refresh tickets = yes
dos charset = 866
unix charset = UTF-8
[homes]
comment = Home Directories
valid users = %S, %D%w%S
browseable = No
read only = No
inherit acls = Yes
[profiles]
comment = Network Profiles Service
path = %H
read only = No
store dos attributes = Yes
create mask = 0600
directory mask = 0700
[users]
comment = All users
path = /home
read only = No
inherit acls = Yes
veto files = /aquota.user/groups/shares/
[groups]
comment = All groups
path = /home/groups
read only = No
inherit acls = Yes
[printers]
comment = All Printers
path = /var/tmp
printable = Yes
create mask = 0600
browseable = No
[print$]
comment = Printer Drivers
path = /var/lib/samba/drivers
write list = @ntadmin root
force group = ntadmin
create mask = 0664
directory mask = 0775"

и результат запуска на подключённой к домену вин. машине команды nltest.exe с ключами:
/dsgetdc:domen
DC: \\server.domen
Address: \\xxx.xxx.x.xxx
Dom Guid: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx
Dom Name: domen
Forest Name: domen
Dc Site Name: Default-First-Site-Name
Our Site Name: Default-First-Site-Name
Flags: PDC GC DS LDAP KDC TIMESERV GTIMESERV WRITABLE DNS_DC DNS_DOMAIN DNS_FOREST CLOSE_SITE
The command completed successfully

и /dnsgetdc:domen
List of DCs in pseudo-random order taking into account SRV priorities and weights:
Non-Site specific:
server.domen xxx.xxx.x.xxx:389
The command completed successfully

Попробовал запустить winbind без запущенной smb - результат тот же.
Спасибо сказали:
UTiM
Сообщения: 180
ОС: OpenSuse

Re: Решено: Проблемы с авторизацией в AD через LDAP

Сообщение UTiM »

CAEman писал(а):
02.10.2009 12:32
Вы считаете, что ему может мешать запущенная Samba, и её следует отключить и после запустить Winbind? Уточните, пожалуйста.
Может, всё-таки, без "net ads join" winbind не работает (ведь в "smb.conf" стоит "security = ADS")? Вы сами пробовали?
Или в статьях была не совсем правильная последовательность, и следует сначала настроить nsswitch.conf & PAM?


- samba (вернее демон smbd) - не мешает и не помогает, для авторизации в домене она просто ненужна (вообще - служит для "расшаривания" папок с вашей машины в виндовую сеть)
- для определения "запущенности" winbind используйте команду "service winbind status" - быстрее и надежней.
- если вы пропишите настройки авторизации через winbind в pam при не работоспособном winbind - есть некоторый риск больше вообще не войти в систему (лечится - но надо знать как)

Проверьте...
Разрешение доменных имен (естественно для вашего домена):

Код: Выделить всё

ping domain
и

Код: Выделить всё

ping server.domain.loc
- проверяет разрешение имен домена и контроллера домена
Видимость домена:

Код: Выделить всё

net ads info
- проверяет доступность сервера LDAP AD

Если не работает - сделайте следующее (да и желательно всегда, а вернее - даже обязательно) при настройке winbind:
1. Отключите SuseFirevall
2. Пропишите в /etc/hosts строку:
"192.168.1.1 server.domain.loc domain.loc domain" - естественно для вашего домена
- т.е. "IP_контроллера_домена его_полное_имя полное_имя_домена краткое_имя_домена"
Иногда полезно - (уменьшает возможные глюки с разрешением имен):
3. Остановите и выключите автозагрузку демона avahi - через Yast-"Службы..."
4. В /etc/nsswitch.conf строку "hosts: files mdns4_minimal [NOTFOUND=return] dns" поправте до "hosts: files dns"

Повторно проверьте разрешение имени домена и доступность LDAP AD
Если - сработало, то:

Код: Выделить всё

service winbind start


Файл smb.conf - в основном все правильно, хоте есть кое-что "лишнее" (не уверен - не пиши!!!) - в этом случае применяются правила по умолчанию
Необходимо и достаточно (домен DOMAIN.LOC):

Код: Выделить всё

[global]

#для авторизации winbind
    workgroup = DOMAIN
    realm = DOMAIN.LOC
    security = ADS
    idmap gid = 10000-20000
    idmap uid = 10000-20000
    winbind enum groups = yes
    winbind enum users = yes
    winbind refresh tickets = yes

 #окружение пользователя после авторизации
    template homedir = /home/%D/%U
    template shell = /bin/bash

 #умолчательные настройки samba (печать, права и п.р.) - не обязательно для авторизации, но не мешает - можно оставить
    usershare allow guests = No
    printing = cups
    printcap name = cups
    printcap cache time = 750
    cups options = raw
    map to guest = Bad User
    include = /etc/samba/dhcp.conf
    logon path = \\%L\profiles\.msprofile
    logon home = \\%L\%U\.9xprofile
    logon drive = P:

#все - что ниже - описание шар smbd - можно закомментировать (мы ничего не расшариваем!)
[homes]


Если winbind запустился и работает - проверяем доступность виндовых юзеров и групп:

Код: Выделить всё

wbinfo -u
wbinfo -g
Спасибо сказали:
CAEman
Сообщения: 178
ОС: OpenSUSE (GNU/Linux)

Re: Решено: Проблемы с авторизацией в AD через LDAP

Сообщение CAEman »

Спасибо, сейчас попробую сделать проверку.
Только я не совсем понял, почему LDAP, если настроен Kerberos (по крайней мере, по нему получается билет пользователя, а вот с LDAP там что-то у меня "не доруливается")?

И у меня несколько вопросов по smb.conf:

1) idmap gid = 10000-20000
idmap uid = 10000-20000
А почему нельзя начинать, например, с 1000 (если кроме root'a локальных не будет)?

2) auth methods = winbind
Почему эта строка не нужна?
Вернее, как определяется, что при регистрации пользователей в графическом окне DM должна проходить проверка имени и пароля на вин.сервере?

3) Если нужно, чтобы после первой авторизации создавалась домашняя папка /home/имя_пользователя (профиль пользователя), которая бы в дальнейшем уже использовалась пользователем по умолчанию, а в папки Documents и Y:, находящихся в домашней директории, каждый раз монтировались папки сервера, соответственно, users\имя_пользователя (которая на вин.машинах монтируется как диск Z:) и \y (в которых нет или, по крайней мере, не видно из-под пользователя никаких .msprofile и .9xprofile), то что нужно добавить в smbfstab и прописать вместо:
template homedir = /home/%D/%U
logon path = \\%L\profiles\.msprofile
logon home = \\%L\%U\.9xprofile
logon drive = P:
и для этого нужен сервис smbfs и не нужен - smb?

Уточните, пожалуйста.
Спасибо сказали:
Ответить