Назад | Перейти на главную страницу

SSSD + Samba + SSH Проблемы с аутентификацией GSSAPI

Я настраиваю SSSD + Samba + SSH на CentOS 7.6. Пока мне удалось заставить работать хотя бы все 3. SSSD настраивается и подключается с помощью realm join. Samba настраивается и подключается к AD через net ads join. Однако по какой-то причине я не могу заставить аутентификацию GSSAPI работать с этой комбинацией. SSH постоянно жаловался на проблему с билетами keytab. Во-первых, заметил, что номер квно рассинхронизировался. SSH пытается использовать kvno 2, тогда как на сервере kvno 4. Это приводит к сбою аутентификации GSSAPI и по умолчанию используется пароль для входа, который работает.

secure.log

Apr 13 01:33:17 test-server sshd[10827]: debug1: Unspecified GSS failure.  Minor code may provide more information\nRequest ticket server host/test-server.example.com@EXAMPLE.COM kvno 2 not found in keytab; ticket is likely out of date\n

klist -kt

Keytab name: FILE:/etc/krb5.keytab
KVNO Timestamp           Principal
---- ------------------- ------------------------------------------------------
   4 04/13/2019 01:21:34 TEST-SERVER$@EXAMPLE.COM
   4 04/13/2019 01:21:34 TEST-SERVER$@EXAMPLE.COM
   4 04/13/2019 01:21:34 TEST-SERVER$@EXAMPLE.COM
   4 04/13/2019 01:21:34 TEST-SERVER$@EXAMPLE.COM
   4 04/13/2019 01:21:34 TEST-SERVER$@EXAMPLE.COM
   4 04/13/2019 01:21:34 host/TEST-SERVER@EXAMPLE.COM
   4 04/13/2019 01:21:34 host/TEST-SERVER@EXAMPLE.COM
   4 04/13/2019 01:21:34 host/TEST-SERVER@EXAMPLE.COM
   4 04/13/2019 01:21:34 host/TEST-SERVER@EXAMPLE.COM
   4 04/13/2019 01:21:34 host/TEST-SERVER@EXAMPLE.COM
   4 04/13/2019 01:21:34 host/test-server.example.com@EXAMPLE.COM
   4 04/13/2019 01:21:34 host/test-server.example.com@EXAMPLE.COM
   4 04/13/2019 01:21:34 host/test-server.example.com@EXAMPLE.COM
   4 04/13/2019 01:21:34 host/test-server.example.com@EXAMPLE.COM
   4 04/13/2019 01:21:34 host/test-server.example.com@EXAMPLE.COM
   4 04/13/2019 01:21:34 RestrictedKrbHost/TEST-SERVER@EXAMPLE.COM
   4 04/13/2019 01:21:34 RestrictedKrbHost/TEST-SERVER@EXAMPLE.COM
   4 04/13/2019 01:21:34 RestrictedKrbHost/TEST-SERVER@EXAMPLE.COM
   4 04/13/2019 01:21:34 RestrictedKrbHost/TEST-SERVER@EXAMPLE.COM
   4 04/13/2019 01:21:34 RestrictedKrbHost/TEST-SERVER@EXAMPLE.COM
   4 04/13/2019 01:21:34 RestrictedKrbHost/test-server.example.com@EXAMPLE.COM
   4 04/13/2019 01:21:34 RestrictedKrbHost/test-server.example.com@EXAMPLE.COM
   4 04/13/2019 01:21:34 RestrictedKrbHost/test-server.example.com@EXAMPLE.COM
   4 04/13/2019 01:21:34 RestrictedKrbHost/test-server.example.com@EXAMPLE.COM
   4 04/13/2019 01:21:34 RestrictedKrbHost/test-server.example.com@EXAMPLE.COM
   5 04/13/2019 01:27:02 restrictedkrbhost/test-server.example.com@EXAMPLE.COM
   5 04/13/2019 01:27:02 restrictedkrbhost/TEST-SERVER@EXAMPLE.COM
   5 04/13/2019 01:27:02 restrictedkrbhost/test-server.example.com@EXAMPLE.COM
   5 04/13/2019 01:27:02 restrictedkrbhost/TEST-SERVER@EXAMPLE.COM
   5 04/13/2019 01:27:02 restrictedkrbhost/test-server.example.com@EXAMPLE.COM
   5 04/13/2019 01:27:02 restrictedkrbhost/TEST-SERVER@EXAMPLE.COM
   5 04/13/2019 01:27:02 restrictedkrbhost/test-server.example.com@EXAMPLE.COM
   5 04/13/2019 01:27:02 restrictedkrbhost/TEST-SERVER@EXAMPLE.COM
   5 04/13/2019 01:27:02 restrictedkrbhost/test-server.example.com@EXAMPLE.COM
   5 04/13/2019 01:27:02 restrictedkrbhost/TEST-SERVER@EXAMPLE.COM
   5 04/13/2019 01:27:02 host/test-server.example.com@EXAMPLE.COM
   5 04/13/2019 01:27:02 host/TEST-SERVER@EXAMPLE.COM
   5 04/13/2019 01:27:02 host/test-server.example.com@EXAMPLE.COM
   5 04/13/2019 01:27:02 host/TEST-SERVER@EXAMPLE.COM
   5 04/13/2019 01:27:02 host/test-server.example.com@EXAMPLE.COM
   5 04/13/2019 01:27:02 host/TEST-SERVER@EXAMPLE.COM
   5 04/13/2019 01:27:02 host/test-server.example.com@EXAMPLE.COM
   5 04/13/2019 01:27:02 host/TEST-SERVER@EXAMPLE.COM
   5 04/13/2019 01:27:02 host/test-server.example.com@EXAMPLE.COM
   5 04/13/2019 01:27:02 host/TEST-SERVER@EXAMPLE.COM
   5 04/13/2019 01:27:02 TEST-SERVER$@EXAMPLE.COM
   5 04/13/2019 01:27:02 TEST-SERVER$@EXAMPLE.COM
   5 04/13/2019 01:27:02 TEST-SERVER$@EXAMPLE.COM
   5 04/13/2019 01:27:02 TEST-SERVER$@EXAMPLE.COM
   5 04/13/2019 01:27:02 TEST-SERVER$@EXAMPLE.COM
   5 04/13/2019 01:27:02 RestrictedKrbHost/test-server.example.com@EXAMPLE.COM
   5 04/13/2019 01:27:02 RestrictedKrbHost/TEST-SERVER@EXAMPLE.COM
   5 04/13/2019 01:27:02 RestrictedKrbHost/test-server.example.com@EXAMPLE.COM
   5 04/13/2019 01:27:02 RestrictedKrbHost/TEST-SERVER@EXAMPLE.COM
   5 04/13/2019 01:27:02 RestrictedKrbHost/test-server.example.com@EXAMPLE.COM
   5 04/13/2019 01:27:02 RestrictedKrbHost/TEST-SERVER@EXAMPLE.COM
   5 04/13/2019 01:27:02 RestrictedKrbHost/test-server.example.com@EXAMPLE.COM
   5 04/13/2019 01:27:02 RestrictedKrbHost/TEST-SERVER@EXAMPLE.COM
   5 04/13/2019 01:27:02 RestrictedKrbHost/test-server.example.com@EXAMPLE.COM
   5 04/13/2019 01:27:02 RestrictedKrbHost/TEST-SERVER@EXAMPLE.COM

