3.11. ファイアウォールの内側で動作するように NFS サーバーを設定

NFS には rpcbind サービスが必要です。このサービスは RPC サービスのポートを動的に割り当て、ファイアウォールルールの設定で問題が発生する可能性があります。この手順では、ファイアウォールの内側で機能するように NFS サーバーを設定する方法を説明します。

手順

  1. クライアントがファイアウォールの内側で NFS 共有にアクセスできるようにするには、/etc/nfs.conf ファイルの [mountd] セクションに、RPC サービスを実行するポートを設定します。

    [mountd]
    
    port=port-number

    これにより、-p port-number オプションが rpc.mount コマンドラインに追加されます (rpc.mount -p port-number)。

  2. クライアントがファイアウォールの背後にある NFS 共有にアクセスできるようにするには、NFS サーバーで次のコマンドを実行してファイアウォールを構成します。

    firewall-cmd --permanent --add-service mountd
    firewall-cmd --permanent --add-service rpc-bind
    firewall-cmd --permanent --add-service nfs
    firewall-cmd --permanent --add-port=<mountd-port>/tcp
    firewall-cmd --permanent --add-port=<mountd-port>/udp
    firewall-cmd --reload

    このコマンドで、<mountd-port> を、目的のポートまたはポート範囲に置き換えます。ポート範囲を指定する場合は、--add-port=<mountd-port>-<mountd-port>/udp 構文を使用します。

  3. NFSv4.0 コールバックがファイアウォールを通過できるようにするには、/proc/sys/fs/nfs/nfs_callback_tcpport を設定して、サーバーがクライアントのそのポートに接続できるようにします。

    この手順は、NFSv4.1 以降には必要ありません。純粋な NFSv4 環境では、また、mountdstatd、および lockd の他のポート群は必要ありません。

  4. RPC サービスの nlockmgr が使用するポートを指定するには、/etc/modprobe.d/lockd.conf ファイルで、nlm_tcpport オプションと nlm_udpport オプションのポート番号を設定します。
  5. NFS サーバーを再起動します。

    #  systemctl restart nfs-server

    NFS が起動しない場合は、/var/log/messages を確認してください。通常、すでに使用されているポート番号を指定すると、NFS が起動しません。

  6. 変更が反映されたことを確認します。

    # rpcinfo -p

関連情報


このページには機械翻訳が使用されている場合があります (詳細はこちら)。