Рейтинг:2

NFS4 + Kerberos не работает с ядра 5.10

флаг pe

Поскольку я обновился до Debian Bullseye, клиенты nfs перестали работать:

# mount -vvt nfs4 -o sec=krb5 nfs11:/srv /mnt
mount.nfs4: тайм-аут установлен на среду, 15 сентября, 20:25:49 2021 г.
mount.nfs4: пробуем текстовые опции 'sec=krb5,vers=4.2,addr=x.y.11.63, clientaddr=x.y.11.42'
mount.nfs4: mount(2): Отказано в доступе
mount.nfs4: доступ запрещен сервером при монтировании nfs11:/srv

Когда я устанавливаю ядро ​​​​5.9 (linux-image-5.9.0-0.bpo.5-cloud-amd64) в той же системе - все работает.

Я также пробовал:

  • Debian Testing Kernel (ядро 5.14) - не работает
  • Ubuntu 21.10 Impish (ядро 5.13) - не работает
  • Ubuntu 20.04 Focal (ядро 5.4) - работает

При условии, что все системы имеют одинаковую настройку NFS/Kerberos, мой вывод: что-то изменилось в ядре, что не позволяет монтировать общие ресурсы NFS/Kerberos.

  • Мой KDC - Samba4 AD
  • Мои настройки Kerberos и NFS довольно стандартны, как и в любом практическом руководстве.
  • HOSTNAME$@REALM nfs/fqdn@REALM host/...принципы есть в клиенте и на вкладке сервера

я кладу RPCGSSDOPTS="-vvv" в /etc/default/nfs-common для отладки. В следующих журналах:

  • nfs11 — мой тестовый сервер nfs (Debian 11, ядро ​​5.10)
  • tst2 — мой тестовый клиент nfs (Debian 11)

Вот системный журнал, когда клиент пытается смонтировать общий ресурс nfs:

клиент nfs загружается с ядром 5.9 (успешно монтируется)

rpc.gssd[446]: #012handle_gssd_upcall: 'mech=krb5 uid=0 service=* enctypes=18,17,16,23,3,1,2' (nfs/clnt0)
rpc.gssd[446]: krb5_use_machine_creds: uid 0 tgtname (null)
rpc.gssd[446]: полное имя хоста для nfs11.my.domain — nfs11.my.domain.
rpc.gssd[446]: полное имя хоста для tst2.my.domain — tst2.my.domain.
rpc.gssd[446]: успешно получена запись таблицы ключей для «[email protected]»
rpc.gssd[446]: gssd_get_single_krb5_cred: принципал '[email protected]' ccache: 'FILE:/tmp/krb5ccmachine_MY.DOMAIN'
rpc.gssd[446]: ИНФОРМАЦИЯ: учетные данные в CC 'FILE:/tmp/krb5ccmachine_MY.DOMAIN' действительны до 1631755378.
rpc.gssd[446]: создание TCP-клиента для сервера nfs11.my.domain
rpc.gssd[446]: DEBUG: порт уже установлен на 2049
rpc.gssd[446]: создание контекста с сервером [email protected]
rpc.gssd[446]: выполнение нисходящего вызова: life_rec=36000 [email protected]
rpc.gssd[446]: #012handle_gssd_upcall: 'mech=krb5 uid=0 enctypes=18,17,16,23,3,1,2' (nfs/clnt0)
rpc.gssd[446]: krb5_use_machine_creds: uid 0 tgtname (null)
rpc.gssd[446]: полное имя хоста для nfs11.my.domain — nfs11.my.domain.
rpc.gssd[446]: полное имя хоста для tst2.my.domain — tst2.my.domain.
rpc.gssd[446]: успешно получена запись таблицы ключей для «[email protected]»
rpc.gssd[446]: ИНФОРМАЦИЯ: учетные данные в CC 'FILE:/tmp/krb5ccmachine_MY.DOMAIN' действительны до 1631755378.
rpc.gssd[446]: ИНФОРМАЦИЯ: учетные данные в CC 'FILE:/tmp/krb5ccmachine_MY.DOMAIN' действительны до 1631755378.
rpc.gssd[446]: создание TCP-клиента для сервера nfs11.my.domain
rpc.gssd[446]: DEBUG: порт уже установлен на 2049
rpc.gssd[446]: создание контекста с сервером [email protected]
rpc.gssd[446]: выполнение нисходящего вызова: life_rec=36000 [email protected]
nfsidmap[524]: ключ: 0x3b88d120 тип: значение uid: [email protected] время ожидания 600
nfsidmap[524]: nfs4_name_to_uid: вызов nsswitch->name_to_uid
nfsidmap[524]: nss_getpwnam: имя '[email protected]' домен 'my.domain': результирующее локальное имя 'root'
nfsidmap[524]: nfs4_name_to_uid: nsswitch->name_to_uid вернул 0
nfsidmap[524]: nfs4_name_to_uid: окончательное возвращаемое значение равно 0
nfsidmap[525]: ключ: 0x317cb571 тип: значение gid: [email protected] время ожидания 600
nfsidmap[525]: nfs4_name_to_gid: вызов nsswitch->name_to_gid
nfsidmap[525]: nfs4_name_to_gid: nsswitch->name_to_gid вернул 0
nfsidmap[525]: nfs4_name_to_gid: окончательное возвращаемое значение равно 0

