Сбой монтирования NFS из-за нелегального порта

Сбой монтирования NFS из-за нелегального порта

У меня есть виртуальная машина с публичным IP-интерфейсом и частным IP-интерфейсом. Частный интерфейс назначен 192.168.50.78. Затем у меня есть выделенный хост, который действует как мой «маршрутизатор», используя частный IP-адрес 192.168.50.1, и, следовательно, это мой шлюз для моей локальной сети 192.168.50.0/24. «Маршрутизатор» у меня — OPNsense.

При этом я пытаюсь смонтировать в своей виртуальной машине два удаленных сервера NFS. Монтирование не удается из-за нелегального порта, исходящего от моей виртуальной машины, которая находится за NAT:

[root@NFSHOST ~]# tail -f /var/log/messages | grep "rpc.mountd"
Feb 21 22:31:40 NFSHOS rpc.mountd[28721]: refused mount request from 197.189.XXX.ZZZ for /data/secondary (/data/secondary): illegal port 33744
Feb 21 22:35:22 NFSHOS rpc.mountd[28721]: refused mount request from 197.189.XXX.ZZZ for /data/secondary (/data/secondary): illegal port 40085

И это из-за происходящего преобразования портов. Решение — добавить insecureв мой /etc/exportфайл, что я проверил и могу подтвердить, что это действительно работает.

Однако, как он предполагает, это insecureи крайне не рекомендуется. Я пробовал добавить правило переадресации портов на OPNsense, и по какой-то причине оно по-прежнему не работает с нелегальными портами.

введите описание изображения здесь

Есть ли способ решить эту проблему? P.S. Я также не могу использовать режим «моста». Мне нужно установить какое-то правило в OPNsense, чтобы обработать это соответствующим образом, но я не совсем уверен.

решение1

Наконец-то удалось решить эту конкретную проблему. Мне сказали здесь:Ссылка OPNsense

Следующее:

Серверы NFS IIRC ожидают, что исходные порты, поступающие от клиентов, будут ниже 1024, чтобы считаться безопасными. Обязательно проверьте «Static-port» в правиле исходящего трафика NAT, чтобы предотвратить изменение брандмауэром исходного порта в пакетах TCP и UDP.

В итоге я добавил правило NAT outbound на OPNsense для всей локальной сети с включенным статическим портом, и это решило проблему. Теперь я могу монтировать NFS через безопасные диапазоны портов.

решение2

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

mount -o vers=3 -t nfs 123:/

Это относится к стандартному клиенту Linux, конечно. Если вы не можете повлиять на клиента, как этот, проверьте этот пост, как иметь поддержку других протоколов на стороне сервера:

https://askubuntu.com/questions/974696/how-can-i-make-the-nfs-server-support-protocol-version-2-in-ubuntu-17-10

Связанный контент