Вопрос или проблема
Я пытаюсь смонтировать 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 (трансляция сетевых адресов), что может изменять номер порта в исходящих запросах.
Решение
-
Изменение сетевых настроек VM: NAT может изменять порты и адреса, используемые для подключения. Вместо этого, попробуйте использовать "Bridge" (мостовой режим) на виртуальной машине. Это должно позволить VM использовать свой собственный IP-адрес и назначенные привилегированные порты для соединения.
-
Использование
sudo
для решения проблемы портов: В некоторых случаях, если у вас нет возможности изменить настройки сети, вы можете попробовать запускать команды монтирования черезsudo
, чтобы система использовала привилегированные порты автоматически. Это решило проблему в приведенном вами примере.
2. Права доступа на сервере
Следующим шагом будет проверка правильности файлов конфигурации NFS на сервере, включая /etc/exports
. Убедитесь, что права доступа корректно настроены.
Решение
-
Проверка файла
/etc/exports
: Откройте и проверьте файл/etc/exports
на сервере. Убедитесь, что IP-адрес вашего клиента перечислен в разрешениях, и параметры экспортирования включают нужные права (например,-ro
для рид-онли доступов). -
Проверка служб NFS: Убедитесь, что все необходимые службы (portmapper, nfsd, mountd) запущены корректно. Это можно проверить командами, например,
rpcinfo -p
.
3. Использование альтернативы: Samba
Как временное или постоянное решение, вы можете рассмотреть возможность использования Samba вместо NFS. Это может быть более удобным, особенно если ваши требования к безопасности могут быть удовлетворены аутентификацией через логин и пароль, которые Samba поддерживает, в отличие от NFS.
Оптимизация SEO
Для того чтобы ваш текст привлек больше внимания в интернете, необходимо использовать ключевые слова и фразы, такие как "RPC Authentication Error", "mounting NFS", "NFS слабые учетные данные", и "решение проблем с NFS и RPC" в заголовках и подзаголовках.
Заключение
При решении проблем с NFS важно учитывать, как сетевые настройки (например, использование NAT), так и правильно настроенные права доступа, чтобы достичь успешного соединения и монтирования. Внимательно анализируйте ошибки и используйте все вышеописанные подходы, чтобы справиться с возникающими трудностями.