Практическая работа: Модуль 5. Работа компьютера в домене

См. также Требования, правила и цели выполнения практической работы

Практические задания

Задание 1.

  1. Выясните время хранения записей в быстром кэше sssd.

  2. Сравните время выполнения команды id для доменного пользователя до и после очистки кэша.

  3. Выясните, какой поставщик данных пользуется сервисом sssd.

  4. Выясните, где и в какой последовательности будет производиться поиск данных о правилах SUDO для доменного пользователя.

Задание 2 Отладка SSSD

  1. Проверьте getent passwd $USER.

  2. Проверьте id.

  3. Остановите sssd.

  4. Проверьте id ppetrov.

  5. Переключитесь на другой терминал tty4 Ctrl+Alt+F4.

  6. Выполните вход от локального localadmin.

  7. Запустите службу sssd.

  8. Проверьте id ppetrov.

  9. Измените debug level на 6.

  10. Измените debug level на 8.

  11. Проверьте лог между изменением уровней с 6 на 8.

Задание 3 KRB5_TRACE

  1. Проверьте kinit через KRB5_TRACE верным паролем.

  2. Проверьте kinit через KRB5_TRACE ошибочным паролем.

  3. Сделайте kdestroy и проверьте klist через KRB5_TRACE.

  4. Сделайте вход kinit и проверьте klist через KRB5_TRACE.

Практическая работа (с ответами)

Задание 1.

  1. Выясните время хранения записей в быстром кэше sssd.

    admin@dc-1:~$ sudo grep memcache_timeout /etc/sssd/sssd.conf
    
  2. Сравните время выполнения команды 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
    
  3. Выясните, какой поставщик данных пользуется сервисом sssd.

    admin@dc-1:~$ sudo grep id_provider /etc/sssd/sssd.conf
    id_provider = ipa
    hostid_provider = ipa
    
  4. Выясните, где и в какой последовательности будет производиться поиск данных о правилах SUDO для доменного пользователя.

    admin@dc-1:~$ sudo grep sudoers /etc/nsswitch.conf
    sudoers: files sss
    admin@dc-1:~$ man nsswitch.conf
    

Задание 2.

  1. Проверьте getent passwd $USER.

    admin@dc-1:~$ getent passwd $USER
    admin:*:198800000:198800000:Administrator:/home/admin:/bin/bash
    
  2. Проверьте id.

    admin@dc-1:~$ id
    uid=198800000(admin) gid=198800000(admins) группы=198800000(admins),113(lpadmin),1001(astra-admin),1005611117(ald trust admin)
    
  3. Остановите sssd.

    admin@dc-1:~$ systemctl stop sssd
    
  4. Проверьте id ppetrov.

    admin@dc-1:~$ id ppetrov
    id: «ppetrov»: такого пользователя нет
    
  5. Переключитесь на другой терминал tty4 Ctrl + Alt + F4.

  6. Выполните вход от локального localadmin.

  7. Запустите службу sssd.

    localadmin@dc-1:~$ sudo systemctl start sssd
    
  8. Проверьте id ppetrov.

    admin@dc-1:~$ id ppetrov
    uid=198800010(ppetrov) gid=198800010(ppetrov) группы=198800010(ppetrov)
    
  9. Измените 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
    
  10. Измените 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

В фильтре лога мы можем видеть два события: начало и конец. Это нужно для удобного просмотра лога, чтобы знать, где искать интервал отладочной информации от и до:

  1. Проверьте лог между изменением уровней с 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.

  1. Проверьте kinit через KRB5_TRACE верным паролем.

admin@dc-1:~$ env KRB5_TRACE=/dev/stdout kinit <<< AstraLinux_174
  1. Проверьте kinit через KRB5_TRACE ошибочным паролем.

admin@dc-1:~$ env KRB5_TRACE=/dev/stdout kinit <<< AstraLinux_17
  1. Сделайте 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
    
  2. Сделайте вход 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