Ошибка аутентификации RPC при монтировании NFS

Вопрос или проблема

Я пытаюсь смонтировать NFS диск, но получаю ошибку аутентификации RPC, с причиной, что учетные данные слишком слабы.

На стороне сервера (192.168.100.109) кажется, что NFS сервер и демон монтирования запускаются и доступны для целевого клиента (192.168.100.101):

# cat /etc/exports
/datastore/winmedia -ro 192.168.100.101
# portmap
# nfsd -tun 4
# mountd
# showmount -e 192.168.100.109
Exports list on 192.168.100.109
/datastore/winmedia            192.168.100.101

Однако, пытаясь смонтировать диск со стороны клиента, я получаю ошибку аутентификации RPC

# ls /mnt/winmedia
# mount -v 192.168.100.109:/datastore/winmedia /mnt/winmedia
mount: no type was given - I'll assume nfs because of the colon
mount: RPC: Authentication error; why=Client credential too weak

Просматривая логи сервера, там говорится лишь, что подключение было отказано, но не указана причина.

Feb 11 23:43:25 fattyopenbsd mountd[16785]: Can't open /var/db/mountdtab: No such file or directory
Feb 11 23:48:41 fattyopenbsd mountd[16785]: Refused mount RPC from host 192.168.100.101 port 62826

На стороне клиента rpcinfo показывает те же данные, что и на стороне сервера, за исключением названий программ.

Серверная сторона rpcinfo:

# rpcinfo -p 192.168.100.109
program vers proto    port
100000     2   tcp     111  portmapper
100000     2   udp     111  portmapper
100003     2   tcp    2049  nfs
100003     3   udp    2049  nfs
100003     2   tcp    2049  nfs
100003     3   udp    2049  nfs
100005     1   udp     630  mountd
100005     3   udp     630  mountd
100005     1   tcp     612  mountd
100005     3   tcp     612  mountd

И на стороне клиента то же самое, но без названий процессов

# rpcinfo -p 192.168.100.109
program vers proto    port
100000     2   tcp     111  
100000     2   udp     111  
100003     2   tcp    2049  
100003     3   udp    2049  
100003     2   tcp    2049  
100003     3   udp    2049  
100005     1   udp     630  
100005     3   udp     630  
100005     1   tcp     612  
100005     3   tcp     612  

Итак, мои вопросы следующие:
1) Почему монтирование отклоняется? (Есть ли способ получить более детализированную информацию о неудачном запросе?)
2) Как я могу заставить NFS диск монтироваться?

Сервер работает на OpenBSD 5.8.
Клиентская машина – это Puppy Linux, виртуальная машина на Windows. (Не уверен, является ли проблемой IP адрес ВМ. При запуске ifconfig на клиенте показывает адрес 10.0.*.* на eth0, но Windows хост имеет адрес 192…101 через беспроводное соединение. Я предположил, что, поскольку лог сервера показывает запрос исходящий от …101, проблема с ВМ вероятно не проблема, но если я ошибаюсь, любые предложения будут полезны).

ОБНОВЛЕНИЕ Теперь я думаю, что этот вопрос связан с сетевыми настройками ВМ. Запрос к серверу идет от непривилегированного номера порта (>1024) на основной машине ВМ.

ВМ использует NAT, поэтому даже если ВМ использует привилегированный порт при создании запроса, это не отражается в конечном запросе.

Эту проблему можно решить, использовав мостовое соединение с хостом вместо NAT, что позволит использовать IP и порт запроса тот же, что и у ВМ, но, к сожалению, у меня дома только WiFi и я не смог настроить мостовое соединение с WiFi адаптером.

Решение: использовать Samba вместо NFS, чтобы для аутентификации использовать имя пользователя и пароль, а не uid, IP-адрес и номер порта на стороне клиента.

В моем случае повышение привилегий на стороне клиента (doas/sudo) решило проблему;

a485$ mount -t nfs 192.168.178.203:/home/_transmission/ ~/Torrents 
mount_nfs: bad MNT RPC: RPC: Authentication error; why = Client credential too weak
^C
a485$ doas mount -t nfs 192.168.178.203:/home/_transmission/ ~/Torrents
a485$

Непривилегированный запрос исходил с очень большого номера порта;

Aug  7 12:25:36 t440p mountd[87312]: Refused mount RPC from host 192.168.178.185 port 15630

Если я правильно интерпретирую вывод netstat -a, активное соединение от “повышенного” запроса исходит от порта 901 (нерелевантный вывод опущен);

a485$ netstat -a
Active Internet connections (including servers)                                                                                                                                                                    
Proto   Recv-Q Send-Q  Local Address          Foreign Address                                                                                                                                                                                                                                                                              
udp          0      0  a485.901               t440p.nfsd

Ответ или решение

Решение проблемы с ошибкой аутентификации RPC при монтировании NFS

Если вы сталкиваетесь с проблемой аутентификации RPC при попытке монтировать файловую систему NFS, возникает ошибка вида "RPC: Authentication error; why=Client credential too weak", то эта ситуация может быть вызвана несколькими факторами. Давайте разберем каждую из них и предложим возможные решения.

1. Причина ошибки: доступ через неблагоприятный порт

Одной из самых вероятных причин возникновения этой ошибки является использование клиентом неблагоприятного порта (значение порта более 1024) для отправки запросов на сервер. Этот вопрос особенно актуален, когда используется NAT (трансляция сетевых адресов), что может изменять номер порта в исходящих запросах.

Решение

  1. Изменение сетевых настроек VM: NAT может изменять порты и адреса, используемые для подключения. Вместо этого, попробуйте использовать "Bridge" (мостовой режим) на виртуальной машине. Это должно позволить VM использовать свой собственный IP-адрес и назначенные привилегированные порты для соединения.

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

2. Права доступа на сервере

Следующим шагом будет проверка правильности файлов конфигурации NFS на сервере, включая /etc/exports. Убедитесь, что права доступа корректно настроены.

Решение

  1. Проверка файла /etc/exports: Откройте и проверьте файл /etc/exports на сервере. Убедитесь, что IP-адрес вашего клиента перечислен в разрешениях, и параметры экспортирования включают нужные права (например, -ro для рид-онли доступов).

  2. Проверка служб NFS: Убедитесь, что все необходимые службы (portmapper, nfsd, mountd) запущены корректно. Это можно проверить командами, например, rpcinfo -p.

3. Использование альтернативы: Samba

Как временное или постоянное решение, вы можете рассмотреть возможность использования Samba вместо NFS. Это может быть более удобным, особенно если ваши требования к безопасности могут быть удовлетворены аутентификацией через логин и пароль, которые Samba поддерживает, в отличие от NFS.

Оптимизация SEO

Для того чтобы ваш текст привлек больше внимания в интернете, необходимо использовать ключевые слова и фразы, такие как "RPC Authentication Error", "mounting NFS", "NFS слабые учетные данные", и "решение проблем с NFS и RPC" в заголовках и подзаголовках.

Заключение

При решении проблем с NFS важно учитывать, как сетевые настройки (например, использование NAT), так и правильно настроенные права доступа, чтобы достичь успешного соединения и монтирования. Внимательно анализируйте ошибки и используйте все вышеописанные подходы, чтобы справиться с возникающими трудностями.

Оцените материал
Добавить комментарий

Капча загружается...