Как работает NFS выяснить, к какому доверию / принципалу Kerberos предоставить доступ?

Я настраиваю NFS с Kerberos и следую различным руководствам, таким как NFSv4 с Kerberos в Ubuntu Wiki и Как использовать Kerberos для управления доступом к общим сетевым ресурсам NFS и другие. Все руководства следуют одному и тому же базовому шаблону:

  • Настройка KDC
  • Создайте принципал на основе ключей для 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 файлы?

0
задан 1 January 2019 в 12:02
1 ответ

Есть несколько вариантов обнаружения, используемых керберизованной 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, если они настроены.

1
ответ дан 4 December 2019 в 15:47

Теги

Похожие вопросы