Bug 7235 - Проблемы с подключением к домену
: Проблемы с подключением к домену
Status: CONFIRMED
Product: Desktop Bugs
Classification: ROSA Desktop
Component: Main Packages
: Fresh
: All Linux
: Normal normal
: ---
Assigned To: ROSA Linux Bugs
: ROSA Linux Bugs
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2016-07-24 08:35 MSD by Vladimir Potapov
Modified: 2016-09-17 16:36 MSD (History)
2 users (show)

See Also:
RPM Package:
ISO-related:
Bad POT generating:
Upstream:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Vladimir Potapov 2016-07-24 08:35:33 MSD
Проблема:
После выполнения drakauth и успешного ввода станции в домен AD 2008R2 авторизация проходит случайным образом (может сработать, а может и нет)

Исследование показало, что виноват порядок запуска сервисов, сервис winbindd запускается слишком поздно, когда уже была попытка авторизации. Также сервис синхронизации времени синхронизирует время с сервером уже после авторизации, что тоже приводит к ошибкам.

Решение
1) Сервис winbindd по-умолчанию выключен, его включает drakauth при введении станции в домен. Поэтому настраиваем именно /lib/systemd/system/winbindd.service - чтоб настройки никак не повлияли на локальную домашнюю работу обычных пользователей, у которых этот сервис выключен
2) Настраиваем запуск winbindd _после_ соединения с сетью и синхронизации времени, но _до_ запуска сервиса локальной авторизации.
Было:
[Unit]
Description=Samba Winbind Daemon
After=syslog.target network.target nmb.service

Нужно:
[Unit]
Description=Samba Winbind Daemon
After=syslog.target network-online.target time-sync.target nmb.service
Before=systemd-user-sessions.service
Comment 1 Vladimir Potapov 2016-07-24 08:55:00 MSD
3) Winbindd "поставил на место" сервис синхронизации времени (входящий в time-sync.target), теперь осталось только прописать сервер синхронизации времени как сервер домена и запустить сервис ntpd.service. Это можно сделать и через GUI прописав в инструкции для пользователей, но хорошо б drakauth это делал сам, т.к. имя сервера он знает и добавить в /etc/ntp.conf строчку 
server ИмяСервера
и выполнить команду
systemctl enable ntpd.service
должно быть несложно.
Comment 2 Vladimir Potapov 2016-07-24 08:55:21 MSD
4) Еще мелочи про drakauth: он при вводе станции в домен создает папку типа 
~/domain.ru (ну, то что в него ввели) а потом сервисы работают с совсем другой папкой ~/DOMAIN, без суффикса. Нужно бы чтоб преобразовывал к большим буквам  и обрезал суффикс при создании папки. Ну или вообще не создавал, сервисы это умеют сами.
Comment 3 Vladimir Potapov 2016-07-24 08:55:36 MSD
5) После ввода в домен мы получаем в обычной нашей KDE-шной "карусели" всех пользователей домена, при большом их количестве это неудобно. Для серт. версий Урал писал другой интерфейс "в плитку", хорошо бы добавить его в образы параллельно к основному и переключать на него тем же drakauth при вводе в домен
Comment 4 Vladimir Potapov 2016-07-24 08:56:09 MSD
6) Т.к. по-умолчанию у нас пользователи вводятся "из списка", то в списке они должны быть актуальны. drakauth же при формировании /etc/samba/smb.conf
ставит сумасшедшее время кэширования списков -  
winbind cache time = 1440
24 минуты! Т.е. если админ завел пользователя после ввода станции в домен (в момент ввода, конечно, всё синхронизируется), то ему нужно полчаса ждать, прежде чем войти.
Предлагаю 
winbind cache time = 60
Comment 5 Vladimir Potapov 2016-07-24 09:53:49 MSD
7) В инструкции по вводу Кобальта в домен сказано, что нужно заменить в

/etc/pam.d/system-auth-winbind

session required pam_mkhomedir.so skel=/etc/skel/ umask=0022
на
session required pam_mkhomedir.so skel=/etc/skel/ umask=0077
в таком же файле во фреше так и сделано. 

Однако в автогенерируемом файле, используемом для входа
/etc/pam.d/system-auth

Похоже, копируемом из 
/etc/pam.d/system-auth-win-default
а не из 
/etc/pam.d/system-auth-winbind

используется старый синтаксис
session     optional      pam_mkhomedir.so skel=/etc/skel/ umask=0022

