Centos 7 の iptables の背後にある NFS の問題

Centos 7 の iptables の背後にある NFS の問題

TCP/UDPポート111 2049 32769 32803 892を許可するiptablesを設定しました。

.. /etc/sysconfig/nfsに以下の変更を加えました

RPCMUNTDOPTS="-p 892"

そして

sysctl.conf は、

fs.nfs.nlm_tcpポート=32803

fs.nfs.nlm_udpポート=32769

Redhat のドキュメントに記載されているように、Redhat/Centos 7 でファイアウォールの背後で NFS を実行します。

参照 -https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/ストレージ管理ガイド/nfs-serverconfig.html

それでも、NFS はこの提供されたポートにバインドされておらず、ランダムなポートを取得するため、iptables が原因でクライアントが NFS に接続するのを制限します。iptables を停止することはできません。

rpc.mountd -p 892 でこのコマンドを試しましたが、動作していないようです。

出力 - rpcinfo -p

プログラム vers プロトポート サービス

100000    4   tcp    111  portmapper
100000    3   tcp    111  portmapper
100000    2   tcp    111  portmapper
100000    4   udp    111  portmapper
100000    3   udp    111  portmapper
100000    2   udp    111  portmapper
100024    1   udp  46390  status
100024    1   tcp  38521  status
100005    1   udp  20048  mountd
100005    1   tcp  20048  mountd
100005    2   udp  20048  mountd
100005    2   tcp  20048  mountd
100005    3   udp  20048  mountd
100005    3   tcp  20048  mountd
100003    3   tcp   2049  nfs
100003    4   tcp   2049  nfs
100227    3   tcp   2049  nfs_acl
100003    3   udp   2049  nfs
100003    4   udp   2049  nfs
100227    3   udp   2049  nfs_acl
100021    1   udp  40472  nlockmgr
100021    3   udp  40472  nlockmgr
100021    4   udp  40472  nlockmgr
100021    1   tcp  35454  nlockmgr
100021    3   tcp  35454  nlockmgr
100021    4   tcp  35454  nlockmgr

この世界に関するあらゆる援助をいただければ幸いです。

答え1

/usr/lib/systemd/system/nfs-mountd.service は、/etc/sysconfig/nfs の RPCMOUNTDOPTS とは異なる $RPCMOUNTDARGS オプションを使用して rpc.mountd を呼び出します。

nfs-config.service と呼ばれる別のサービスがあり、これは NFS 構成を前処理してその出力を /run/sysconfig/nfs-utils に配置し、RPCMOUNTDOPTS を RPCMOUNTDARGS に変換します。

ただし、nfs.service は停止/開始または再起動が使用されたときに nfs-config を呼び出さないため、/etc/sysconfig/nfs からの構成は /run/sysconfig/nfs-utils を更新しません。

解決策は簡単です。nfs.service を再起動する前に「systemctl restart nfs-config」を実行します。

関連情報