具有 krb5 的 Mount.cifs 失敗,而具有相同 krb5-ticket 的 smbclient 工作正常

具有 krb5 的 Mount.cifs 失敗,而具有相同 krb5-ticket 的 smbclient 工作正常

我們需要使用 S4U2Proxy 擴充來產生模擬 krb5-tickets (TGS)。票證已成功構建,我們可以毫無問題地使用它們,例如與 smbclient 一起使用。但事實上,我們需要將它們與 mount.cifs 或 mount.nfs 一起使用,但這是行不通的。

在進行 kinit(意味著擁有 TGT)掛載時,可以正常工作,沒有任何問題。

掛載或底層功能是否需要 TGT? (Smbclient顯然沒有)。如果沒有:mount 使用的 krb5-ticket 是否有特殊需求?

這是錯誤訊息:

mount error(126): Required key not available

我認為這是 dmesg 最重要的輸出(請參閱下面的完整輸出):

cifs_spnego.c: key description = ver=0x2;host=file.mydomain.local;ip4=10.211.55.28;sec=krb5;uid=0x0;creduid=0x3e8;user=jdoe;pid=0x289a

CIFS VFS: Send error in SessSetup = -126

Ubuntu 18.04,核心版本 4.15.0-66-generic

克列表:

Ticket cache: FILE:/tmp/krb5cc_1000
Default principal: [email protected]

Valid starting     Expires            Service principal
11/10/19 06:23:34  11/10/19 16:23:34  cifs/[email protected]
    renew until 11/11/19 06:23:34

使用的掛載指令:

sudo mount -t cifs -o username=jdoe,domain=mydomain.local,sec=krb5,cruid=1000 //file.mydomain.local/share1 /mnt

完整的 dmesg 輸出:

connect.c: Username: jdoe
connect.c: file mode: 0x1ed  dir mode: 0x1ed
connect.c: CIFS VFS: in cifs_mount as Xid: 182 with uid: 0
connect.c: UNC: \\file.mydomain.local\share1
connect.c: Socket created
connect.c: sndbuf 16384 rcvbuf 87380 rcvtimeo 0x6d6
fscache.c: cifs_fscache_get_client_cookie: (0x00000000dabd1b06/0x00000000d1987345)
connect.c: CIFS VFS: in cifs_get_smb_ses as Xid: 183 with uid: 0
connect.c: Existing smb sess not found
smb2pdu.c: Negotiate protocol
transport.c: Sending smb: smb_len=106
connect.c: Demultiplex PID: 10396
connect.c: RFC1002 header 0xf8
smb2misc.c: smb2_check_message length: 0xfc, smb_buf_length: 0xf8
smb2misc.c: SMB2 data length 120 offset 128
smb2misc.c: SMB2 len 252
transport.c: cifs_sync_mid_result: cmd=0 mid=0 state=4
misc.c: Null buffer passed to cifs_small_buf_release
smb2pdu.c: mode 0x1
smb2pdu.c: negotiated smb3.02 dialect
asn1.c: OID len = 10 oid = 0x1 0x3 0x6 0x1
asn1.c: OID len = 7 oid = 0x1 0x2 0x348 0xbb92
asn1.c: OID len = 7 oid = 0x1 0x2 0x348 0x1bb92
asn1.c: OID len = 8 oid = 0x1 0x2 0x348 0x1bb92
asn1.c: OID len = 10 oid = 0x1 0x3 0x6 0x1
connect.c: Security Mode: 0x1 Capabilities: 0x300067 TimeAdjust: 0
smb2pdu.c: Session Setup
smb2pdu.c: sess setup type 5
cifs_spnego.c: key description = ver=0x2;host=file.mydomain.local;ip4=10.211.55.28;sec=krb5;uid=0x0;creduid=0x3e8;user=jdoe;pid=0x289a
CIFS VFS: Send error in SessSetup = -126
connect.c: CIFS VFS: leaving cifs_get_smb_ses (xid = 183) rc = -126
fscache.c: cifs_fscache_release_client_cookie: (0x00000000dabd1b06/0x00000000d1987345)
connect.c: CIFS VFS: leaving cifs_mount (xid = 182) rc = -126

答案1

是的,已經安裝了 keyutils。同時,我們發現「mount」需要在keytab檔案中對應的條目指向kerberos。

相關內容