Red Hat Training

A Red Hat training course is available for RHEL 8

5.7. NFSv4 専用サーバーの設定

ネットワーク内に NFSv3 クライアントが存在しない場合は、NFSv4 またはその特定のマイナープロトコルバージョンのみをサポートするように NFS サーバーを設定できます。サーバー上で NFSv4 のみを使用すると、ネットワークに対して開かれるポートの数が減ります。

手順

  1. nfs-utils パッケージをインストールします。

    # dnf install nfs-utils
  2. /etc/nfs.conf ファイルを編集し、次の変更を加えます。

    1. [nfsd] セクションの vers3 パラメーターを無効にして、NFSv3 を無効にします。

      [nfsd]
      vers3=n
    2. オプション: 特定の NFSv4 マイナーバージョンのみが必要な場合は、すべての vers4.<minor_version> パラメーターのコメントを解除し、それに応じて設定します。次に例を示します。

      [nfsd]
      vers3=n
      # vers4=y
      vers4.0=n
      vers4.1=n
      vers4.2=y

      この設定では、サーバーは NFS バージョン 4.2 のみを提供します。

      重要

      特定の NFSv4 マイナーバージョンのみが必要な場合は、マイナーバージョンのパラメーターのみを設定します。マイナーバージョンの予期しないアクティブ化または非アクティブ化を避けるために、vers4 パラメーターのコメントを解除しないでください。デフォルトでは、vers4 パラメーターはすべての NFSv4 マイナーバージョンを有効または無効にします。ただし、vers4 を 他の vers パラメーターと組み合わせて設定すると、この動作が変わります。

  3. すべての NFSv3 関連サービスを無効にします。

    # systemctl mask --now rpc-statd.service rpcbind.service rpcbind.socket
  4. オプション: 共有するディレクトリーを作成します。例:

    # mkdir -p /nfs/projects/

    既存のディレクトリーを共有する場合は、この手順をスキップしてください。

  5. /nfs/projects/ ディレクトリーに必要な権限を設定します。

    # chmod 2770 /nfs/projects/
    # chgrp users /nfs/projects/

    これらのコマンドは、/nfs/projects/ ディレクトリーの ユーザー グループに書き込み権限を設定し、このディレクトリーに作成された新しいエントリーに同じグループが自動的に設定されるようにします。

  6. 共有する各ディレクトリーの /etc/exports ファイルにエクスポートポイントを追加します。

    /nfs/projects/     192.0.2.0/24(rw) 2001:db8::/32(rw)

    このエントリーは、/nfs/projects/ ディレクトリーを共有し、192.0.2.0/24 および 2001:db8::/32 サブネット内のクライアントに読み取りおよび書き込みアクセスでアクセスできるようにします。

  7. firewalld で関連するポートを開きます。

    # firewall-cmd --permanent --add-service nfs
    # firewall-cmd --reload
  8. NFS サーバーを有効にして起動します。

    # systemctl enable --now nfs-server

検証

  • サーバー上で、サーバーが設定した NFS バージョンのみを提供していることを確認します。

    # cat /proc/fs/nfsd/versions
    -3 +4 -4.0 -4.1 +4.2
  • クライアントで次の手順を実行します。

    1. nfs-utils パッケージをインストールします。

      # dnf install nfs-utils
    2. エクスポートされた NFS 共有をマウントします。

      # mount server.example.com:/nfs/projects/ /mnt/
    3. users グループのメンバーであるユーザーとして、/mnt/ にファイルを作成します。

      # touch /mnt/file
    4. ディレクトリーをリスト表示して、ファイルが作成されたことを確認します。

      # ls -l /mnt/
      total 0
      -rw-r--r--. 1 demo users 0 Jan 16 14:18 file