Score:2

NFS4 + Kerberos ไม่ทำงานตั้งแต่เคอร์เนล 5.10

ธง pe

ตั้งแต่ฉันอัปเดตเป็น Debian Bullseye ไคลเอนต์ nfs หยุดทำงาน:

# เมานต์ -vvt nfs4 -o วินาที = krb5 nfs11:/srv /mnt
mount.nfs4: หมดเวลาที่กำหนดไว้สำหรับวันพุธที่ 15 กันยายน 20:25:49 น. 2564
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 (เคอร์เนล 5.14) - ไม่ทำงาน
  • Ubuntu 21.10 Impish (เคอร์เนล 5.13) - ไม่ทำงาน
  • Ubuntu 20.04 Focal (เคอร์เนล 5.4) - ใช้งานได้

โดยมีเงื่อนไขว่าระบบทั้งหมดมีการตั้งค่า NFS/Kerberos ที่เหมือนกัน ข้อสรุปของฉัน: มีบางอย่างเปลี่ยนแปลงในเคอร์เนลที่ไม่อนุญาตให้เมานต์การแชร์ NFS/Kerberos

  • KDC ของฉัน - โฆษณา Samba4
  • การตั้งค่า Kerberos และ NFS ของฉันค่อนข้างเป็นมาตรฐานทั่วไป เช่นเดียวกับวิธีการอื่นๆ
  • ชื่อโฮสต์$@REALM nfs/fqdn@REALM โฮสต์/...หลักการมีอยู่ในแท็บคีย์ไคลเอ็นต์และเซิร์ฟเวอร์

ฉันใส่ RPCGSSDOPTS="-vvv" ใน /etc/default/nfs-common สำหรับการดีบัก ในบันทึกต่อไปนี้:

  • nfs11 - เซิร์ฟเวอร์ทดสอบ nfs ของฉัน (Debian 11, เคอร์เนล 5.10)
  • tst2 - ไคลเอ็นต์ทดสอบ nfs ของฉัน (Debian 11)

นี่คือ syslog เมื่อไคลเอ็นต์พยายามเมานต์การแชร์ 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 (โมฆะ)
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: ccache หลัก '[email protected]':'FILE:/tmp/krb5ccmachine_MY.DOMAIN'
rpc.gssd[446]: INFO: ข้อมูลรับรองใน 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]: ทำ downcall: 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 (โมฆะ)
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]: INFO: ข้อมูลรับรองใน CC 'FILE:/tmp/krb5ccmachine_MY.DOMAIN' ใช้ได้จนถึง 1631755378
rpc.gssd[446]: INFO: ข้อมูลรับรองใน 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]: ทำ downcall: 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 (โมฆะ)
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: ccache หลัก '[email protected]':'FILE:/tmp/krb5ccmachine_MY.DOMAIN'
rpc.gssd[450]: INFO: ข้อมูลรับรองใน CC 'FILE:/tmp/krb5ccmachine_MY.DOMAIN' ใช้ได้จนถึง 1631656676
rpc.gssd[450]: INFO: ข้อมูลรับรองใน 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 ด้วยแคชเครดิต FILE:/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 ด้วยแคชเครดิต FILE:/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]: INFO: ข้อมูลรับรองใน CC 'FILE:/tmp/krb5ccmachine_MY.DOMAIN' ใช้ได้จนถึง 1631656676
rpc.gssd[450]: INFO: ข้อมูลรับรองใน CC 'FILE:/tmp/krb5ccmachine_MY.DOMAIN' ใช้ได้จนถึง 1631656676
rpc.gssd[450]: INFO: ข้อมูลรับรองใน 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 ด้วยแคชเครดิต FILE:/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 ด้วยแคชเครดิต FILE:/tmp/krb5ccmachine_MY.DOMAIN สำหรับเซิร์ฟเวอร์ nfs11.my.domain
rpc.gssd[450]: ข้อผิดพลาด: ไม่สามารถสร้างบริบทเครื่อง krb5 ด้วยแคชข้อมูลประจำตัวสำหรับเซิร์ฟเวอร์ nfs11.my.domain
rpc.gssd[450]: กำลังทำ downcall ข้อผิดพลาด

ฉัน googled มากและไม่พบสิ่งที่เกี่ยวข้อง ... ขณะนี้เป็นวิธีแก้ปัญหา ฉันเรียกใช้เคอร์เนลแบ็คพอร์ตจากรีลีสก่อนหน้าในระบบไคลเอนต์ nfs ทั้งหมด แต่ฉันคิดว่ามันอันตรายและมีบางอย่างบอกฉันว่ามันอาจจะแตกได้ทุกเมื่อ

