Вопрос или проблема
У меня есть подключаемая сеть NFS4 с использованием krb5p.
Я без проблем получаю к ней доступ с клиентов CentOS, для этого требуется:
yum install krb5-workstation
setup krb5 (редактирование krb5.conf, настройка keytab)
systemctl enable nfs-secure.service && systemctl start nfs-secure.service
systemctl enable nfs-client.target && systemctl start nfs-client.target
mkdir /mnt/x
Добавьте следующее в fstab:
server.example.com:/srv/share/subdir /mnt/x nfs4 defaults,sec=krb5p,noexec,nosuid,_netdev,auto 0 0
Это отлично работает на CentOS, я настроил так уже дюжину клиентских хостов. Однако на Ubuntu я получаю ошибку:
mount.nfs4: an incorrect mount option was specified
Я думаю, что ошибка на Ubuntu связана с nfs-secure.service
, однако, похоже, отсутствует эквивалент на Ubuntu, который устанавливается с клиентом NFS? (Я использую Ubuntu 16.04.5 LTS).
ОБНОВЛЕНИЕ:
Я попробовал:
systemctl enable rpc-gssd.service && systemctl start rpc-gssd.service
Это запускается нормально:
# systemctl status rpc-gssd.service
● rpc-gssd.service - RPC security service for NFS client and server
Loaded: loaded (/lib/systemd/system/rpc-gssd.service; static; vendor preset: enabled)
Active: active (running) since Thu 2018-10-04 16:49:40 BST; 6min ago
Process: 51689 ExecStart=/usr/sbin/rpc.gssd $GSSDARGS (code=exited, status=0/SUCCESS)
Main PID: 51691 (rpc.gssd)
Tasks: 1
Memory: 516.0K
CPU: 13ms
CGroup: /system.slice/rpc-gssd.service
└─51691 /usr/sbin/rpc.gssd
Но Ubuntu просто зависает при попытке монтировать?
# mount -v -t nfs4 -o defaults,sec=krb5p,noexec,nosuid,_netdev,auto server.example.com:/srv/dir/example /mnt/example
mount.nfs4: timeout set for Thu Oct 4 16:54:40 2018
mount.nfs4: trying text-based options 'sec=krb5p,addr=10.10.10.10,clientaddr=10.10.10.9'
# НИЧЕГО БОЛЬШЕ НЕ ПРОИСХОДИТ.....
Это просто общее сообщение об ошибке (также полностью вводящее в заблуждение), которое указывает на проблему в вашей клиентской конфигурации kerberos, обычно на то, что служба GSSAPI не запущена. Попробуйте запустить ее, или если у вас есть nss-client.target, включите/запустите его.
Ответ или решение
Когда вы получаете ошибку "incorrect mount option was specified" при попытке подключить раздел NFS4 с опцией krb5p на Ubuntu, важно понять, что эта проблема часто связана с неправильной конфигурацией Kerberos или отсутствующими сервисами безопасности. В то время как в CentOS конфигурация может работать безупречно, Ubuntu может потребовать немного больше внимания к деталям, поскольку структура служб и их название могут различаться.
Теория
В отличие от CentOS, где используется nfs-secure.service
, в Ubuntu часто необходимо запускать rpc-gssd.service
, чтобы поддерживать Kerberos для NFS. Kerberos обеспечивает аутентификацию через сеть и должен быть правильно сконфигурирован, чтобы NFS мог использовать его функции. Кроме того, настройки /etc/krb5.conf
и ключ-класс (keytab) должны быть корректно настроены. Файловая система NFS также требует соответствующих привилегий и настроек безопасности для соответствия политике Kerberos.
Пример
Рассмотрим необходимость запуска службы rpc-gssd.service
для обеспечения работы Kerberos. После установки соответствующих пакетов с помощью sudo apt install nfs-common krb5-user
, необходимо вручную активировать и запустить необходимые сервисы:
sudo systemctl enable rpc-gssd.service
sudo systemctl start rpc-gssd.service
Вы должны убедиться, что в /etc/fstab указаны правильные опции монтирования, соответствующие krb5p
. Настройка может выглядеть следующим образом:
server.example.com:/srv/share/subdir /mnt/x nfs4 defaults,sec=krb5p,noexec,nosuid,_netdev,auto 0 0
Применение
Для решения проблемы на Ubuntu, выполните следующие шаги:
-
Проверьте и обновите конфигурацию Kerberos: Убедитесь, что файл
/etc/krb5.conf
правильно настроен и совпадает с теми настройками, что работают на CentOS. Не забудьте обновить файл keytab с правильными учетными данными. -
Активируйте rpc-gssd.service: Используйте команды systemctl для запуска данного сервиса, что вы уже сделали. Убедитесь, что данный сервис находится в активном состоянии.
-
Настраиваем /etc/fstab: Проверьте, что все параметры монтирования корректны и соответствуют политике безопасности сервера NFS.
-
Исправление потенциальных зависимостей: Убедитесь, что отсутствуют зависимости от таких сервисов, которые в Ubuntu могут быть аналогичны
nss-client.target
.
Если, несмотря на всё вышеперечисленное, система всё еще зависает, вам стоит выполнить диагностику с помощью:
sudo journalctl -xe
Этот инструмент поможет выявить дополнительные ошибки, которые могли быть упущены. Таким образом, интеграция клиента Ubuntu в вашу инфраструктуру NFS и Kerberos должна пройти успешно после выполнения этих шагов.