Я настраиваю 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, если они настроены.