Практическая работа: Модуль 5. Работа Linux-компьютера в домене
См. также Требования, правила и цели выполнения практической работы
Практические задания
Задание 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:*:491200000:491200000:Administrator:/home/admin:/bin/bash
Проверьте команду
id
.admin@dc-1:~$ id uid=491200000(admin) gid=491200000(admins) группы=491200000(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
Переключитесь обратно на терминал tty7 Ctrl + Alt + F7
Проверьте команду
id ppetrov
.admin@dc-1:~$ id ppetrov uid=491200010(ppetrov) gid=491200010(ppetrov) группы=491200010(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' ... [sssd] [server_common_rotate_logs] (0x0010): Debug level changed to 0x07f0
Измените
debug level
на 8.
sudo sssctl debug-level 8 sudo grep 'Debug level changed' /var/log/sssd/sssd.logРезультат выполнения команды:
113 ... [sssd] [server_common_rotate_logs] (0x0010): Debug level changed to 0x07f0 157 ... [sssd] [server_common_rotate_logs] (0x0010): Debug level changed to 0x37f0В фильтре лога мы можем видеть два события: начало и конец. Это нужно для удобного просмотра лога, чтобы знать, где искать интервал отладочной информации от и до:
Проверьте лог между изменением уровней с 6 на 8.
Выберете строки между кодами смены уровня отладки 0x07f0 и 0x37f0 можно с помощью regex:
sudo cat -n /var/log/sssd/sssd.log | sed '113,157!d'
113 ... [sssd] [sbus_issue_request_done] (0x0400): org.freedesktop.DBus.GetConnectionUnixUser: Success 114 ... [sssd] [sbus_issue_request_done] (0x0400): org.freedesktop.DBus.GetConnectionUnixUser: Success 115 ... [sssd] [sbus_issue_request_done] (0x0400): org.freedesktop.DBus.GetConnectionUnixUser: Success 116 ... [sssd] [sbus_issue_request_done] (0x0400): org.freedesktop.DBus.GetConnectionUnixUser: Success 117 ... [sssd] [sbus_issue_request_done] (0x0400): org.freedesktop.DBus.GetConnectionUnixUser: Success 118 ... [sssd] [service_signal_done] (0x0010): Unable to signal service [2]: Нет такого файла или каталога 119 ... [sssd] [sbus_issue_request_done] (0x0400): org.freedesktop.DBus.GetConnectionUnixUser: Success 120 ... [sssd] [monitor_hup] (0x0020): Received SIGHUP. 121 ... [sssd] [te_server_hup] (0x0020): Received SIGHUP. Rotating logfiles. ... 157 ... [sssd] [server_common_rotate_logs] (0x0010): Debug level changed to admin
Задание 3.
Проверьте команду
kinit
черезKRB5_TRACE
верным паролем.
admin@dc-1:~$ env KRB5_TRACE=/dev/stdout kinit <<< 'Pa$$w0rd'
Проверьте
kinit
черезKRB5_TRACE
ошибочным паролем.
admin@dc-1:~$ env KRB5_TRACE=/dev/stdout kinit <<< 'Pa$$w0rd'
Сделайте
kdestroy
и проверьтеklist
черезKRB5_TRACE
.admin@dc-1:~$ env KRB5_TRACE=/dev/stdout kdestroy [31918] 1728039141.300859: Destroying ccache KEYRING:persistent:491200000:krb_ccache_Rcw54Ot admin@dc-1:~$ env KRB5_TRACE=/dev/stdout kinit <<< 'Pa$$w0rd' [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:491200000: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:491200000:krb_ccache_Rcw54Ot [31948] 1728039159.007427: Storing config in KEYRING:persistent:491200000: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:491200000:krb_ccache_Rcw54Ot [31948] 1728039159.007429: Storing config in KEYRING:persistent:491200000: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:491200000:krb_ccache_Rcw54Ot
Сделайте вход
kinit
и проверьтеklist
черезKRB5_TRACE
.admin@dc-1:~$ env KRB5_TRACE=/dev/stdout kinit <<< 'Pa$$w0rd' ... admin@dc-1:~$ env KRB5_TRACE=/dev/stdout klist Ticket cache: KEYRING:persistent:491200000:krb_ccache_Rcw54Ot Default principal: admin@ALD.COMPANY.LAN Valid starting Expires Service principal 02.04.2025 13:52:38 02.04.2025 13:52:38 krbtgt/ALD.COMPANY.LAN@ALD.COMPANY.LAN