клиент nfs загружается с ядром 5.10 (не монтируется)

rpc.gssd[450]: #012handle_gssd_upcall: 'mech=krb5 uid=0 service=* enctypes=18,17,16,3,1,2' (nfs/clnt3)
rpc.gssd[450]: krb5_use_machine_creds: uid 0 tgtname (null)
rpc.gssd[450]: полное имя хоста для nfs11.my.domain — nfs11.my.domain.
rpc.gssd[450]: полное имя хоста для tst2.my.domain — tst2.my.domain.
rpc.gssd[450]: успешно получена запись таблицы ключей для «[email protected]»
rpc.gssd[450]: gssd_get_single_krb5_cred: принципал '[email protected]' ccache: 'FILE:/tmp/krb5ccmachine_MY.DOMAIN'
rpc.gssd[450]: ИНФОРМАЦИЯ: Учетные данные в CC 'FILE:/tmp/krb5ccmachine_MY.DOMAIN' действительны до 1631656676.
rpc.gssd[450]: ИНФОРМАЦИЯ: учетные данные в CC 'FILE:/tmp/krb5ccmachine_MY.DOMAIN' действительны до 1631629984.
rpc.gssd[450]: создание TCP-клиента для сервера nfs11.my.domain
rpc.gssd[450]: DEBUG: порт уже установлен на 2049
rpc.gssd[450]: создание контекста с сервером [email protected]
rpc.gssd[450]: ПРЕДУПРЕЖДЕНИЕ. Не удалось создать контекст krb5 для пользователя с uid 0 для сервера [email protected].
rpc.gssd[450]: ПРЕДУПРЕЖДЕНИЕ: не удалось создать контекст krb5 машины с кешем cred. ФАЙЛ:/tmp/krb5ccmachine_MY.DOMAIN для сервера nfs11.my.domain.
rpc.gssd[450]: создание TCP-клиента для сервера nfs11.my.domain
rpc.gssd[450]: DEBUG: порт уже установлен на 2049
rpc.gssd[450]: создание контекста с сервером [email protected]
rpc.gssd[450]: ПРЕДУПРЕЖДЕНИЕ. Не удалось создать контекст krb5 для пользователя с uid 0 для сервера [email protected].
rpc.gssd[450]: ПРЕДУПРЕЖДЕНИЕ: не удалось создать контекст krb5 машины с кешем cred. ФАЙЛ:/tmp/krb5ccmachine_MY.DOMAIN для сервера nfs11.my.domain.
rpc.gssd[450]: ПРЕДУПРЕЖДЕНИЕ. Кэш компьютера преждевременно истек или поврежден при попытке воссоздать кеш для сервера nfs11.my.domain.
rpc.gssd[450]: полное имя хоста для nfs11.my.domain — nfs11.my.domain.
rpc.gssd[450]: полное имя хоста для tst2.my.domain — tst2.my.domain.
rpc.gssd[450]: успешно получена запись таблицы ключей для «[email protected]»
rpc.gssd[450]: ИНФОРМАЦИЯ: Учетные данные в CC 'FILE:/tmp/krb5ccmachine_MY.DOMAIN' действительны до 1631656676.
rpc.gssd[450]: ИНФОРМАЦИЯ: Учетные данные в CC 'FILE:/tmp/krb5ccmachine_MY.DOMAIN' действительны до 1631656676.
rpc.gssd[450]: ИНФОРМАЦИЯ: учетные данные в CC 'FILE:/tmp/krb5ccmachine_MY.DOMAIN' действительны до 1631629984.
rpc.gssd[450]: создание TCP-клиента для сервера nfs11.my.domain
rpc.gssd[450]: DEBUG: порт уже установлен на 2049
rpc.gssd[450]: создание контекста с сервером [email protected]
rpc.gssd[450]: ПРЕДУПРЕЖДЕНИЕ. Не удалось создать контекст krb5 для пользователя с uid 0 для сервера [email protected].
rpc.gssd[450]: ПРЕДУПРЕЖДЕНИЕ: не удалось создать контекст krb5 машины с кешем cred. ФАЙЛ:/tmp/krb5ccmachine_MY.DOMAIN для сервера nfs11.my.domain.
rpc.gssd[450]: создание TCP-клиента для сервера nfs11.my.domain
rpc.gssd[450]: DEBUG: порт уже установлен на 2049
rpc.gssd[450]: создание контекста с сервером [email protected]
rpc.gssd[450]: ПРЕДУПРЕЖДЕНИЕ. Не удалось создать контекст krb5 для пользователя с uid 0 для сервера [email protected].
rpc.gssd[450]: ПРЕДУПРЕЖДЕНИЕ: не удалось создать контекст krb5 машины с кешем cred. ФАЙЛ:/tmp/krb5ccmachine_MY.DOMAIN для сервера nfs11.my.domain.
rpc.gssd[450]: ОШИБКА: не удалось создать контекст машины krb5 с любым кешем учетных данных для сервера nfs11.my.domain
rpc.gssd[450]: выполняется сброс ошибок

