web-dev-qa-db-ja.com

ADからのkerberoscifsマルチユーザーマウントPDC

WindowsDCからマルチユーザーをサポートするubuntuサーバーにcifsフォルダーをマウントしようとしています。

サーバーのrootとしてユーザーのkerberosチケットを取得し、問題なくkerberosを使用してディレクトリをマウントできます。ただし、ディレクトリをユーザーとしてマウントする必要はありません。マルチユーザーとしてマウントし、サーバー上のすべてのユーザーがアクセスできるようにする必要があります。

多分これは理解についての一般的な質問です、多分あなたは私にここで何が悪いのかを訂正することができます。

  • マルチユーザーマウントサーバーには、DC(cifs/samba.domainのktpassエクスポート)からのキータブが必要です。
  • Sambaはこのキータブを使用してDC共有マルチユーザー
  • Winbind/kerberosは、DCに対してユーザーを認証し、チケットを発行します
  • ユーザーは自分のチケットで共有にアクセスできます

キータブファイルをDCにエクスポートし、グローバルキータブファイル/etc/krb5.keytabとして配置しました。

root@remote:/etc# klist -ke
Keytab name: FILE:/etc/krb5.keytab
KVNO Principal
---- --------------------------------------------------------------------------
   3 cifs/[email protected] (des-cbc-md5) 

しかし、キーが利用できないため、ディレクトリをマウントできません。マウントエラー(126):必要なキーが利用できません

syslogはこれを示しています:

May 17 11:37:22 remote cifs.upcall: key description: cifs.spnego;0;0;3f000000;ver=0x2;Host=nina.mbeya.domain.org;ip4=10.10.10.17;sec=krb5;uid=0x0;creduid=0x0;user=root;pid=0x599b
May 17 11:37:22 remote cifs.upcall: ver=2
May 17 11:37:22 remote cifs.upcall: Host=nina.mbeya.domain.org
May 17 11:37:22 remote cifs.upcall: ip=10.10.10.17
May 17 11:37:22 remote cifs.upcall: sec=1
May 17 11:37:22 remote cifs.upcall: uid=0
May 17 11:37:22 remote cifs.upcall: creduid=0
May 17 11:37:22 remote cifs.upcall: user=root
May 17 11:37:22 remote cifs.upcall: pid=22939
May 17 11:37:22 remote cifs.upcall: find_krb5_cc: considering /tmp/krb5cc_1000
May 17 11:37:22 remote cifs.upcall: find_krb5_cc: /tmp/krb5cc_1000 is owned by 1000, not 0
May 17 11:37:22 remote cifs.upcall: krb5_get_init_creds_keytab: -1765328378
May 17 11:37:22 remote cifs.upcall: handle_krb5_mech: getting service ticket for cifs/nina.mbeya.domain.org
May 17 11:37:22 remote cifs.upcall: cifs_krb5_get_req: unable to resolve (null) to ccache
May 17 11:37:22 remote cifs.upcall: handle_krb5_mech: failed to obtain service ticket (-1765328245)
May 17 11:37:22 remote cifs.upcall: handle_krb5_mech: getting service ticket for Host/nina.mbeya.domain.org
May 17 11:37:22 remote cifs.upcall: cifs_krb5_get_req: unable to resolve (null) to ccache
May 17 11:37:22 remote cifs.upcall: handle_krb5_mech: failed to obtain service ticket (-1765328245)

これについてのご意見に感謝します。

ありがとう

3
Meiko Watu

「rootとしてユーザーKerberosチケット」を取得できますが、「キーを使用できません」というエラーが発生することに注意してください。

find_krb5_cc: /tmp/krb5cc_1000 is owned by 1000, not 0

このエラーは、mount.cifsを呼び出すroot(ユーザーID:0)が所有していないため、mount.cifsがKerberosチケットにアクセスできないことを意味します。ユーザーのパスワードで取得したKerberosチケットルートは、そのユーザーのみが使用するように指定されていると思います。

では、なぜマウントはチケットをルートが所有することを望んでいるのですか?最初の行のこの部分:

uid=0x0;creduid=0x0;user=root;

理由かもしれません。 Mount.cifsは実行 rootとして実行されています。 uidとcreduidをユーザーのuseruidに変更してみてください。

どこからmount.cifsを呼び出しているのかわからないので、少しあいまいな場合は申し訳ありません。実行しているmount.cifsコマンドとそのオプションを教えてください。

「サーバー上のすべてのユーザーがアクセスできる」共有について:ユーザーがログインした後にpam_mountを実行し、ユーザー名、パスワード、およびKerberosチケットを使用して共有をマウントするため、キータブを使用していません。これは私が呼んでいるマウントコマンドです:

mount -t cifs //<SERVER>/<VOLUME> <MOUNTPOINT> -o username=%(USER),sec=krb5,domain=<DOMAIN>,cruid=%(USERUID),uid=%(USERUID),gid=%(USERGID),rw

許可されたユーザーを単一のグループに追加します。また、file_mode =およびdir_mode =を、グループがファイルへの読み取り/書き込みアクセス権を持つための正しいアクセス許可(770など)に設定します。

3
Andrew Wang