セキュリティ上の理由から、私のサーバーでは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