Более того, в файлах 
/etc/pam.d/system-auth-win-default
и
/etc/pam.d/system-auth.orig
применяется не только "старая" строчка
session     optional      pam_mkhomedir.so skel=/etc/skel/ umask=0022
Но и строка
password    required    pam_pwcheck.so
приводящая к ошибке в логах т.е. у нас нет этой библиотеки, а должно, видимо,  использоваться
password    required      pam_cracklib.so retry=3

Решения может быть два:
1) поправить пакет drakxtools-curses 
2) Научить drakauth копировать /etc/pam.d/system-auth
не из system-auth-win-default
а из system-auth-winbind

Второе мне кажется более перспективным. Я проверил, с system-auth-winbind все работает корректно.
Comment 6 Vladimir Potapov 2016-07-24 10:04:56 MSD
8) когда drakauth создает конфиг самбы, он старый копирует в smb.conf.orig
Все хорошо, но он не проверяет - есть ли уже такой файл. И если два раза подряд пытаешься ввести станцию в домен, копия тоже затирается и восстановить старый, додоменный конфиг получается невозможно.
Решение простое:
Проверять что копия уже есть, а если есть - её не переписывать.
Comment 7 Andrey Bondrov 2016-07-24 11:37:58 MSD
(In reply to comment #0)
> Нужно:
> [Unit]
> Description=Samba Winbind Daemon
> After=syslog.target network-online.target time-sync.target nmb.service
> Before=systemd-user-sessions.service

Advisory: "Adjust winbind.service"

https://abf.rosalinux.ru/build_lists/2693238
https://abf.rosalinux.ru/build_lists/2693239
Comment 8 Vladimir Potapov 2016-07-26 21:50:34 MSD
Интересно, что с подключением к домену по IPA у нас та же история.
меняем в /lib/systemd/system/sssd.service
After=syslog.target 
на
Аfter=syslog.target network-online.target
И все работает НАМНОГО лучше.
Comment 9 Vladimir Potapov 2016-07-26 22:00:42 MSD
(In reply to comment #7)
> (In reply to comment #0)
> > Нужно:
> > [Unit]
> > Description=Samba Winbind Daemon
> > After=syslog.target network-online.target time-sync.target nmb.service
> > Before=systemd-user-sessions.service
> 
> Advisory: "Adjust winbind.service"
> 
> https://abf.rosalinux.ru/build_lists/2693238
> https://abf.rosalinux.ru/build_lists/2693239

The update is sent to expanded testing
***************************************
Comment 10 Andrey Bondrov 2016-07-27 04:03:49 MSD
(In reply to comment #8)
> Интересно, что с подключением к домену по IPA у нас та же история.
> меняем в /lib/systemd/system/sssd.service
> After=syslog.target 
> на
> Аfter=syslog.target network-online.target
> И все работает НАМНОГО лучше.

Advisory: "Start sssd.service after network-online.target"

https://abf.rosalinux.ru/build_lists/2693507
https://abf.rosalinux.ru/build_lists/2693508

Можно ещё попробовать обновить sssd до 1.13.4, там в изменениях много различных улучшений в работе с IPA: http://bugs.rosalinux.ru/show_bug.cgi?id=7232#c6
Comment 11 Vladimir Potapov 2016-07-27 20:51:32 MSD
(In reply to comment #9)
> (In reply to comment #7)
> > (In reply to comment #0)
> > > Нужно:
> > > [Unit]
> > > Description=Samba Winbind Daemon
> > > After=syslog.target network-online.target time-sync.target nmb.service
> > > Before=systemd-user-sessions.service
> > 
> > Advisory: "Adjust winbind.service"
> > 
> > https://abf.rosalinux.ru/build_lists/2693238
> > https://abf.rosalinux.ru/build_lists/2693239
> 
> The update is sent to expanded testing
> ***************************************

************************
QA Verified
Comment 12 Vladimir Potapov 2016-07-28 18:32:06 MSD
(In reply to comment #10)
> (In reply to comment #8)
> > Интересно, что с подключением к домену по IPA у нас та же история.
> > меняем в /lib/systemd/system/sssd.service
> > After=syslog.target 
> > на
> > Аfter=syslog.target network-online.target
> > И все работает НАМНОГО лучше.
> 
> Advisory: "Start sssd.service after network-online.target"
> 
> https://abf.rosalinux.ru/build_lists/2693507
> https://abf.rosalinux.ru/build_lists/2693508
******************************
QA Verified

P.S. Оно все работает, но по-хорошему там еще сервис времени нужно настраивать. Это требует тестирования и, наверное, со следующей версией SSSD сделаем.