Рейтинг:0

NFSv4 и kerberos: доступ запрещен в 50% случаев

флаг bd

Мы пытаемся смонтировать общие ресурсы NFSv4 на клиентах RHEL 8 с помощью kerberos.У нас очень похожая установка в другой среде, и она работала нормально. Но на этой установке случается, что мы получаем доступ закрыт примерно в 50% случаев мы пытаемся установить общий ресурс:

# неудачная попытка

bash-4.4$ sudo mount -t nfs -o sec=krb5 server.com:/homes/francis test -vvvv
mount.nfs: тайм-аут установлен на субботу 2 апреля 16:28:32 2022
mount.nfs: пробуем текстовые опции 'sec=krb5,vers=4.2,addr=192.168.1.89,clientaddr=192.168.2.29'
mount.nfs: mount(2): протокол не поддерживается
mount.nfs: пробуем текстовые опции 'sec=krb5,vers=4,minorversion=1,addr=192.168.1.89,clientaddr=192.168.2.29'
mount.nfs: mount(2): протокол не поддерживается
mount.nfs: пробуем текстовые опции 'sec=krb5,vers=4,addr=192.168.1.89,clientaddr=192.168.2.29'
mount.nfs: mount(2): Отказано в доступе
mount.nfs: пробуем текстовые опции 'sec=krb5,vers=4,addr=192.168.1.88,clientaddr=192.168.2.29'
mount.nfs: mount(2): Отказано в доступе
mount.nfs: пробуем текстовые опции 'sec=krb5,addr=192.168.1.89'
mount.nfs: прог 100003, попытка vers=3, prot=6
mount.nfs: попытка 192.168.1.89 прог 100003 версия 3 прот TCP порт 2049
mount.nfs: прог 100005, попытка vers=3, prot=17
mount.nfs: попытка 192.168.1.89 prog 100005 vers 3 prot UDP порт 32767
mount.nfs: mount(2): Отказано в доступе
mount.nfs: пробуем текстовые опции 'sec=krb5,addr=192.168.1.88'
mount.nfs: прог 100003, попытка vers=3, prot=6
mount.nfs: попытка 192.168.1.88 prog 100003 vers 3 prot TCP порт 2049
mount.nfs: прог 100005, попытка vers=3, prot=17
mount.nfs: попытка 192.168.1.88 prog 100005 vers 3 prot UDP порт 32767
mount.nfs: mount(2): Отказано в доступе
mount.nfs: доступ запрещен сервером при монтировании hypatia.uio.no:/uioit-usit-drift-homes/francis

# рабочая попытка спустя две секунды
bash-4.4$ sudo mount -t nfs -o sec=krb5 server.com:/homes/francis test -vvvv
mount.nfs: тайм-аут установлен на сб 2 апреля 16:30:09 2022
mount.nfs: пробуем текстовые опции 'sec=krb5,vers=4.2,addr=192.168.1.88,clientaddr=192.168.2.29'
mount.nfs: mount(2): протокол не поддерживается
mount.nfs: пробуем текстовые опции 'sec=krb5,vers=4,minorversion=1,addr=192.168.1.88,clientaddr=192.168.2.29'
mount.nfs: mount(2): протокол не поддерживается
mount.nfs: пробуем текстовые опции 'sec=krb5,vers=4,addr=192.168.1.88,clientaddr=192.168.2.29'
mount.nfs: mount(2): Отказано в доступе
mount.nfs: пробуем текстовые опции 'sec=krb5,vers=4,addr=192.168.1.89,clientaddr=192.168.2.29'

Я проверил журналы на стороне клиента, и там мало что указывает на причину сбоя монтирования. Один раз сработает, а через две секунды уже не сработает. Или наоборот.

Сначала я подумал, что это может быть проблема с перекрестным монтированием, но я также попробовал с верхним каталогом общего ресурса, и возникла та же проблема.

Любые намеки на то, что может быть проблемой?

stark avatar
флаг mu
Клиент и сервер находятся в разных подсетях? Вы проверяли журналы маршрутизатора и брандмауэра?
флаг fr
Ваш `server.com`, похоже, имеет два IP-адреса: 192.168.1.88 и 192.168.1.89. Имеют ли эти два адреса правильное обратное сопоставление DNS, указывающее на `server.com`? Kerberos довольно придирчив, когда дело доходит до правильной настройки DNS.
флаг bd
Есть хороший момент @Tomek. Оба адреса имеют по две записи PTR, и это может быть проблемой.Хотя у меня есть настройка, в которой сервер не имеет PTR, и он работает довольно хорошо, наличие PTR, который не разрешается для хоста, который я использую, может усугубить ситуацию.
флаг bd
@stark да, разные подсети, но с сетью все хорошо.
флаг fr
Если вы не можете решить проблему с DNS (что вы должны сделать), вы можете попробовать установить для параметра rdns в krb5.conf значение false и посмотреть, поможет ли это (должно, но иногда может быть перезаписано на уровне приложения, я поверьте, OpenSSH делает это, если настроен на это).
флаг bd
@Tomek Я пробовал это с прогонами (есть ли что-нибудь, что нужно перезапустить?), и это не сработало. Я ищу, могу ли я удалить записи PTR, которые не разрешаются обратно в имя хоста принципала для монтирования nfs, чтобы посмотреть, поможет ли это.
флаг fr
Возможно rpc.gssd... Но я не уверен.
Рейтинг:0
флаг bd

Проблема в моем случае заключалась в том, что для сервера было настроено два PTR. Даже используя рднс=ложь не помогло. При удалении PTR, который не разрешался обратно в имя хоста, совпадающее с основным для сервера, все работало намного лучше.

Спасибо @Tomek за подсказку.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.