Bug 9574

Summary: AD MS auth: недоработки
Product: [ROSA-based products] ROSA Fresh Reporter: Vladimir Potapov <v.potapov>
Component: Net (ssh, samba, ssl, NM...)Assignee: Mikhail Novosyolov <m.novosyolov>
Status: VERIFIED FIXED QA Contact: ROSA Linux Bugs <bugs>
Severity: normal    
Priority: Normal CC: alzim, m.novosyolov
Version: KDE4Flags: v.potapov: qa_verified+
alzim: published+
Target Milestone: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Platform: --- ROSA Vulnerability identifier:
RPM Package: ISO-related:
Bad POT generating: Upstream:
Attachments: ss

Description Vladimir Potapov 2018-12-15 18:38:27 MSK
1) Вход после подключения не возможен пока не запустишь сервис nscd
2) Не создаются новые папки пользователя
Comment 1 Vladimir Potapov 2018-12-16 07:42:36 MSK
Порядок создания стенда на виртуалках
1) Переключаешь в "Сетевой мост"
2) Ставишь имя компа, домен поиска и DNS аналогично
http://wiki.rosalab.ru/ru/index.php/%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_ROSA_Desktop_%D0%BA_%D0%B4%D0%BE%D0%BC%D0%B5%D0%BD%D1%83_FreeIPA
(проверяется пингом по имени сервера)
3) Входишь через drakauth (в параметрах указываешь домен и сервер)
4) Перезагружаешься. Т.к. ошибка, входишь в консоли под рутом, включаешь вручную nscd. 
5) Входишь в GUI под доменным пользователем.
Comment 2 Mikhail Novosyolov 2019-02-21 19:14:25 MSK
Это актуально с новой самбой 4.9.4?
Comment 3 Mikhail Novosyolov 2019-02-21 19:14:25 MSK
Это актуально с новой самбой 4.9.4?
Comment 4 Vladimir Potapov 2019-02-22 06:57:48 MSK
папки пользователя так и не создаются.
Comment 5 Mikhail Novosyolov 2019-04-22 03:53:32 MSK
***** QA ADVISORY *****
drakxtool 14.91
Через pam_exec вызываем скрипт https://abf.io/soft/drakxtools/blob/master/perl-install/drak-user-domain-login.sh после входа пользователя в систему

Механизм правки конфигов PAM при вводе в домен корявый, не уверен, что он правильным образом поправится.

+ https://abf.io/build_lists/3006725
+ https://abf.io/build_lists/3006726
Comment 6 Vladimir Potapov 2019-04-22 18:23:19 MSK
(In reply to Mikhail Novosyolov from comment #5)

> + https://abf.io/build_lists/3006725
> + https://abf.io/build_lists/3006726
Не помогло, папки не создались.

В drakxtools нужно еще сделать
1) Вывод станции из домена
2) Перезагрузку после ввода в домен (как для IPA сделано)
Comment 7 Mikhail Novosyolov 2019-04-22 18:28:12 MSK
Я забыл, на IPA они создаются нормально?
Comment 8 Mikhail Novosyolov 2019-04-29 14:18:34 MSK
***** QA ADVISORY ******

drakxtools 14.92, samba 4.10.2-4 (в samba лежит конфиг, используемый drakxtools)

* экран с запросом перезагрузки после ввода в домен AD (Winbind), как после ввода в домен FreeIPA
* при первом входе пользователя через KDM больше не выводится сообщение на английском, что создана домашняя папка
* после ввода в домен больше не пропадают звук, dbus, отрабатывает создание xdg-user-dirs, работают флешки
* используется libnss-role (https://github.com/Etersoft/libnss-role, https://www.altlinux.org/ActiveDirectory/Login#Настройка_ролей_и_привилегий) для того, чтобы:
* * доменные администраторы автоматически становились локальными администраторами, то есть на лету добавлялись в группу wheel
* * доменным пользователям можно было на лету присваивать членство в произвольных других группах, сейчас drakauth делает так, чтобы доменные пользователи состояли дополнительно в группах cdwriter, cdrom, как группы по умолчанию в userdrake
* доменные администраторы теперь могут использовать sudo по своему паролю (при вводе в домен через drakauth вносятся правки в конфиг /et/pam.d/sudo, а благодаря libnss-role и создаваемому его конфигу доменные админы состоят в группе wheel, для которой по умолчанию разрешен sudo)

drakxtools:
+ https://abf.io/build_lists/3007532
+ https://abf.io/build_lists/3007533

samba:
+ https://abf.io/build_lists/3007528
+ https://abf.io/build_lists/3007529

libnss-role (уже опубликован, просто ссылки на пакеты):
+ https://abf.io/build_lists/3007511
+ https://abf.io/build_lists/3007512
Comment 9 Mikhail Novosyolov 2019-04-29 14:23:20 MSK
libnss-role придется добавить в образы
Comment 10 Mikhail Novosyolov 2019-04-29 14:44:42 MSK
Еще собрали пакет krb5-ticket-watcher. Это небольшая программа, которая висит в трее, позволяет управлять билетами Kerberos и предупреждает о том, что у них заканчивается срок действия.
https://abf.io/build_lists/3007516
https://abf.io/build_lists/3007517
Comment 11 Vladimir Potapov 2019-04-29 17:57:34 MSK
Очень круто!
Ушли почти все ошибки. Даже смена авторизацию опять на локальную работает!
Осталась одна, самая подлая. Если задаешь нового пользователя и ставить ему флажок смены пароля после входа в систему, то окно ввода этого пароля высвечивается, но работает неправильно и пароль ввести не дает.
Comment 12 Vladimir Potapov 2019-04-29 18:02:47 MSK
ну и libnss-role бы добавить в зависимости дракам, т.к. по умолчанию ее нет и драк ее ставит при первом входе, а инета у пользователя может и не быть.
Comment 13 Mikhail Novosyolov 2019-04-29 23:29:37 MSK
В зависимостях у драков нет ни одного пакета типа ipa-client, и это правильно, т.к. установка драков не должна их тянуть.

Добавил libnss-role в образы, в т.ч. kde4 2016.1, 2019.1, redx4, plasma5 2016.1, gnome 2016.1

В образах  XFCE, LXQt, MATE нет samba-winbind, libnss-role туда не добавил.
Comment 14 Mikhail Novosyolov 2019-04-30 00:01:28 MSK
> Если задаешь нового пользователя
> и ставить ему флажок смены пароля после входа в систему

Где?! В Windows-контроллере домена что ли?
Comment 15 Vladimir Potapov 2019-04-30 02:28:20 MSK
(In reply to Mikhail Novosyolov from comment #14)
> Где?! В Windows-контроллере домена что ли?
Да, при создании нового пользователя этот флажок дефолтен.
Comment 16 Mikhail Novosyolov 2019-05-01 16:35:30 MSK
***** QA ADVISORY *****
Fixed changing expired password via DM
https://abf.io/import/samba/commit/f3f05901541d77dd08271586231801412867fdd6

samba
+ https://abf.io/build_lists/3021004
+ https://abf.io/build_lists/3021003
Comment 17 Mikhail Novosyolov 2019-05-01 16:53:07 MSK
***** QA ADVISORY *****
drakxtools 14.93
* Run roleadd for each group one-by-one to better catch errors

+ https://abf.io/build_lists/3021021
+ https://abf.io/build_lists/3021022
Comment 18 Vladimir Potapov 2019-05-02 09:13:51 MSK
(In reply to Mikhail Novosyolov from comment #16)
> ***** QA ADVISORY *****
> Fixed changing expired password via DM
> https://abf.io/import/samba/commit/f3f05901541d77dd08271586231801412867fdd6
not work :-(
Comment 19 Vladimir Potapov 2019-05-02 09:16:39 MSK
(In reply to Vladimir Potapov from comment #18)
> (In reply to Mikhail Novosyolov from comment #16)
> > ***** QA ADVISORY *****
> > Fixed changing expired password via DM
> > https://abf.io/import/samba/commit/f3f05901541d77dd08271586231801412867fdd6
> not work :-(
А нет, после перезагрузки заработало!
Comment 20 Vladimir Potapov 2019-05-02 09:19:14 MSK
В общем, работает очень неустойчиво. Иногда в процессе набора пароля виснет, иногда просто не дает набрать.
Comment 21 Vladimir Potapov 2019-05-02 09:34:08 MSK
Ага, кажется нашел причину - там всего три попытки придумать новый пароль. Если не смог - все виснет. Поставил 7, стало лучше.
Comment 22 Vladimir Potapov 2019-05-02 09:35:36 MSK
а еще создает лишнюю папку в home. Рабочая - с именем без суффикса (домен), там создаются доменные пользователи а пустая с суффикстом (домен.ру)
Comment 23 Vladimir Potapov 2019-05-02 09:42:46 MSK
(In reply to Vladimir Potapov from comment #21)
> Ага, кажется нашел причину - там всего три попытки придумать новый пароль.
> Если не смог - все виснет. Поставил 7, стало лучше.
... но не идеально. Иногда и с первого раза виснет.
Comment 24 Mikhail Novosyolov 2019-05-02 14:59:31 MSK
Виснет намертво, никуда нельзя нажать, в tty не переключиться?

(In reply to Vladimir Potapov from comment #21)
> Ага, кажется нашел причину - там всего три попытки придумать новый пароль.
> Если не смог - все виснет. Поставил 7, стало лучше.

Там - это где?
Comment 25 Vladimir Potapov 2019-05-02 17:45:03 MSK
pam_cracklib.so retry=3
Comment 26 Vladimir Potapov 2019-05-04 15:21:28 MSK
Avahi перестает работать после входа в домен
avahi-browse -a
Ошибка в service_type_browser: Ошибка DNS: NXDOMAIN
Comment 27 Vladimir Potapov 2019-05-04 15:30:28 MSK
(In reply to Vladimir Potapov from comment #22)
> а еще создает лишнюю папку в home. Рабочая - с именем без суффикса (домен),
> там создаются доменные пользователи а пустая с суффикстом (домен.ру)
домен.ру создается при подключении, без суффикса  - при входе.
Т.е. нужно убрать из драка создание каталога при подключении
Comment 28 Vladimir Potapov 2019-05-06 17:16:14 MSK
при неудачной регистрации (например время на сервере и станции не совпадает) не выдается ошибка а выдается запрос на перезагрузку.
Регрессия.
Comment 29 Mikhail Novosyolov 2019-05-07 18:47:24 MSK
(In reply to Vladimir Potapov from comment #28)
> при неудачной регистрации (например время на сервере и станции не совпадает)
> не выдается ошибка а выдается запрос на перезагрузку.
> Регрессия.

При вводе выполняется единоразовая синхронизация времени с контроллером домена без контроля успешности этой операции. Так было и так есть, это не менялось. По-хорошему бы вообще ntpd автоматически настраивать.
Comment 30 Vladimir Potapov 2019-05-07 18:50:20 MSK
просто раньше был контроль успешности всей операции. Если вход в домен не произошел, выдавало ошибку. Сейчас нет.
Comment 31 Mikhail Novosyolov 2019-05-07 18:53:20 MSK
(In reply to Vladimir Potapov from comment #30)
> просто раньше был контроль успешности всей операции. Если вход в домен не
> произошел, выдавало ошибку. Сейчас нет.

Как было, так и осталось, полного контроля не было и нет, проверяется лишь вывод wbinfo -u и по нему определяется успешность ввода независимо от промежуточных ошибок.
Comment 32 Mikhail Novosyolov 2019-05-07 22:43:48 MSK
*********** QA ASVISORY **********

drakxtools 14.94-1
https://abf.io/build_lists/3022579
https://abf.io/build_lists/3022578
**********************************

По сравнению с 14.93:

* отключено создание папок /home/имя_домена, т.к. они создаются через pam_mkhomedir по шаблону в /etc/samba/smb.conf
* при откате после неудачного ввода в домен AD теперь восстанавливаются /etc/nsswitch.conf и /etc/role
* /etc/pam.d/system-auth заменяется на /etc/pam.d/system-auth-winbind вместо точечной замены в конкретных конфигах, sudo должен продолжать работать для доменных администраторов благодаря libnss-role (проверить!)
* В русском переводе "Область Active Directory" заменено на: "Область (relam) Active Directory"
* автоматическое определение и заполнение имени хоста, домена, DNS-домена и netbios-имени в соответствии с текущим hostname
* если доменное имя приблизительно похоже на FQDN и в /etc/resolv.conf
в качестве nameserver задан адрес *.имя_автоматически_определенного_домена_DNS, то он автоматически подставляется как адрес контроллера домена
* добавлен вывод предупреждения, если имя хоста не является полностью квалифицированным доменным именем (FQDN) (проверка приблизительная), пример такого имени хоста: "pay2"
* вызовы утилит chkconfig и service при вводе в домены заменены на вызовы systemctl, а сервис smb включается принудительно (ранее он не включался, т.к. предполагается, что он всегда включен благодаря пресету в пакете systemd)

****************
Samba в bug#9882
Comment 33 Vladimir Potapov 2019-05-08 03:52:26 MSK
Created attachment 5153 [details]
ss

Хост не подхватил
Comment 34 Mikhail Novosyolov 2019-05-08 04:19:59 MSK
Comment on attachment 5153 [details]
ss

Хост берется из выводов hostname --fqdn, hostname --short, hostname --domain, к /etc/resolv.conf это не имеет отношения. Если сделать hostnamectl set-hostname komp.keleg-home.ru, то подхватится.
Comment 35 Vladimir Potapov 2019-05-08 06:56:42 MSK
(In reply to Vladimir Potapov from comment #33)
> Хост не подхватил
nameserver-то задается IP, надо по IP получить имя и его распарсить.
nmblookup -A <ip>
Comment 36 Vladimir Potapov 2019-05-08 06:57:57 MSK
(In reply to Mikhail Novosyolov from comment #34)
> Хост берется из выводов hostname --fqdn, hostname --short, hostname
описАлся, не хост не подхватился, контроллер домена не вытащился
Comment 37 Mikhail Novosyolov 2019-05-08 10:59:19 MSK
(In reply to Vladimir Potapov from comment #35)
> (In reply to Vladimir Potapov from comment #33)
> > Хост не подхватил
> nameserver-то задается IP, надо по IP получить имя и его распарсить.
> nmblookup -A <ip>

У меня в виртуалке вот так:

# cat /etc/resolv.conf
# Generated by NetworkManager
search samba-dc1.loc
nameserver 192.168.122.1

nameserver не контроллер домена.

kde4 ~ # nmblookup -A 192.168.122.1
Looking up status of 192.168.122.1
No reply from 192.168.122.1

kde4 ~ # nmblookup -A 192.168.122.60
Looking up status of 192.168.122.60
	DC1             <00> -         M <ACTIVE> 
	DC1             <03> -         M <ACTIVE> 
	DC1             <20> -         M <ACTIVE> 
	DC1_DOMAIN      <1b> -         M <ACTIVE> 
	DC1_DOMAIN      <1c> - <GROUP> M <ACTIVE> 
	DC1_DOMAIN      <00> - <GROUP> M <ACTIVE> 
	__SAMBA__       <00> - <GROUP> M <ACTIVE> <PERMANENT> 
	__SAMBA__       <20> - <GROUP> M <ACTIVE> <PERMANENT> 

	MAC Address = 90-16-15-5E-83-7F

В последнем выводе nmblookup контроллера домена, как его парсить?
Comment 38 Mikhail Novosyolov 2019-05-08 11:00:52 MSK
wbinfo тоже хрень выдал:

kde4 ~ # wbinfo --dc-info DC1_DOMAIN
dc1.dc1.samba-dc1.loc (192.168.122.60)
kde4 ~ # ping dc1.dc1.samba-dc1.loc
ping: unknown host dc1.dc1.samba-dc1.loc
kde4 ~ # ping dc1.samba-dc1.loc
PING dc1.samba-dc1.loc (192.168.122.60) 56(84) bytes of data.
64 bytes from dc1.samba-dc1.loc (192.168.122.60): icmp_req=1 ttl=64 time=0.162 ms
Comment 39 Vladimir Potapov 2019-05-08 16:08:14 MSK
(In reply to Mikhail Novosyolov from comment #37)
> Looking up status of 192.168.122.60
> 	DC1             <00> -         M <ACTIVE> 
> 	DC1             <03> -         M <ACTIVE> 
> 	DC1             <20> -         M <ACTIVE> 
> 	DC1_DOMAIN      <1b> -         M <ACTIVE> 
> 	DC1_DOMAIN      <1c> - <GROUP> M <ACTIVE> 
> 	DC1_DOMAIN      <00> - <GROUP> M <ACTIVE> 
> 	__SAMBA__       <00> - <GROUP> M <ACTIVE> <PERMANENT> 
> 	__SAMBA__       <20> - <GROUP> M <ACTIVE> <PERMANENT> 
> 
> 	MAC Address = 90-16-15-5E-83-7F
> 
> В последнем выводе nmblookup контроллера домена, как его парсить?
Сочинил вот такое. Корявовато, но работает
nmblookup -A 192.168.0.100 |head -n 2 |tail -n 1| cut -f2|cut -d ' ' -f1
Comment 40 Mikhail Novosyolov 2019-05-08 17:46:02 MSK
***** QA ADVISORY *****

drakxtool 14.95
Guess domain controller address via nmblookup

+ https://abf.io/build_lists/3022666
+ https://abf.io/build_lists/3022667
Comment 41 Vladimir Potapov 2019-05-10 13:20:40 MSK
The update is sent to expanded testing
*****************************************
Comment 42 Vladimir Potapov 2019-05-14 06:11:09 MSK
drakxtools-14.95-1
https://abf.io/build_lists/3022666
https://abf.io/build_lists/3022667
****************************** Advisory ***********************
Fix user rights after domain entering
Fix user folder creating
Add auto-fill options
Fix password change by passwd
****************************************************************
QA Verified