web-dev-qa-db-ja.com

nfsの安全でないポートを使用してマウントする

タイトルはそれを言います。 mountは、安全でないポートからNFSマウント/アンマウント要求を行うことがあります。この問題は、非常に高いマウントアクティビティ(AMD)が発生した後、すべてのセキュアポートがTIME_WAITでスタックしていることが原因であると考えられます。この動作を変更する方法はありますか?利用可能な安全なポートがあるかどうかに関係なく、安全でないポートからリクエストが送信されることは望ましくありません。安全なポートを待っている間、マウントをハングさせたいです。 NFSサーバーの安全でないポートからの要求を許可することはオプションではありません。

これを制御するためのmount、nfs、またはmount.nfsのマニュアルページには何も表示されませんでした。この問題を軽減するために、net.ipv4.tcp_tw_reuse = 1を試しましたが、役に立たなかったようです。

前もって感謝します。

4

Iptablesを使用して、使用したくないこれらのポート(範囲)をブロックしてみませんか。ドロップしないで拒否ルールにするようにしてください。後者の場合、接続の試行がタイムアウトになるため、時間がかかる場合があります。

典型的なルールは次のようになります。

    /sbin/iptables -I OUTPUT -d 0/0 -j REJECT --reject-with icmp-net-prohibited -p tcp --dport XX -o ethX
    /sbin/iptables -I OUTPUT -d 0/0 -j REJECT --reject-with icmp-net-prohibited -p udp --dport XX -o ethX

ポート範囲の使用:

--dport XX:YY

着信の場合:

    /sbin/iptables -I INPUT -s 0/0 -j REJECT --reject-with icmp-net-prohibited -p tcp --dport XX -i ethX
    /sbin/iptables -I INPUT -s 0/0 -j REJECT --reject-with icmp-net-prohibited -p udp --dport XX -i ethX

更新:マニュアルから、rpc.mountdに適切なオプションを追加するとうまくいくかもしれません:

-p  or  --port num
          Force rpc.mountd to bind to the specified port num, instead of using the random port number assigned by the portmapper.

Debianでは、/ etc/default/nfs-kernel-serverでこれを行い、次の行にオプションを追加します。

# Options for rpc.mountd.
# If you have a port-based firewall, you might want to set up
# a fixed port here using the --port option. For more information, 
# see rpc.mountd(8) or http://wiki.debian.org/?SecuringNFS
RPCMOUNTDOPTS=--manage-gids
1
aseq