Практическая работа: Модуль 5. Работа компьютера в домене
См. также Требования, правила и цели выполнения практической работы
Практические задания
Задание 1.
Выясните время хранения записей в быстром кэше sssd.
Сравните время выполнения команды id для доменного пользователя до и после очистки кэша.
Выясните, какой поставщик данных пользуется сервисом sssd.
Выясните, где и в какой последовательности будет производиться поиск данных о правилах SUDO для доменного пользователя.
Задание 2 Отладка SSSD
Проверьте getent passwd $USER.
Проверьте id.
Остановите sssd.
Проверьте id ppetrov.
Переключитесь на другой терминал tty4 Ctrl+Alt+F4.
Выполните вход от локального localadmin.
Запустите службу sssd.
Проверьте id ppetrov.
Измените debug level на 6.
Измените debug level на 8.
Проверьте лог между изменением уровней с 6 на 8.
Задание 3 KRB5_TRACE
Проверьте kinit через KRB5_TRACE верным паролем.
Проверьте kinit через KRB5_TRACE ошибочным паролем.
Сделайте kdestroy и проверьте klist через KRB5_TRACE.
Сделайте вход kinit и проверьте klist через KRB5_TRACE.
Практическая работа (с ответами)
Задание 1.
Выясните время хранения записей в быстром кэше sssd.
admin@dc-1:~$ sudo grep memcache_timeout /etc/sssd/sssd.conf
Сравните время выполнения команды id для доменного пользователя до и после очистки кэша.
admin@dc-1:~$ time id admin ... real 0m0,003s user 0m0,002s sys 0m0,000s admin@dc-1:~$ sudo -i root@dc-1:~# rm -rf /var/lib/sss/db/*; systemctl restart sssd root@dc-1:~# time id admin ... real 0m0,172s user 0m0,002s sys 0m0,000s
Выясните, какой поставщик данных пользуется сервисом sssd.
admin@dc-1:~$ sudo grep id_provider /etc/sssd/sssd.conf id_provider = ipa hostid_provider = ipa
Выясните, где и в какой последовательности будет производиться поиск данных о правилах SUDO для доменного пользователя.
admin@dc-1:~$ sudo grep sudoers /etc/nsswitch.conf sudoers: files sss admin@dc-1:~$ man nsswitch.conf
Задание 2.
Проверьте getent passwd $USER.
admin@dc-1:~$ getent passwd $USER admin:*:198800000:198800000:Administrator:/home/admin:/bin/bash
Проверьте id.
admin@dc-1:~$ id uid=198800000(admin) gid=198800000(admins) группы=198800000(admins),113(lpadmin),1001(astra-admin),1005611117(ald trust admin)
Остановите sssd.
admin@dc-1:~$ systemctl stop sssd
Проверьте id ppetrov.
admin@dc-1:~$ id ppetrov id: «ppetrov»: такого пользователя нет
Переключитесь на другой терминал tty4 Ctrl + Alt + F4.
Выполните вход от локального localadmin.
Запустите службу sssd.
localadmin@dc-1:~$ sudo systemctl start sssd
Проверьте id ppetrov.
admin@dc-1:~$ id ppetrov uid=198800010(ppetrov) gid=198800010(ppetrov) группы=198800010(ppetrov)
Измените debug level на 6.
Очистите логи, чтоб удобно было смотреть отладочную информацию:
admin@dc-1:~$ sudo apt install sssd-tools admin@dc-1:~$ sudo sssctl logs-remove Truncating log files...
Измените уровень отладки на 6 и просмотрите в лог файле изменение grep „Debug level changed“
admin@dc-1:~$ sudo sssctl debug-level 6 admin@dc-1:~$ sudo cat /var/log/sssd/sssd.log | grep 'Debug level changed' (2023-08-20 22:17:00): [sssd] [server_common_rotate_logs] (0x0010): Debug level changed to 0x07f0
Измените debug level на 8.
admin@dc-1:~$ sudo sssctl debug-level 8 admin@dc-1:~$ sudo grep 'Debug level changed' /var/log/sssd/sssd.logРезультат выполнения команды:
(2024-10-04 14:30:05): [sssd] [server_common_rotate_logs] (0x0010): Debug level changed to 0x07f0 (2024-10-04 14:31:24): [sssd] [server_common_rotate_logs] (0x0010): Debug level changed to 0x37f0В фильтре лога мы можем видеть два события: начало и конец. Это нужно для удобного просмотра лога, чтобы знать, где искать интервал отладочной информации от и до:
Проверьте лог между изменением уровней с 6 на 8.
Выберете строки между кодами смены уровня отладки 0x07f0 и 0x37f0 можно с помощью regex:
admin@dc-1:~$ sudo grep -zoP '(?<=0x07f0)(?s).*(?=0x37f0)' /var/log/sssd/sssd.log
(2024-10-04 14:30:05): [sssd] [sbus_issue_request_done] (0x0400): org.freedesktop.DBus.GetConnectionUnixUser: Success (2024-10-04 14:30:05): [sssd] [sbus_issue_request_done] (0x0400): org.freedesktop.DBus.GetConnectionUnixUser: Success (2024-10-04 14:30:05): [sssd] [sbus_issue_request_done] (0x0400): org.freedesktop.DBus.GetConnectionUnixUser: Success (2024-10-04 14:30:05): [sssd] [sbus_issue_request_done] (0x0400): org.freedesktop.DBus.GetConnectionUnixUser: Success (2024-10-04 14:30:05): [sssd] [sbus_issue_request_done] (0x0400): org.freedesktop.DBus.GetConnectionUnixUser: Success (2024-10-04 14:30:05): [sssd] [service_signal_done] (0x0010): Unable to signal service [2]: Нет такого файла или каталога (2024-10-04 14:30:05): [sssd] [sbus_issue_request_done] (0x0400): org.freedesktop.DBus.GetConnectionUnixUser: Success (2024-10-04 14:31:24): [sssd] [monitor_hup] (0x0020): Received SIGHUP. (2024-10-04 14:31:24): [sssd] [te_server_hup] (0x0020): Received SIGHUP. Rotating logfiles. (2024-10-04 14:31:24): [sssd] [server_common_rotate_logs] (0x0010): Debug level changed to admin
Задание 3.
Проверьте kinit через KRB5_TRACE верным паролем.
admin@dc-1:~$ env KRB5_TRACE=/dev/stdout kinit <<< AstraLinux_174
Проверьте kinit через KRB5_TRACE ошибочным паролем.
admin@dc-1:~$ env KRB5_TRACE=/dev/stdout kinit <<< AstraLinux_17
Сделайте kdestroy и проверьте klist через KRB5_TRACE.
admin@dc-1:~$ env KRB5_TRACE=/dev/stdout kdestroy [31918] 1728039141.300859: Destroying ccache KEYRING:persistent:198800000:krb_ccache_Rcw54Ot admin@dc-1:~$ env KRB5_TRACE=/dev/stdout kinit <<< AstraLinux_174 [31948] 1728039158.966301: Getting initial credentials for admin@ALD.COMPANY.LAN [31948] 1728039158.966303: Sending unauthenticated request [31948] 1728039158.966304: Sending request (191 bytes) to ALD.COMPANY.LAN [31948] 1728039158.966305: Initiating TCP connection to stream 10.0.1.11:88 [31948] 1728039158.966306: Sending TCP request to stream 10.0.1.11:88 [31948] 1728039158.966307: Received answer (514 bytes) from stream 10.0.1.11:88 [31948] 1728039158.966308: Terminating TCP connection to stream 10.0.1.11:88 [31948] 1728039158.966309: Response was from master KDC [31948] 1728039158.966310: Received error from KDC: -1765328359/Additional pre-authentication required [31948] 1728039158.966313: Preauthenticating using KDC method data [31948] 1728039158.966314: Processing preauth types: PA-PK-AS-REQ (16), PA-FX-FAST (136), PA-ETYPE-INFO2 (19), PA-PKINIT-KX (147), PA-SPAKE (151), PA-ENC-TIMESTAMP (2), PA_AS_FRESHNESS (150), PA-FX-COOKIE (133) [31948] 1728039158.966315: Selected etype info: etype aes256-cts, salt ")AHB ko0*Jz9hM7\", params "" [31948] 1728039158.966316: Received cookie: MIT1\x00\x00\x00\x0157`\x80lf\xe8\xado\xa2\x02\x89\xbe\xd7\x9f\xaf\x888G\xcdg\xaep\x81\x9a\xbb0m\xe2\xb464\x94\xa7\xdc\xd4\x8a\x8a5\xf2n\xacK \xad\\x04#c+`\xaf_\xc8\xf0\xaa\xa2m\xa6\xec\x1d\x16\xdd\x92\x0b\xf0LS,\x99]\xc4\x88\xb8X\xd5\xc6j\xea\x00\xed\x9e\xdcr.$\x84\x16\xa2\x9c\xfa\x8b\x01\x93\x97\x86o\xc3\xb8\x89\xb6\xb2\x19>\xc28^\x82\xb5\xee\x8c\xec\x17$\xe2\x9c\x97B\xec\xc7\x0a\x8f]\xa7*z\xbcoV\xc2 [31948] 1728039158.966317: PKINIT client has no configured identity; giving up [31948] 1728039158.966318: Preauth module pkinit (147) (info) returned: 0/Success [31948] 1728039158.966319: PKINIT client received freshness token from KDC [31948] 1728039158.966320: Preauth module pkinit (150) (info) returned: 0/Success [31948] 1728039158.966321: PKINIT client has no configured identity; giving up [31948] 1728039158.966322: Preauth module pkinit (16) (real) returned: 22/Недопустимый аргумент [31948] 1728039158.966323: SPAKE challenge received with group 1, pubkey 5C87A100D3781D25AF2ED15C16AE46D9C2E064F24E719428B8D8F741EB2A5CBF Password for admin@ALD.COMPANY.LAN: [31948] 1728039158.966324: SPAKE key generated with pubkey DE79ED1E4621F5E37676736ECDCC8D5943AD04966E7B701C1FD86F84EBEEC73D [31948] 1728039158.966325: SPAKE algorithm result: 3817D848CD21F0851824F647159070BC8D0CC7DF42B90C30884A083094287F09 [31948] 1728039158.966326: SPAKE final transcript hash: AA9210425A6D38B424115A89F88708162A29A75B005F5251788E14AD2E0E2C27 [31948] 1728039158.966327: Sending SPAKE response [31948] 1728039158.966328: Preauth module spake (151) (real) returned: 0/Success [31948] 1728039158.966329: Produced preauth for next request: PA-FX-COOKIE (133), PA-SPAKE (151) [31948] 1728039158.966330: Sending request (450 bytes) to ALD.COMPANY.LAN [31948] 1728039158.966331: Initiating TCP connection to stream 10.0.1.11:88 [31948] 1728039158.966332: Sending TCP request to stream 10.0.1.11:88 [31948] 1728039159.007419: Received answer (1575 bytes) from stream 10.0.1.11:88 [31948] 1728039159.007420: Terminating TCP connection to stream 10.0.1.11:88 [31948] 1728039159.007421: Response was from master KDC [31948] 1728039159.007422: AS key determined by preauth: aes256-cts/5567 [31948] 1728039159.007423: Decrypted AS reply; session key is: aes256-cts/22FA [31948] 1728039159.007424: FAST negotiation: available [31948] 1728039159.007425: Initializing KEYRING:persistent:198800000:krb_ccache_Rcw54Ot with default princ admin@ALD.COMPANY.LAN [31948] 1728039159.007426: Storing admin@ALD.COMPANY.LAN -> krbtgt/ALD.COMPANY.LAN@ALD.COMPANY.LAN in KEYRING:persistent:198800000:krb_ccache_Rcw54Ot [31948] 1728039159.007427: Storing config in KEYRING:persistent:198800000:krb_ccache_Rcw54Ot for krbtgt/ALD.COMPANY.LAN@ALD.COMPANY.LAN: fast_avail: yes [31948] 1728039159.007428: Storing admin@ALD.COMPANY.LAN -> krb5_ccache_conf_data/fast_avail/krbtgt\/ALD.COMPANY.LAN\@ALD.COMPANY.LAN@X-CACHECONF: in KEYRING:persistent:198800000:krb_ccache_Rcw54Ot [31948] 1728039159.007429: Storing config in KEYRING:persistent:198800000:krb_ccache_Rcw54Ot for krbtgt/ALD.COMPANY.LAN@ALD.COMPANY.LAN: pa_type: 151 [31948] 1728039159.007430: Storing admin@ALD.COMPANY.LAN -> krb5_ccache_conf_data/pa_type/krbtgt\/ALD.COMPANY.LAN\@ALD.COMPANY.LAN@X-CACHECONF: in KEYRING:persistent:198800000:krb_ccache_Rcw54Ot
Сделайте вход kinit и проверьте klist через KRB5_TRACE.
admin@dc-1:~$ env KRB5_TRACE=/dev/stdout kinit <<< AstraLinux_174 ... admin@dc-1:~$ env KRB5_TRACE=/dev/stdout klist Ticket cache: KEYRING:persistent:198800000:krb_ccache_Rcw54Ot Default principal: admin@ALD.COMPANY.LAN Valid starting Expires Service principal 04.10.2024 13:52:38 05.10.2024 13:52:38 krbtgt/ALD.COMPANY.LAN@ALD.COMPANY.LAN