มีใครประสบปัญหาดังกล่าวหรือไม่? บางทีฉันควรปรับบางอย่างเพื่อให้ตรงกับการเปลี่ยนแปลงในเคอร์เนล บางทีฉันควรเติมจุดบกพร่องของเคอร์เนล?

อัปเดต. เพิ่มบันทึก KDC

KDC ขณะติดตั้งจากไคลเอ็นต์ด้วยเคอร์เนล 5.9 - สำเร็จ

[21/09/2021 21:55:12.061264, 3] ../../source4/smbd/service_stream.c:67(stream_terminate_connection)
  stream_terminate_connection: ยุติการเชื่อมต่อ - 'dcesrv: NT_STATUS_CONNECTION_DISCONNECTED'
[21/09/2021 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]
[21/09/2021 21:55:44.747105, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: ลูกค้าส่งรูปแบบ: 150, 149
[21/09/2021 21:55:44.747154, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: กำลังมองหา PKINIT pa-data -- [email protected]
[21/09/2021 21:55:44.747178, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: กำลังมองหา ENC-TS pa-data -- [email protected]
[21/09/2021 21:55:44.747209, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: ไม่พบการตรวจสอบล่วงหน้า ส่งคืน PREAUTH-REQUIRED -- [email protected]
[21/09/2021 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]
[21/09/2021 21:55:44.753959, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: ไคลเอนต์ส่ง patypes: ประทับเวลาที่เข้ารหัส, 150, 149
[21/09/2021 21:55:44.754060, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: กำลังมองหา PKINIT pa-data -- [email protected]
[21/09/2021 21:55:44.754114, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: กำลังมองหา ENC-TS pa-data -- [email protected]
[21/09/2021 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
[21/09/2021 21:55:44.754275, 3] ../../auth/auth_log.c:635(log_authentication_event_human_readable)
  Auth: [Kerberos KDC,ENC-TS Pre-authentication] user [(null)]\[[email protected]] at [Tue, 21 Sep 2021 21:55:44.754261 +06] with [arcfour-hmac-md5 ] สถานะ [NT_STATUS_OK] เวิร์กสเตชัน [(null)] รีโมตโฮสต์ [ipv4:x.y.11.42:50506] กลายเป็น [MYDOM]\[tst2$] [S-1-5-21-3408476796-3867293677-901807371-6619] โฮสต์ท้องถิ่น [NULL] 
  {"timestamp": "2021-09-21T21:55:44.754359+0600", "type": "Authentication", "Authentication": {"version": {"major": 1, "minor": 2}, "eventId": 4624, "logonId": "dd24014b273cc7a8", "logonType": 3, "สถานะ": "NT_STATUS_OK", "localAddress": null, "remoteAddress": "ipv4:x.y.11.42:50506", "serviceDescription" : "Kerberos KDC", "authDescription": "การรับรองความถูกต้องล่วงหน้า ENC-TS", "clientDomain": null, "clientAccount": "[email protected]", "เวิร์กสเตชัน": 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} }
[21/09/2021 21:55:44.761108, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: AS-REQ authtime: 2021-09-21T21:55:44 เวลาเริ่มต้น: ไม่ได้ตั้งค่า เวลาสิ้นสุด: 2021-09-22T07:55:44 ต่ออายุจนถึง: 2021-09-22T21:55:44
[21/09/2021 21:55:44.761282, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: ไคลเอ็นต์รองรับ enctypes: arcfour-hmac-md5, aes128-cts-hmac-sha1-96, aes256-cts-hmac-sha1-96 โดยใช้ arcfour-hmac-md5/arcfour-hmac-md5
[21/09/2021 21:55:44.761368, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: แฟล็กที่ร้องขอ: ต่ออายุได้, ส่งต่อได้
[21/09/2021 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] [กำหนดรูปแบบมาตรฐาน ต่ออายุได้ ส่งต่อได้]
[21/09/2021 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 เวลาเริ่มต้น: 2021-09-21T21:55:44 เวลาสิ้นสุด: 2021-09-22T07:55:44 ต่ออายุจนถึง: 2021-09-22T21:55:44
[21/09/2021 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 - ไม่สามารถเมานต์ได้

[22/09/2021 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]
[22/09/2021 00:31:39.899112, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: ลูกค้าส่งรูปแบบ: 150, 149
[22/09/2021 00:31:39.899162, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: กำลังมองหา PKINIT pa-data -- [email protected]
[22/09/2021 00:31:39.899186, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: กำลังมองหา ENC-TS pa-data -- [email protected]
[22/09/2021 00:31:39.899221, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: ไม่พบการตรวจสอบล่วงหน้า ส่งคืน PREAUTH-REQUIRED -- [email protected]
[22/09/2021 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]
[22/09/2021 00:31:39.905030, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: ไคลเอนต์ส่ง patypes: ประทับเวลาที่เข้ารหัส, 150, 149
[22/09/2021 00:31:39.905080, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: กำลังมองหา PKINIT pa-data -- [email protected]
[22/09/2021 00:31:39.905105, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: กำลังมองหา ENC-TS pa-data -- [email protected]
[22/09/2021 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
[22/09/2021 00:31:39.905270, 3] ../../auth/auth_log.c:635(log_authentication_event_human_readable)
  Auth: [Kerberos KDC,ENC-TS Pre-authentication] ผู้ใช้ [(null)]\[[email protected]] ที่ [พุธ 22 ก.ย. 2564 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] 
  {"timestamp": "2021-09-22T00:31:39.905331+0600", "type": "Authentication", "Authentication": {"version": {"major": 1, "minor": 2}, "eventId": 4624, "logonId": "8511280d720bd92c", "logonType": 3, "สถานะ": "NT_STATUS_OK", "localAddress": null, "remoteAddress": "ipv4:x.y.11.42:39303", "serviceDescription" : "Kerberos KDC", "authDescription": "การรับรองความถูกต้องล่วงหน้า ENC-TS", "clientDomain": null, "clientAccount": "[email protected]", "เวิร์กสเตชัน": 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} }
[22/09/2021 00:31:39.912509, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: AS-REQ authtime: 2021-09-22T00:31:39 เวลาเริ่มต้น: ไม่ได้ตั้งค่า เวลาสิ้นสุด: 2021-09-22T10:31:39 ต่ออายุจนถึง: 2021-09-23T00:31:39
[22/09/2021 00:31:39.912597, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: ไคลเอ็นต์รองรับ enctypes: arcfour-hmac-md5, aes128-cts-hmac-sha1-96, aes256-cts-hmac-sha1-96 โดยใช้ arcfour-hmac-md5/arcfour-hmac-md5
[22/09/2021 00:31:39.912663, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: แฟล็กที่ร้องขอ: ต่ออายุได้, ส่งต่อได้
[22/09/2021 00:31:39.918313, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: TGS-REQ [email protected] จาก ipv4:x.y.11.42:59850 สำหรับ nfs/[email protected] [กำหนดรูปแบบมาตรฐาน ต่ออายุได้ ส่งต่อได้]
[22/09/2021 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 เวลาเริ่มต้น: 2021-09-22T00:31:39 เวลาสิ้นสุด: 2021-09-22T10:31:39 ต่ออายุจนถึง: 2021-09-23T00:31:39
[22/09/2021 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'
[22/09/2021 00:31:39.928319, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: TGS-REQ [email protected] จาก ipv4:x.y.11.42:59852 สำหรับ nfs/[email protected] [ต่ออายุได้ ส่งต่อได้]
[22/09/2021 00:31:39.930936, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: เซิร์ฟเวอร์ (nfs/[email protected]) ไม่รองรับ etype
[22/09/2021 00:31:39.930998, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: การสร้าง TGS-REP เป็น ipv4:x.y.11.42:59852 ล้มเหลว
[22/09/2021 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]) ไม่รองรับ etype ข้อผิดพลาด. Google พบปัญหาเก่าที่เกี่ยวข้องกับ enctypes เก่า ซึ่งไม่มีประโยชน์อะไรเลย แพ็คเกจทั้งหมดเป็นปัจจุบัน

ฉันมีความคืบหน้าขอบคุณความคิดเห็น ฉันติดตั้ง Samba DC ใหม่ เข้าร่วมทั้งไคลเอนต์ (5.10 เคอร์เนล) และเซิร์ฟเวอร์กับ KDC ใหม่ - และใช้งานได้! KDC ใหม่อนุญาตให้ไคลเอนต์ NFS ที่มีเคอร์เนลใด ๆ เพื่อเมานต์การแชร์ ดูเหมือนว่าปัญหาอยู่ที่การผลิต Samba DC ของฉัน ฉันดู ldap DBs และดูเหมือนว่าจะคล้ายกัน ยกเว้นการเพิ่มเพียงเล็กน้อยใน fresh dc เช่น 3 วัตถุใหม่และบางฟิลด์ ขณะนี้ฉันไม่รู้ว่าฉันควรปรับแต่งอะไรในการผลิต DC เพื่อให้มันทำงานเหมือนใหม่ ติดตั้งใหม่จะเป็นทางเลือกสุดท้ายเนื่องจากต้องใช้เวลามาก

Production DC ถูกสร้างขึ้นเมื่อนานมาแล้ว และถูกโยกย้ายหลายครั้งโดยใช้การจำลองแบบมาตรฐานหรือการสำรองข้อมูลของ samba การผลิตและข้อมูล DC สด:

  • ข้อมูล oEM: จัดทำโดย SAMBA 4.1.6-Ubuntu
  • ข้อมูล oEM: จัดทำโดย SAMBA 4.13.5-Debian

ปัจจุบัน DC กำลังทำงานภายใต้ระบบปฏิบัติการ Debian ที่เหมือนกัน

อัปเดต 2 แก้ไขแล้ว!

ดูวิธีแก้ปัญหาด้านล่าง

Michael Hampton avatar
cz flag
ตรวจสอบบันทึกบนเซิร์ฟเวอร์ NFS และบน KDC
user1686 avatar
fr flag
คุณลอง `sysctl sunrpc.rpc_debug=0xFFFF` เพื่อรับบันทึกเพิ่มเติมได้ไหม นอกจากนี้ โมดูล crypto `cts` พร้อมใช้งานหรือไม่
Alek_A avatar
pe flag
@MichaelHampton ขอบคุณสำหรับคำแนะนำของคุณ! มันทำให้ฉันก้าวหน้าได้บ้าง ฉันอัปเดตโพสต์ ฉันไม่ได้รวมบันทึกเซิร์ฟเวอร์เนื่องจากไม่มีข้อผิดพลาดหรือคำเตือน
Alek_A avatar
pe flag
@ user1686 ขอบคุณสำหรับไอเดีย ฉันทำมันแล้วเช่นเดียวกับการดีบัก nfsd แต่น่าเสียดายที่บันทึกไม่แสดงว่ามีบางอย่างผิดปกติ คุณช่วยอธิบายได้ไหมว่าโมดูล `cts` คืออะไร และฉันจะตรวจสอบได้อย่างไรว่ามีโมดูลนี้หรือไม่
user1686 avatar
fr flag
ไม่แน่ใจว่าเกี่ยวข้องกับโซลูชันที่คุณพบหรือไม่ แต่ข้อความ "เซิร์ฟเวอร์ (nfs/[email protected]) ไม่รองรับ etypes" ดูเหมือนว่าบัญชี AD ของเซิร์ฟเวอร์ NFS ของคุณไม่มี "รองรับ AES128/AES256" กำลังเปิดใช้งานพารามิเตอร์ ดังนั้น KDC จึงคิดว่าเป็น RC4 เท่านั้น (ซึ่งกำลังจะล้าสมัยในไม่ช้า)
user1686 avatar
fr flag
(ฉันไม่แน่ใจว่าคุณหมายถึงอะไรโดย "เข้าร่วมไคลเอนต์กับ DC ใหม่" แม้ว่าคุณได้ตั้งค่าโดเมนใหม่ทั้งหมดหรือไม่ คุณควรจะมี DC ใหม่เป็นโดเมนเดียวกัน จากนั้นจึงลดระดับและล้าง DC เก่า โดยคงไว้ เนื้อหาไดเร็กทอรีเดียวกันทุกประการ แต่ยังคงได้รับ DC สะอาดพร้อมรองรับ AES)
Alek_A avatar
pe flag
@user1686 สำหรับ `เซิร์ฟเวอร์ .. ไม่รองรับ etypes` ฉันคิดว่ามันเป็นข้อความที่ทำให้เข้าใจผิด เพราะฉันสงสัยว่าเซิร์ฟเวอร์ NFS ใหม่ที่มีการตั้งค่าเริ่มต้นภายใต้ระบบปฏิบัติการล่าสุดและที่อัปเดตมีปัญหากับ etypes คุณช่วยบอกวิธีตรวจสอบว่าเซิร์ฟเวอร์รองรับ AES ได้ไหม แต่อาจเกี่ยวข้องกับข้อผิดพลาด DC ภายในที่เกิดจากพารามิเตอร์ LDAP เก่า "เข้าร่วมไคลเอนต์กับ DC ใหม่" - ฉันหมายถึงการเข้าร่วมโฮสต์เหล่านั้นกับ dc ใหม่ด้วย `msktutil` อย่างแท้จริง dc นั้นใหม่ทั้งหมดโดยไม่ต้องเก็บเนื้อหา LDAP ไม่จำเป็นต้องลดระดับและกำจัดสิ่งเก่า พวกเขาอาจอยู่ร่วมกันได้
user1686 avatar
fr flag
ให้เรา [ดำเนินการสนทนาต่อในการแชท](https://chat.stackexchange.com/rooms/129872/discussion-between-user1686-and-alek-a)
Score:2
ธง us

Linux ลบการสนับสนุน RC4-HMAC-MD5 จาก Kerberos ใน 5.10. ลูกค้าของคุณใช้ประเภทการเข้ารหัสที่สามารถเห็นได้ในเอาต์พุตบันทึกของเซิร์ฟเวอร์:

[21/09/2021 21:55:44.761282, 3] ../../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: ไคลเอ็นต์รองรับ enctypes: 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 ด้วยพารามิเตอร์ -vvvrr. ในกรณีดังกล่าว บัญชี AD ของลูกค้าไม่ได้เปิดใช้งานประเภทการเข้ารหัสที่จำเป็น กรณีนี้จะเกิดขึ้นหากลูกค้าเข้าร่วมโดเมนในเวลาที่ Samba ไม่รองรับ AES คุณสามารถเปิดใช้งานประเภทการเข้ารหัสได้โดยการรีเซ็ตรหัสผ่านของบัญชี AD ของลูกค้าหรือเข้าร่วมโดเมนอีกครั้ง คุณจะต้องตรวจสอบให้แน่ใจว่าได้เพิ่มประเภทการเข้ารหัสลงในแท็บคีย์ของไคลเอ็นต์แล้ว สิ่งนี้สามารถตรวจสอบการทำงานได้ klist -ke บนไคลเอนต์

ในกรณีที่คุณใช้หลักการบริการเฉพาะ ตรวจสอบให้แน่ใจ เพิ่มประเภทการเข้ารหัสในบัญชีของลูกค้าอย่างชัดเจน (ในการเรียกใช้ ADC ประเภทของโฆษณาสุทธิตั้งค่า <ACCOUNTNAME> 24). มิฉะนั้น เฉพาะประเภท ARCFOUR เท่านั้นที่จะถูกส่งออก

Alek_A avatar
pe flag
ฉันดีใจที่คำตอบของคุณช่วยเหลือผู้คน ตัดสินจากการโหวต ;) ฉันทำตามที่คุณแนะนำและอีกมากมายอย่างแน่นอน น่าเสียดายที่ทางออกเดียวในกรณีเฉพาะของฉันคือฉันอธิบายไว้ อาจเป็นเพราะโดเมนได้รับการจัดสรรเมื่อนานมาแล้ว หรือเนื่องจากข้อเท็จจริงที่ว่าครั้งหนึ่งโดเมนนั้นเคยถูกเปลี่ยนชื่อ ดังนั้นการแก้ไขแอตทริบิวต์ LDAP ของ DC จึงช่วยได้อย่างไรก็ตาม ขอบคุณสำหรับเวลาของคุณ!
Score:1
ธง pe

วิธีแก้ปัญหาในกรณีของฉันคือ: ฉันพยายามทำให้ LDAP DB บน ​​DC ที่ใช้งานจริงดูเหมือน LDAP DB บน ​​DC ใหม่ (ซึ่งใช้งานได้) ดังนั้นฉันจึงเปลี่ยนฟิลด์บางส่วน รีบูตทุกอย่าง และได้ผล!

สิ่งที่ฉันเปลี่ยนไปอย่างแน่นอน

ฉันเพิ่ม/เปลี่ยนฟิลด์ต่อไปนี้ในวัตถุ dn: DC=my,DC=โดเมน โดยใช้ ldbedit -H /var/lib/samba/private/sam.ldb:

msDS-Behavior-เวอร์ชัน: 4
msDS-NcType: 0
สถานะเซิร์ฟเวอร์: 1

ในอดีต Production DC ถูกเปลี่ยนชื่อ แต่ฉันพบของเหลือ (ชื่อเก่า) ในวัตถุต่อไปนี้:

dn: CN=<ชื่อเก่า>,CN=*,CN=ypServ30,CN=RpcServices,CN=System,DC=my,DC=domain

ฉันแก้ไขปัญหานี้โดยเปลี่ยนชื่อเป็น ldbrename, ตัวอย่างเช่น:

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'

อาจไม่จำเป็นต้องทำการเปลี่ยนแปลงเหล่านี้ทั้งหมด แต่ตอนนี้ใช้ได้ผลแล้ว ขอบคุณสำหรับความคิดเห็นของคุณ!

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา