デフォルトでは、一部の 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 5 および 6 の場合、nfs-utils RPM は /etc/sysconfig/nfs を出荷します。 主な NFS (サーバー側) 構成ファイルとして。 rpc.nfsd と rpc.rquotad の静的ポートは、既知のポートと見なされるため、デフォルトでそれぞれ 2049 と 875 になります。 LOCKD/NLM、rpc.mountd、rpc.statd などの他の NFS サービス (サーバー側) は通常、ランダムなポートを使用しますが、/etc/sysconfig/nfs は参照用にポート値の例を提供します。ポート値の例は、ほとんどのシナリオで十分です。
# cat /etc/services 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/sysconfig/nfs # TCP port rpc.lockd should listen on. #LOCKD_TCPPORT=32803 # UDP port rpc.lockd should listen on. #LOCKD_UDPPORT=32769 # Port rpc.mountd should listen on. #MOUNTD_PORT=892 # Port rquotad should listen on. #RQUOTAD_PORT=875 # Port rpc.statd should listen on. #STATD_PORT=662 # Outgoing port statd should used. The default is port # is random #STATD_OUTGOING_PORT=2020
/etc/sysconfig/nfs の構成例
空き静的ポートを使用するように LOCKD/NLM を指定するには、LOCKD_TCPPORT と LOCKD_UDPPORT のコメントを外して新しいポート値を設定し、nfs サービスまたは nfslock サービスを再起動します。
LOCKD_TCPPORT=32803 LOCKD_UDPPORT=32769
フリーの静的ポートを使用するように rpc.mountd を指定するには、MOUNTD_PORT のコメントを解除して新しいポート値を設定し、nfs サービスを再起動します。
MOUNTD_PORT=892
2049 以外の空き静的ポートを使用するように rpc.nfsd を指定するには、RPCNFSDARGS のコメントを解除して新しいポート値を追加し、nfs サービスを再起動します。
RPCNFSDARGS="-p 20499"
875 以外の空いている静的ポートを使用するように rpc.rquotad を指定するには、RQUOTAD_PORT のコメントを外して新しいポート値を設定し、nfs サービスを再起動します。
RQUOTAD_PORT=8755
フリーの静的ポートを使用するように rpc.statd を指定するには、STATD_PORT と STATD_OUTGOING_PORT のコメントを外して新しいポート値を設定し、nfslock サービスを再起動します。
STATD_PORT=662 STATD_OUTGOING_PORT=2020
サービス コントロール
NFS サービスを再起動します:
# service nfs restart
nfslock サービスを再起動します:
# service nfslock restart
検証:
# rpcinfo -p