Я много гуглил и не нашел ничего похожего... В настоящее время в качестве обходного пути я запускаю резервное ядро ​​из предыдущего выпуска во всех клиентских системах nfs. Но я думаю, что это опасно, и что-то мне подсказывает, что он может сломаться в любой момент.

Кто-нибудь сталкивался с такой проблемой? Может быть, я должен что-то настроить, чтобы соответствовать изменениям в ядре? Может стоит залить баг ядра?

ОБНОВИТЬ. Добавлены журналы KDC.

KDC при монтировании с клиента с ядром 5.9 - успешно

[2021/09/21 21:55:12.061264, 3] ../../source4/smbd/service_stream.c:67(stream_terminate_connection)
  stream_terminate_connection: Завершение соединения — «dcesrv: NT_STATUS_CONNECTION_DISCONNECTED»
[2021/09/21 21:55:44.743415, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: AS-REQ [email protected] из ipv4:x.y.11.42:38701 для krbtgt/[email protected]
[2021/09/21 21:55:44.747105, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: клиент отправил типы: 150, 149
[2021/09/21 21:55:44.747154, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: поиск pa-данных PKINIT -- [email protected]
[2021/09/21 21:55:44.747178, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: поиск pa-данных ENC-TS -- [email protected]
[2021/09/21 21:55:44.747209, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: Предварительная аутентификация не найдена, возвращается PREAUTH-REQUIRED -- [email protected]
[2021/09/21 21:55:44.751030, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: AS-REQ [email protected] из ipv4:x.y.11.42:50506 для krbtgt/[email protected]
[2021/09/21 21:55:44.753959, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: клиент отправлял патипы: зашифрованная временная метка, 150, 149
[2021/09/21 21:55:44.754060, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: поиск pa-данных PKINIT -- [email protected]
[2021/09/21 21:55:44.754114, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: поиск pa-данных ENC-TS -- [email protected]
[2021/09/21 21:55:44.754187, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: предварительная аутентификация ENC-TS прошла успешно -- [email protected] с использованием arcfour-hmac-md5
[2021/09/21 21:55:44.754275, 3] ../../auth/auth_log.c:635(log_authentication_event_human_readable)
  Аутентификация: [Kerberos KDC, ENC-TS Pre-authentication] user [(null)]\[[email protected]] в [вторник, 21 сентября 2021 г., 21:55:44.754261 +06] с [arcfour-hmac-md5 ] статус [NT_STATUS_OK] рабочая станция [(null)] удаленный хост [ipv4:x.y.11.42:50506] стал [MYDOM]\[tst2$] [S-1-5-21-3408476796-3867293677-901807371-6619]. локальный хост [NULL] 
  {"отметка времени": "2021-09-21T21:55:44.754359+0600", "тип": "Аутентификация", "Аутентификация": {"версия": {"основная": 1, "дополнительная": 2}, "eventId": 4624, "logonId": "dd24014b273cc7a8", "logonType": 3, "status": "NT_STATUS_OK", "localAddress": null, "remoteAddress": "ipv4:xy11.42:50506", "serviceDescription" : "Kerberos KDC", "authDescription": "Предварительная аутентификация ENC-TS", "clientDomain": null, "clientAccount": "[email protected]", "workstation": null, "becameAccount": "tst2 $", "becameDomain": "MYDOM", "becameSid": "S-1-5-21-3408476796-3867293677-901807371-6619", "mappedAccount": "tst2$", "mappedDomain": "MYDOM", "netlogonComputer": null, "netlogonTrustAccount": null, "netlogonNegotiateFlags": "0x00000000", "netlogonSecureChannelType": 0, "netlogonTrustAccountSid": null, "passwordType": "arcfour-hmac-md5", "duration": 3366} }
[2021/09/21 21:55:44.761108, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: время аутентификации AS-REQ: 2021-09-21T21:55:44 время начала: не установлено время окончания: 2021-09-22T07:55:44 продлить до: 2021-09-22T21:55:44
[2021/09/21 21:55:44.761282, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: поддерживаемые клиентом типы enctype: arcfour-hmac-md5, aes128-cts-hmac-sha1-96, aes256-cts-hmac-sha1-96, использование arcfour-hmac-md5/arcfour-hmac-md5
[2021/09/21 21:55:44.761368, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: запрошенные флаги: возобновляемый-ок, пересылаемый
[2021/09/21 21:55:44.767382, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: TGS-REQ [email protected] от ipv4:x.y.11.42:39570 для nfs/[email protected] [канонизировать, возобновлять, пересылать]
[2021/09/21 21:55:44.773999, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: TGS-REQ authtime: 2021-09-21T21:55:44 starttime: 2021-09-21T21:55:44 endtime: 2021-09-22T07:55:44 продлить до: 2021-09-22T21:55:44
[2021/09/21 21:55:44.774695, 3] ../../source4/smbd/service_stream.c:67(stream_terminate_connection)
  stream_terminate_connection: Завершение соединения - 'kdc_tcp_call_loop: tstream_read_pdu_blob_recv() - NT_STATUS_CONNECTION_DISCONNECTED'

KDC при монтировании с клиента с ядром 5.10 - не удалось смонтировать

[2021/09/22 00:31:39.893723, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: AS-REQ [email protected] из ipv4:x.y.11.42:46094 для krbtgt/[email protected]
[2021/09/22 00:31:39.899112, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: клиент отправил типы: 150, 149
[2021/09/22 00:31:39.899162, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: поиск pa-данных PKINIT -- [email protected]
[2021/09/22 00:31:39.899186, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: поиск pa-данных ENC-TS -- [email protected]
[2021/09/22 00:31:39.899221, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: Предварительная аутентификация не найдена, возвращается PREAUTH-REQUIRED -- [email protected]
[2021/09/22 00:31:39.901942, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: AS-REQ [email protected] из ipv4:x.y.11.42:39303 для krbtgt/[email protected]
[2021/09/22 00:31:39.905030, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: клиент отправлял патипы: зашифрованная временная метка, 150, 149
[2021/09/22 00:31:39.905080, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: поиск pa-данных PKINIT -- [email protected]
[2021/09/22 00:31:39.905105, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: поиск pa-данных ENC-TS -- [email protected]
[2021/09/22 00:31:39.905171, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: предварительная аутентификация ENC-TS прошла успешно -- [email protected] с использованием arcfour-hmac-md5
[2021/09/22 00:31:39.905270, 3] ../../auth/auth_log.c:635(log_authentication_event_human_readable)
  Аутентификация: [Kerberos KDC, ENC-TS Pre-authentication] user [(null)]\[[email protected]] в [ср, 22 сентября 2021 г., 00:31:39.905248 +06] с [arcfour-hmac-md5 ] статус [NT_STATUS_OK] рабочая станция [(null)] удаленный хост [ipv4:x.y.11.42:39303] стал [MYDOM]\[tst2$] [S-1-5-21-3408476796-3867293677-901807371-6621]. локальный хост [NULL] 
  {"отметка времени": "2021-09-22T00:31:39.905331+0600", "тип": "Аутентификация", "Аутентификация": {"версия": {"основная": 1, "дополнительная": 2}, "eventId": 4624, "logonId": "8511280d720bd92c", "logonType": 3, "status": "NT_STATUS_OK", "localAddress": null, "remoteAddress": "ipv4:xy11.42:39303", "serviceDescription" : "Kerberos KDC", "authDescription": "Предварительная аутентификация ENC-TS", "clientDomain": null, "clientAccount": "[email protected]", "workstation": null, "becameAccount": "tst2 $", "becameDomain": "MYDOM", "becameSid": "S-1-5-21-3408476796-3867293677-901807371-6621", "mappedAccount": "tst2$", "mappedDomain": "MYDOM", "netlogonComputer": null, "netlogonTrustAccount": null, "netlogonNegotiateFlags": "0x00000000", "netlogonSecureChannelType": 0, "netlogonTrustAccountSid": null, "passwordType": "arcfour-hmac-md5", "duration": 3429} }
[2021/09/22 00:31:39.912509, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: время аутентификации AS-REQ: 2021-09-22T00:31:39 время начала: не установлено время окончания: 2021-09-22T10:31:39 продлить до: 2021-09-23T00:31:39
[2021/09/22 00:31:39.912597, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: поддерживаемые клиентом типы enctype: arcfour-hmac-md5, aes128-cts-hmac-sha1-96, aes256-cts-hmac-sha1-96, использование arcfour-hmac-md5/arcfour-hmac-md5
[2021/09/22 00:31:39.912663, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: запрошенные флаги: возобновляемый-ок, пересылаемый
[2021/09/22 00:31:39.918313, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: TGS-REQ [email protected] от ipv4:xy.11.42:59850 для nfs/[email protected] [канонизировать, возобновлять, пересылать]
[2021/09/22 00:31:39.924869, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: TGS-REQ authtime: 2021-09-22T00:31:39 starttime: 2021-09-22T00:31:39 endtime: 2021-09-22T10:31:39 продлить до: 2021-09-23T00:31:39
[2021/09/22 00:31:39.925340, 3] ../../source4/smbd/service_stream.c:67(stream_terminate_connection)
  stream_terminate_connection: Завершение соединения - 'kdc_tcp_call_loop: tstream_read_pdu_blob_recv() - NT_STATUS_CONNECTION_DISCONNECTED'
[2021/09/22 00:31:39.928319, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: TGS-REQ [email protected] от ipv4:xy.11.42:59852 для nfs/[email protected] [возобновляемый, пересылаемый]
[2021/09/22 00:31:39.930936, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: сервер (nfs/[email protected]) не поддерживает etypes
[2021/09/22 00:31:39.930998, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: не удалось создать TGS-REP для ipv4:xy.11.42:59852
[2021/09/22 00:31:39.931336, 3] ../../source4/smbd/service_stream.c:67(stream_terminate_connection)
  stream_terminate_connection: Завершение соединения - 'kdc_tcp_call_loop: tstream_read_pdu_blob_recv() - NT_STATUS_CONNECTION_DISCONNECTED'

Я понимаю Сервер (nfs/[email protected]) не поддерживает etypes ошибка. Google находит старые проблемы, связанные со старыми enctypes, ничего полезного. Все пакеты обновлены.

Я добился некоторого прогресса, благодаря комментариям. Я установил свежий Samba DC, подключил клиент (ядро 5.10) и сервер к новому KDC - и все заработало! Новый KDC позволяет клиентам NFS с любым ядром монтировать общие ресурсы. Похоже проблема в моем продакшене Samba DC. Я просмотрел базы данных ldap, и кажется, что они похожи, за исключением очень немногих дополнений к свежему контроллеру домена, таких как 3 новых объекта и некоторые поля. В настоящее время я не знаю, что мне следует настроить в производственном DC, чтобы он вел себя как новый. Переустановка будет последним средством, потому что это требует МНОГО времени.

Рабочий DC был создан давно, и несколько раз переносился с использованием стандартной репликации samba или резервных копий. Производство и свежая информация о DC:

  • oEMИнформация: предоставлено SAMBA 4.1.6-Ubuntu.
  • oEMInformation: Предоставлено SAMBA 4.13.5-Debian

В настоящее время контроллеры домена работают под управлением идентичных операционных систем Debian.

ОБНОВЛЕНИЕ 2. Решено!

Смотрите решение ниже.

Michael Hampton avatar
флаг cz
Проверьте журналы на сервере NFS и на KDC.
user1686 avatar
флаг fr
Можете ли вы попробовать `sysctl sunrpc.rpc_debug=0xFFFF`, чтобы получить больше журналов? Кроме того, доступен ли криптомодуль cts?
Alek_A avatar
флаг pe
@MichaelHampton, спасибо за ваше предложение! это позволило мне добиться некоторого прогресса. Я обновил пост. Я не включал журналы сервера, так как они не содержат ошибок или предупреждений.
Alek_A avatar
флаг pe
@user1686 user1686, спасибо за идею, я сделал это так же, как и отладку nfsd, но, к сожалению, журналы не сообщают, что что-то не так. Можете ли вы объяснить, что такое модуль `cts` и как мне проверить, доступен ли он?
user1686 avatar
флаг fr
Не уверен, связано ли это с найденным вами решением, но сообщение «Сервер (nfs/[email protected]) не поддерживает etypes» звучит очень похоже на то, что в учетной записи AD вашего сервера NFS отсутствует «Поддерживает AES128/AES256». параметры включены, поэтому KDC считает, что это только для RC4 (который скоро устареет).
user1686 avatar
флаг fr
(Я не уверен, что вы имели в виду под «присоединением клиента к новому контроллеру домена», хотя — вы настроили совершенно новый домен? У вас должен быть новый контроллер домена в том же домене, а затем понижение и уничтожение старого контроллера домена, оставив точно такое же содержимое каталога, но по-прежнему получает чистый контроллер домена с поддержкой AES.)
Alek_A avatar
флаг pe
@ user1686 Что касается «Сервер .. не поддерживает etypes», я думаю, что это вводящее в заблуждение сообщение, потому что я сомневаюсь, что новый сервер NFS с настройками по умолчанию в самой последней и обновленной ОС имеет проблемы с etypes. Не могли бы вы рассказать мне, как проверить, поддерживает ли сервер AES? Но это, вероятно, связано с какой-то внутренней ошибкой DC, вызванной старыми параметрами LDAP. «присоединил клиента к новому контроллеру домена» — я имел в виду буквальное присоединение этих хостов к новому контроллеру домена с помощью `msktutil`, контроллер домена является совершенно новым без сохранения содержимого LDAP. Не нужно понижать в должности и уничтожать старый, они могут сосуществовать.
user1686 avatar
флаг fr
Давайте [продолжим это обсуждение в чате](https://chat.stackexchange.com/rooms/129872/discussion-between-user1686-and-alek-a).
Рейтинг:2
флаг us

Linux удалил поддержку RC4-HMAC-MD5 из Kerberos в 5.10.. Ваш клиент использует этот тип шифрования, что можно увидеть в выводе журнала сервера:

[2021/09/21 21:55:44.761282, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: поддерживаемые клиентом типы enctype: arcfour-hmac-md5, aes128-cts-hmac-sha1-96, aes256-cts-hmac-sha1-96, использование arcfour-hmac-md5/arcfour-hmac-md5

Если бы были доступны типы AES, Samba должна была выбрать aes256-cts-hmac-sha1-96.

Этого нет ни в одном из ваших журналов, но я предполагаю, что ошибка TGS-REQ запрашивает des3-cbc-sha1, aes128-cts-hmac-sha1-96, aes256-cts-hmac-sha1-96. В этом можно убедиться, запустив rpc.gssd с параметрами -ввврр. В этом случае в учетной записи AD клиента не включены требуемые типы шифрования. Это произойдет, если клиент присоединился к домену в то время, когда Samba не поддерживала AES. Вы можете включить типы шифрования, сбросив пароль учетной записи AD клиента или присоединившись к домену. Вам также необходимо убедиться, что типы шифрования добавлены в таблицу ключей клиента. Это можно проверить, запустив клист -ке на клиенте.

Если вы используете определенные субъекты-службы, обязательно явно добавить типы шифрования в учетную запись клиента (при запуске АЦП net ads enctypes set <ACCOUNTNAME> 24). В противном случае будут экспортированы только типы ARCFOUR.

Alek_A avatar
флаг pe
Я рад, что ваш ответ помогает людям, судя по голосованию ;) Я наверняка сделал то, что вы предложили, и многое другое. К сожалению, единственным решением в моем конкретном случае было то, что я описал. Возможно, это связано с тем, что домен был предоставлен давно, или из-за того, что он когда-то был переименован. Поэтому помогло исправление LDAP-атрибутов контроллера домена.В любом случае спасибо за ваше время!
Рейтинг:1
флаг pe

Решение в моем случае было следующим: Я попытался сделать базу данных LDAP на моем производственном контроллере домена похожей на базу данных LDAP на свежем контроллере домена (который работает). Поэтому я изменил некоторые поля. Перезагрузил все. И это сработало!

Что именно я изменил.

Я добавил/изменил следующие поля в объекте DN: DC=мой,DC=домен с использованием ldbedit -H /var/lib/samba/private/sam.ldb:

msDS-поведение-версия: 4
msDS-NcType: 0
состояние сервера: 1

Производственный ДЦ был переименован в прошлом, но я нашел остатки (старые названия) в следующих объектах:

dn: CN=<старое имя>,CN=*,CN=ypServ30,CN=RpcServices,CN=System,DC=my,DC=domain

Я исправил это, переименовав их с помощью имя, Например:

ldbrename -H /var/lib/samba/private/sam.ldb 'CN=<старое-имя>,CN=bootparams,CN=ypServ30,CN=RpcServices,CN=System,DC=my,DC=domain' 'CN =<фактическое-имя>,CN=bootparams,CN=ypServ30,CN=RpcServices,CN=System,DC=my,DC=domain'

Возможно, не все эти изменения были необходимы, но теперь это работает. Спасибо за ваши комментарии!

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.