Я определил, что это произошло потому, что я не удалял объект компьютера из AD, хотя я не знаю, почему SSH не пытается сопоставить текущий kvno. Я убедился, что AD возвращает правильный номер. После удаления компьютерного объекта я повторил шаги для присоединения. Он воссоздал компьютерный объект и сбросил значение kvno на 2. Однако теперь SSH жалуется, что запись keytab зашифрована с использованием aes256-cts и не может расшифровать.

secure.log

Apr 13 02:01:35 test-server sshd[13788]: debug1: Unspecified GSS failure.  Minor code may provide more information\nRequest ticket server host/test-server.example.com@EXAMPLE.COM kvno 2 enctype aes256-cts found i   n keytab but cannot decrypt ticket\n

klist -kt -e

Keytab name: FILE:/etc/krb5.keytab
KVNO Timestamp           Principal
---- ------------------- ------------------------------------------------------
   2 04/13/2019 02:00:54 TEST-SERVER$@EXAMPLE.COM (des-cbc-crc)
   2 04/13/2019 02:00:54 TEST-SERVER$@EXAMPLE.COM (des-cbc-md5)
   2 04/13/2019 02:00:54 TEST-SERVER$@EXAMPLE.COM (arcfour-hmac)
   2 04/13/2019 02:00:54 TEST-SERVER$@EXAMPLE.COM (aes128-cts-hmac-sha1-96)
   2 04/13/2019 02:00:54 TEST-SERVER$@EXAMPLE.COM (aes256-cts-hmac-sha1-96)
   2 04/13/2019 02:00:54 host/TEST-SERVER@EXAMPLE.COM (des-cbc-crc)
   2 04/13/2019 02:00:54 host/TEST-SERVER@EXAMPLE.COM (des-cbc-md5)
   2 04/13/2019 02:00:54 host/TEST-SERVER@EXAMPLE.COM (arcfour-hmac)
   2 04/13/2019 02:00:54 host/TEST-SERVER@EXAMPLE.COM (aes128-cts-hmac-sha1-96)
   2 04/13/2019 02:00:54 host/TEST-SERVER@EXAMPLE.COM (aes256-cts-hmac-sha1-96)
   2 04/13/2019 02:00:54 host/test-server.example.com@EXAMPLE.COM (des-cbc-crc)
   2 04/13/2019 02:00:54 host/test-server.example.com@EXAMPLE.COM (des-cbc-md5)
   2 04/13/2019 02:00:54 host/test-server.example.com@EXAMPLE.COM (arcfour-hmac)
   2 04/13/2019 02:00:54 host/test-server.example.com@EXAMPLE.COM (aes128-cts-hmac-sha1-96)
   2 04/13/2019 02:00:54 host/test-server.example.com@EXAMPLE.COM (aes256-cts-hmac-sha1-96)
   2 04/13/2019 02:00:54 RestrictedKrbHost/TEST-SERVER@EXAMPLE.COM (des-cbc-crc)
   2 04/13/2019 02:00:54 RestrictedKrbHost/TEST-SERVER@EXAMPLE.COM (des-cbc-md5)
   2 04/13/2019 02:00:54 RestrictedKrbHost/TEST-SERVER@EXAMPLE.COM (arcfour-hmac)
   2 04/13/2019 02:00:54 RestrictedKrbHost/TEST-SERVER@EXAMPLE.COM (aes128-cts-hmac-sha1-96)
   2 04/13/2019 02:00:54 RestrictedKrbHost/TEST-SERVER@EXAMPLE.COM (aes256-cts-hmac-sha1-96)
   2 04/13/2019 02:00:54 RestrictedKrbHost/test-server.example.com@EXAMPLE.COM (des-cbc-crc)
   2 04/13/2019 02:00:54 RestrictedKrbHost/test-server.example.com@EXAMPLE.COM (des-cbc-md5)
   2 04/13/2019 02:00:54 RestrictedKrbHost/test-server.example.com@EXAMPLE.COM (arcfour-hmac)
   2 04/13/2019 02:00:54 RestrictedKrbHost/test-server.example.com@EXAMPLE.COM (aes128-cts-hmac-sha1-96)
   2 04/13/2019 02:00:54 RestrictedKrbHost/test-server.example.com@EXAMPLE.COM (aes256-cts-hmac-sha1-96)
   3 04/13/2019 02:01:10 restrictedkrbhost/test-server.example.com@EXAMPLE.COM (des-cbc-crc)
   3 04/13/2019 02:01:10 restrictedkrbhost/TEST-SERVER@EXAMPLE.COM (des-cbc-crc)
   3 04/13/2019 02:01:10 restrictedkrbhost/test-server.example.com@EXAMPLE.COM (des-cbc-md5)
   3 04/13/2019 02:01:10 restrictedkrbhost/TEST-SERVER@EXAMPLE.COM (des-cbc-md5)
   3 04/13/2019 02:01:10 restrictedkrbhost/test-server.example.com@EXAMPLE.COM (aes128-cts-hmac-sha1-96)
   3 04/13/2019 02:01:10 restrictedkrbhost/TEST-SERVER@EXAMPLE.COM (aes128-cts-hmac-sha1-96)
   3 04/13/2019 02:01:10 restrictedkrbhost/test-server.example.com@EXAMPLE.COM (aes256-cts-hmac-sha1-96)
   3 04/13/2019 02:01:10 restrictedkrbhost/TEST-SERVER@EXAMPLE.COM (aes256-cts-hmac-sha1-96)
   3 04/13/2019 02:01:10 restrictedkrbhost/test-server.example.com@EXAMPLE.COM (arcfour-hmac)
   3 04/13/2019 02:01:10 restrictedkrbhost/TEST-SERVER@EXAMPLE.COM (arcfour-hmac)
   3 04/13/2019 02:01:10 host/test-server.example.com@EXAMPLE.COM (des-cbc-crc)
   3 04/13/2019 02:01:10 host/TEST-SERVER@EXAMPLE.COM (des-cbc-crc)
   3 04/13/2019 02:01:10 host/test-server.example.com@EXAMPLE.COM (des-cbc-md5)
   3 04/13/2019 02:01:10 host/TEST-SERVER@EXAMPLE.COM (des-cbc-md5)
   3 04/13/2019 02:01:10 host/test-server.example.com@EXAMPLE.COM (aes128-cts-hmac-sha1-96)
   3 04/13/2019 02:01:10 host/TEST-SERVER@EXAMPLE.COM (aes128-cts-hmac-sha1-96)
   3 04/13/2019 02:01:10 host/test-server.example.com@EXAMPLE.COM (aes256-cts-hmac-sha1-96)
   3 04/13/2019 02:01:10 host/TEST-SERVER@EXAMPLE.COM (aes256-cts-hmac-sha1-96)
   3 04/13/2019 02:01:10 host/test-server.example.com@EXAMPLE.COM (arcfour-hmac)
   3 04/13/2019 02:01:10 host/TEST-SERVER@EXAMPLE.COM (arcfour-hmac)
   3 04/13/2019 02:01:10 TEST-SERVER$@EXAMPLE.COM (des-cbc-crc)
   3 04/13/2019 02:01:10 TEST-SERVER$@EXAMPLE.COM (des-cbc-md5)
   3 04/13/2019 02:01:10 TEST-SERVER$@EXAMPLE.COM (aes128-cts-hmac-sha1-96)
   3 04/13/2019 02:01:10 TEST-SERVER$@EXAMPLE.COM (aes256-cts-hmac-sha1-96)
   3 04/13/2019 02:01:10 TEST-SERVER$@EXAMPLE.COM (arcfour-hmac)
   3 04/13/2019 02:01:10 RestrictedKrbHost/test-server.example.com@EXAMPLE.COM (des-cbc-crc)
   3 04/13/2019 02:01:10 RestrictedKrbHost/TEST-SERVER@EXAMPLE.COM (des-cbc-crc)
   3 04/13/2019 02:01:10 RestrictedKrbHost/test-server.example.com@EXAMPLE.COM (des-cbc-md5)
   3 04/13/2019 02:01:10 RestrictedKrbHost/TEST-SERVER@EXAMPLE.COM (des-cbc-md5)
   3 04/13/2019 02:01:10 RestrictedKrbHost/test-server.example.com@EXAMPLE.COM (aes128-cts-hmac-sha1-96)
   3 04/13/2019 02:01:10 RestrictedKrbHost/TEST-SERVER@EXAMPLE.COM (aes128-cts-hmac-sha1-96)
   3 04/13/2019 02:01:10 RestrictedKrbHost/test-server.example.com@EXAMPLE.COM (aes256-cts-hmac-sha1-96)
   3 04/13/2019 02:01:10 RestrictedKrbHost/TEST-SERVER@EXAMPLE.COM (aes256-cts-hmac-sha1-96)
   3 04/13/2019 02:01:10 RestrictedKrbHost/test-server.example.com@EXAMPLE.COM (arcfour-hmac)
   3 04/13/2019 02:01:10 RestrictedKrbHost/TEST-SERVER@EXAMPLE.COM (arcfour-hmac)

Так что именно я здесь делаю не так? Всегда ли SSH должен использовать kvno 2? Какое шифрование должно использоваться для записи в keytab, чтобы SSH мог ее прочитать? А как мне настроить шифрование?

Похоже, у вас работает аутентификация имени пользователя и пароля домена, пока пользователь вводит имя и пароль. GSSAPI auth, как вы обнаружили, немного сложнее.

Что значит kinit -k $( hostname -f )@EXAMPLE.COM возвращение?

Для сброса пароля машины мне нравится использовать msktutil (из EPEL):

kdestroy -A
kinit domainadmin
msktutil -f -s host
msktutil -u -s host
kinit -k "$( hostname -s | tr '[[:lower:]]' '[[:upper:]]' )\$@MSAD.EXAMPLE.COM"

Источник: мое сообщение в блоге: https://bgstack15.wordpress.com/2018/09/06/kerberos-notes-and-sssd-internal-credentials-cache-error/