SMB3 Linuxサーバーでcifs共有をマウントする方法は?

SMB3 Linuxサーバーでcifs共有をマウントする方法は?

セキュリティ上の理由から、私のサーバーではSMB3プロトコルのみが有効になっています。

server min protocol = SMB3
client max protocol = SMB3

クライアントにも同じ設定があります。 smbclientは正常に動作しますが、問題はmount.cifsを使用してマウントできないことです。私にエラー-95が発生します

Kerberosを使ってみました。

mount -t cifs -o vers=3.0,username=myuser,rw,soft,sec=krb5i  //myserver/Myshare /mnt

そして通過

mount -t cifs -o vers=3.0,username=myuser,password=mypass,rw,soft  //myserver/Myshare /mnt

ただし、どちらの場合も同じエラー-95が発生します。

 CIFS VFS: Dialect not supported by server. Consider specifying vers=1.0 or vers=2.0 on mount for accessing older servers
CIFS VFS: cifs_mount failed w/return code = -95

答え1

少なくともKerberosとバージョン3.1.1のソリューションを見つけました。

私のユーザー名が「pino」であると仮定すると、まずADサーバー(Windows、Samba4など)に偽のユーザー「cifs1」のキータブを作成する必要があります。

ssh samba4.ad.server
samba-tool user delete cifs1
samba-tool user create cifs1 --random-password
samba-tool spn add cifs/yourclient.fqdn cifs1
samba-tool domain exportkeytab cifs1.keytab --principal=cifs/yourclient.fqdn

次に、/etc/request.key.conf ファイルを編集し、次の 2 行を追加します。

create  cifs.spnego    *        *               /usr/sbin/cifs.upcall %k
create  dns_resolver   *        *               /usr/sbin/cifs.upcall %k

次に、広告サーバーからクライアントにキータブを安全にコピーし、クライアントのキータブ krb5.keytab とマージします。

(echo rkt cifs1.keytab ; echo wkt /etc/krb5.keytab )|ktutil

ユーザー「pino」は認証されていますが、セキュリティ上の理由でkinitを再実行してください。

echo passofpino|kinit

最後に、version=3.1.1 で共有をマウントできるようになりました。最も重要な部分は「cruid」です。それ以外の場合は失敗します。

sudo mount.cifs -vvv //client.fqdn/Publicshare -o sec=krb5,user=pino,cruid=pino,vers=3.1.1 /mnt

返品

mount.cifs kernel mount options: ip=192.168.0.2,unc=\\client.fqdn\Publicshare,sec=krb5,vers=3.1.1,cruid=10003,user=pino,pass=********

krb5の代わりに通常のパスワードを使用しようとするとエラーが返されますが、kerberosを使用する方が安全なので問題ありません。共有に書き込みをしたい場合は、その行は次のようになります。

sudo mount.cifs -vvv //client.fqdn/Publicshare -o sec=krb5,user=pino,cruid=pino,vers=3.1.1,forceuid,forcegid,uid=$(id -u pino),gid=$(id -g pino) /mnt

関連情報