[FreeBSD-users-jp 96315] NFSv4 + Kerberos

Hiroo Ono (小野寛生) hiroo.ono+freebsd @ gmail.com
2018年 9月 15日 (土) 06:02:59 UTC


小野寛生です。

samba4 を Active Directory の DC にしているのですが、こいつを KDC にして NFSv4 で
-sec=krb5 でマウントしたいと考えています。

https://wiki.freebsd.org/KerberizedNFS
https://lists.samba.org/archive/samba/2014-November/186562.html

を参考にしました。

-sec=sys で NFSv4 でマウントできるところまでは確認しました。
その後、下記の手順で keytab を作成して、
# mount_nfs -o nfsv4,sec=krb5 image.oikumene.ukehi.net:/exports/data /mnt

としたのですが、マウントはできて、ls でファイルのリストは出てくるものの、
# cat /mnt/data.txt
とすると

nfsv4 err=10016
cat: /mnt/data.txt: Input/output error

とエラーになります。
https://marc.info/?l=freebsd-fs&m=136148869906047&w=2
によれば

> Error 10016 is NFS4ERR_WRONGSEC. This means that the server expects a
> different security flavour (sys maybe) at some point in the mount.

ということなんですが、どうすれば -sec=krb5 でマウントできるのかわかる方教えてください。

NFS server の /etc/exports:
V4: / -sec=kerb5p:krb5i:krb5 -network 192.168.0.0 -mask 255.255.255.0
/exports/data -network 192.168.0/24

keytab 作成手順:
1) DC host で user を作成
# samba-tool user create nfs-user --random-password
# samba-tool user setexpiry --noexpiry nfs-user

2) SPN を追加
# jexec dc samba-tool spn add nfs/IMAGE.OIKUMENE.UKEHI.NET nfs-user

3) keytab を export
# samba-tool domain exportkeytab /tmp/nfs.image.keytab
--principal=nfs/IMAGE.OIKUMENE.UKEHI.NET
# samba-tool domain exportkeytab /tmp/nfs.image.keytab --principal=image\$

4) 確認
# ktutil --keytab=/tmp/nfs.image.keytab list
Vno  Type              Principal                                        Aliases
  2  arcfour-hmac-md5  nfs/IMAGE.OIKUMENE.UKEHI.NET @ OIKUMENE.UKEHI.NET
  2  des-cbc-md5       nfs/IMAGE.OIKUMENE.UKEHI.NET @ OIKUMENE.UKEHI.NET
  2  des-cbc-crc       nfs/IMAGE.OIKUMENE.UKEHI.NET @ OIKUMENE.UKEHI.NET
  3  arcfour-hmac-md5  image$@OIKUMENE.UKEHI.NET
  3  des-cbc-md5       image$@OIKUMENE.UKEHI.NET
  3  des-cbc-crc       image$@OIKUMENE.UKEHI.NET

5) nfs.image.keytab を、NFS server (image.oikumene.ukehi.net) と client の
/etc/krb5.keytab にコピー

6) NFS server と NFS client の /etc/krb5.conf を以下に設定
[libdefaults]
        default_realm = OIKUMENE.UKEHI.NET
        dns_lookup_realm = false
        dns_lookup_kdc = true

        allow_weak_crypto = true
        forwardable = true

7) NFS client で kinit 可能なことを確認
% kinit -k nfs/IMAGE.OIKUMENE.UKEHI.NET


freebsd-users-jp メーリングリストの案内