由於非法連接埠導致 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 上新增連接埠轉送規則,但由於某種原因,非法連接埠仍然會失敗。

在此輸入影像描述

無論如何我可以解決這個問題嗎?

答案1

終於解決了這個具體問題。有人告訴我:OPNsense 鏈接

下列:

IIRC NFS 伺服器期望來自客戶端的來源連接埠低於 1024 才被認為是安全的。確保檢查 NAT 出站規則上的“靜態連接埠”,以防止防火牆修改 TCP 和 UDP 封包上的來源連接埠。

我最終在啟用靜態連接埠的情況下在 OPNsense 上為整個本地 LAN 添加了 NAT 出站規則,它解決了問題。我現在可以透過安全連接埠範圍掛載 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

相關內容