У меня есть рабочий NFS4 настроить. Сервер называется bluebox.lan
и экспортирует:
/mnt bluescreen.lan(rw,no_root_squash,crossmnt)
Клиент называется bluescreen.lan
и он может монтировать bluebox
's nfs, используя:
mount -t nfs4 -o nfsvers=4.2 bluebox.lan:/mnt /bluebox
Теперь я добавил Kerberos к смеси. bluebox
это kdc для области "LAN".
создал этих принципалов:
host/bluebox.lan@LAN
mathijs@LAN
mathijs/admin@LAN
nfs/bluebox.lan@LAN
nfs/bluescreen.lan@LAN
затем я добавил nfs/bluebox.lan
к клавиатуре bluebox и nfs/bluescreen.lan
на вкладку синего экрана.
Я подтвердил, что Kerberos работает:
$ kinit mathijs@LAN
Password for mathijs@LAN:
$ klist
Ticket cache: FILE:/tmp/krb5cc_1000
Default principal: mathijs@LAN
Valid starting Expires Service principal
29-10-19 10:20:07 30-10-19 10:20:07 krbtgt/LAN@LAN
Затем я изменил / etc / exports на bluebox
(только добавлено, sec = krb5):
/mnt bluescreen.lan(rw,no_root_squash,crossmnt,sec=krb5)
Я перезапустил задействованные службы (nscd
, rpcbind
, rpc-statd
и rpc-gssd
на обеих машинах плюс nfs-server
на bluebox
.
Сейчас пытаюсь сесть на bluescreen
:
mount -t nfs4 -o nfsvers=4.2,sec=krb5 bluebox.lan:/mnt /bluebox -vvvvvv
mount.nfs4: timeout set for Tue Oct 29 10:24:54 2019
mount.nfs4: trying text-based options 'nfsvers=4.2,sec=krb5,addr=192.168.22.2,clientaddr=192.168.22.5'
mount.nfs4: mount(2): Permission denied
mount.nfs4: access denied by server while mounting bluebox.lan:/mnt
Я не получаю сообщений в журналах ни одной из машин.
Тем не менее, я заметил, что kerberos работал в фоновом режиме для оформления билетов. На bluescreen
(клиент) /tmp/krb5ccmachine_LAN
появились, содержащие:
# klist -e /tmp/krb5ccmachine_LAN
Ticket cache: FILE:/tmp/krb5ccmachine_LAN
Default principal: nfs/bluescreen.lan@LAN
Valid starting Expires Service principal
29-10-19 10:16:36 30-10-19 10:16:36 krbtgt/LAN@LAN
Etype (skey, tkt): aes256-cts-hmac-sha1-96, aes256-cts-hmac-sha1-96
29-10-19 10:16:36 30-10-19 10:16:36 nfs/bluebox.lan@LAN
Etype (skey, tkt): aes256-cts-hmac-sha1-96, aes256-cts-hmac-sha1-96
что кажется разумным, билет на bluescreen.lan
пытаясь получить доступ bluebox.lan
. Итак, я предполагаю, что сервер nfs почему-то не принимает этот билет или не может его проверить.
Более того:
hostname -f
показывает, что обе машины знают свои полные имена (включая .lan
). getent <name-of-other-machine>
разрешает правильный IP-адрес.getent <ip-address-of-other-machine>
разрешается в правильное имя хоста.Теперь мой вопрос: как мне отладить это дальше? Я немного поигрался с rpcdebug
команда, чтобы некоторые журналы поступали в журнал на обоих концах (компоненты rpc, nfs, nfsd), но это очень много, и никаких явных ошибок не возникает.
Изменить 2019-11-03: Обнаружен сервер NixOS NFS виноват. Клиент NixOS с сервером Debian 10 работает нормально. Клиент Debian с сервером NixOS имеет ту же проблему, что и клиент NixOS. Но решений пока нет. Отметьте NixOS сейчас, поскольку это явно как-то связано с моей проблемой.