Я настраиваю NFS с Kerberos и следую различным руководствам, например NFSv4 с Kerberos в Ubuntu Wiki и Как использовать Kerberos для управления доступом к общим сетевым ресурсам NFS, среди других. Все направляющие следуют одному и тому же основному шаблону:
nfs/nfs-server
и убедитесь, что эти ключи находятся в /etc/krb5.keytab
файл NFS серверnfs/nfs-client
и убедитесь, что эти ключи находятся в /etc/krb5.keytab
файл Клиент NFSСледующий шаг - это то, что меня смущает. однажды /etc/exports
на сервере NFS заменен на какой-то вариант ...
/nfs/some-dir [ip-address](rw,sec=krb5p,all_squash,sync)
... как сервер NFS узнает, какой участник Kerberos был назначен самому себе? Еще более простой - как сервер NFS узнает, какая область Kerberos была добавлена? Кроме того, как сервер NFS узнает, каким участникам Kerberos разрешить доступ? В области может быть несколько пользователей / принципалов Kerberos, и не всем должен быть разрешен доступ к конкретному экспорту NFS.
Аналогичным образом, как только на клиенте NFS выполняется следующее ...
mount -t nfs4 -o sec=krb5p [ip-address]:/nfs/some-dir /mnt/some-dir
... как клиент NFS узнает, какой принципал / ключ Kerberos использовать при разговоре с сервером NFS?
Есть ли какая-то неявная магия в /etc/krb5.keytab
и /etc/krb5.conf
файлы?
Керберизованная NFS (или вообще любая керберизованная служба) использует несколько опций обнаружения, чтобы определить, какую область Kerberos использовать. Место номер один - это /etc/krb5.conf
где вы можете явно указать область по умолчанию, которая будет использоваться:
[libdefaults]
...
default_realm = YOUR.REALM
Если ничего не указано, клиент может запросить DNS-сервер для служебной записи Kerberos. В конце используется доменное имя. Сервер NFS просканирует /etc/krb5.keytab
файл для соответствующего принципала хоста, который будет использоваться для рукопожатия gss.
Когда конечные пользователи получают доступ к серверу NFS, для каждого клиента устанавливается выделенный контекст GSS. На стороне сервера вам понадобится служба сопоставления, обычно nfsidmapd, которая в зависимости от конфигурации системы использует LDAP-сервер локального файла паролей для сопоставления участников Kerberos с локальными uid / gids. Авторизация происходит на основе разрешений unix или ACL, если они настроены.