デフォルトでは、一部の NFS サービス (server_side) は well-known ポートを使用しますが、通常はランダム ポートを使用するものもあります。ランダム ポートの使用は、厳密なファイアウォール ルールがランダムで未知のポートをブロックする場合にはうまく機能しません。そのため、使用する NFS サービス (server_side) の静的ポートを手動で変更または指定することが最善の場合もあります。
この投稿では、代わりに NFS サービス (サーバー側) を静的ポートで実行するように構成する方法について説明します。
概要
NFS サービス (サーバー側) には以下が含まれます:
- NLM (NFS ロック マネージャーまたはカーネル内 lockd)
- rpc.mountd
- rpc.nfsd
- rpc.rquotad
- rpc.statd
lockd と rpc.statd は NFS クライアントでも実行されることに注意してください。また、rpc.rquotad は厳密には NFS ファミリーの一部ではありませんが、NFS サーバーによって共有され、1 つ以上の NFS クライアントによってマウントされたファイル システムのクォータをチェックするために使用されます。
NFSv3 では、rpc.nfsd は LOCKD/NLM、rpc.mountd、および rpc.statd と対話します。ただし、NFSv4 では、これらすべてのやり取りが組み込まれ、統合されています。
CentOS/RHEL 7 の場合、nfs-utils RPM はメインの NFS (サーバー側) 構成として /etc/modprobe.d/lockd.conf、/etc/sysconfig/nfs、および /etc/sysconfig/rpc-rquotad を出荷するようになりました。ファイル。さらに、/etc/nfs.conf もあり、これは近い将来、他の構成ファイルを非推奨にする可能性があります。
CentOS/RHEL 7 の場合、rpc.mountd、rpc.nfsd、および rpc.rquotad の静的ポートは、既知のポートと見なされるため、デフォルトでそれぞれ 20048、2049、および 875 になります。 LOCKD/NLM や rpc.statd などの他の NFS サービス (server_side) は、通常、ランダムなポートを使用しますが、/etc/modprobe.d/lockd.conf と /etc/sysconfig/nfs は、参照用にポート値の例を提供します。ポート値の例は、ほとんどのシナリオで十分です。
# cat /etc/services mountd 20048/tcp # NFS mount protocol mountd 20048/udp # NFS mount protocol nfs 2049/tcp nfsd shilp # Network File System nfs 2049/udp nfsd shilp # Network File System rquotad 875/tcp # rquota daemon rquotad 875/udp # rquota daemon
# cat /etc/modprobe.d/lockd.conf # Set the TCP port that the NFS lock manager should use. # port must be a valid TCP port value (1-65535). #options lockd nlm_tcpport # # Set the UDP port that the NFS lock manager should use. # port must be a valid UDP port value (1-65535). #options lockd nlm_udpport
# cat /etc/sysconfig/nfs # Port rpc.mountd should listen on. #MOUNTD_PORT=892 # Port rpc.statd should listen on. #STATD_PORT=662 # Outgoing port statd should used. The default is port # is random #STATD_OUTGOING_PORT=2020
# cat /etc/sysconfig/rpc-rquotad # -I, --autofs Ignore autofs mount points # -p port, --port port Listen on alternative port # -s, --no-setquota Don't allow setting quotas with RPC (default) # -S, --setquota Allow setting quotas with RPC # -x path, --xtab path Use alternative NFSD export table RPCRQUOTADOPTS=""
/etc/modprobe.d/lockd.conf の構成例
空き静的ポートを使用するように LOCKD/NLM を指定するには、nlm_tcpport と nlm_udpport のコメントを外して新しいポート値を設定し、lockd カーネル モジュールをリロードするか、再起動します。
options lockd nlm_tcpport=32803 options lockd nlm_udpport=32769
/etc/sysconfig/nfs の構成例
20048 以外の空き静的ポートを使用するように rpc.mountd を指定するには、MOUNTD_PORT のコメントを解除して新しいポート値を設定し、nfs-mountd サービスまたは nfs-server サービスを再起動します。
MOUNTD_PORT=892
2049 以外の空き静的ポートを使用するように rpc.nfsd を指定するには、RPCNFSDARGS のコメントを解除して新しいポート値を追加し、nfs-server サービスを再起動します。
RPCNFSDARGS="-p 20499"
フリーの静的ポートを使用するように rpc.statd を指定するには、STATD_PORT と STATD_OUTGOING_PORT のコメントを外して新しいポート値を設定し、rpc-statd サービスを再起動します。
STATD_PORT=662 STATD_OUTGOING_PORT=2020
/etc/sysconfig/rpc-rquotad の構成例
875 以外の空いている静的ポートを使用するように rpc.rquotad を指定するには、RPCRQUOTADOPTS のコメントを外して新しいポート値を追加し、rpc-rquotad サービスを再起動します。
RPCRQUOTADOPTS="-p 8755"
サービス コントロール
nfs-mountd サービスを再起動します:
# systemctl restart nfs-mountd.service
nfs-server サービスを再起動します:
# systemctl restart nfs-server.service
rpc-rquotad サービスを再起動します:
# systemctl restart rpc-rquotad.service
rpc-statd サービスを再起動します:
# systemctl restart rpc-statd.service
検証:
# rpcinfo -p