8.3. NFS サービスの保護


ファイルシステム操作に Kerberos 認証と暗号化を使用して、ネットワークファイルシステム (NFS) を保護します。適切なセキュリティー設定は、ネットワーク経由でファイルシステムをマウントするリモートホストを保護するのに役立ちます。

ネットワークアドレス変換 (NAT) またはファイアウォールで NFSv4 を使用する場合に、/etc/default/nfs ファイルを変更することで委譲をオフにできます。委譲は、サーバーがファイルの管理をクライアントに委譲する手法です。対照的に、NFSv3 ではファイルのロックとマウントに Kerberos は使用されません。

NFS サービスは、すべてのバージョンの NFS で TCP を使用してトラフィックを送信します。このサービスは、RPCSEC_GSS カーネルモジュールの一部として Kerberos ユーザーおよびグループ認証をサポートします。

NFS を利用すると、リモートのホストがネットワーク経由でファイルシステムをマウントし、そのファイルシステムを、ローカルにマウントしているファイルシステムのように操作できるようになります。集約サーバーのリソースを統合して、ファイルシステムを共有するときに /etc/nfsmount.conf ファイルの NFS マウントオプションをさらにカスタマイズできます。

8.3.1. NFS サーバーのセキュリティーを保護するエクスポートオプション

/etc/exports ファイルのエクスポートオプションを使用して、エクスポートされたファイルシステムにアクセスできるホストと、そのホストが保持する権限を定義します。これにより、アクセスを制御し、セキュリティーリスクを抑えることができます。

NFS サーバーは、/etc/exports ファイル内のディレクトリーとホストのリスト、およびどのファイルシステムをどのホストにエクスポートするかを決定します。

/etc/exports ファイルでは次のエクスポートオプションを使用できます。

ro
NFS ボリュームを読み取り専用としてエクスポートします。
rw
NFS ボリュームに対する読み取りおよび書き込み要求の許可を制御します。書き込みアクセスを許可すると攻撃のリスクが高まるため、このオプションは慎重に使用してください。rw オプションを使用してディレクトリーをマウントする必要がある場合は、起こりうるリスクを軽減するために、すべてのユーザーがディレクトリーに書き込み可能にしないようにしてください。
root_squash
uid/gid 0 からの要求を匿名の uid/gid にマップします。これは、bin ユーザーや staff グループなど、同様に機密性が高い可能性のある他の UID または GID には適用されません。
no_root_squash
root squash をオフにします。デフォルトでは、NFS 共有は root ユーザーを、非特権ユーザーである nobody ユーザーに変更します。これにより、root が作成したすべてのファイルの所有者が nobody に変更され、setuid ビットが設定されたプログラムのアップロードができなくなります。no_root_squash オプションを使用すると、リモートの root ユーザーは共有ファイルシステムの任意のファイルを変更し、他のユーザーに対してアプリケーションが Trojans に感染した状態のままにします。
secure
予約ポートへのエクスポートを制限します。デフォルトでは、サーバーは予約済みポートからのクライアント通信のみを許可します。ただし、多くのネットワークで、クライアント上で root ユーザーになるのは簡単です。そのため、サーバーで予約されたポートからの通信が特権であると仮定することは安全ではありません。したがって、予約ポートへの制限はあまり意味がありません。Kerberos、ファイアウォール、および特定のクライアントへのエクスポート制限に頼る方が得策です。

詳細は、システム上の exports(5) および nfs(5) man ページを参照してください。

警告

/etc/exports ファイルの構文に余分なスペースを加えると、設定が大幅に変更される可能性があります。

次の例では、/tmp/nfs/ ディレクトリーは bob.example.com ホストと共有されており、読み取りおよび書き込み権限が与えられています。

/tmp/nfs/     bob.example.com(rw)

次の例は前の例と同じですが、ホスト名の後にスペース文字が 1 つあるため、bob.example.com ホストには読み取り専用権限で同じディレクトリーが共有される一方で、すべてのホスト には読み取りおよび書き込み権限で共有されてしまいます。

/tmp/nfs/     bob.example.com (rw)

showmount -e <hostname> コマンドを入力すると、システム上の共有ディレクトリーを確認できます。

また、NFS サーバーをエクスポートする際に、以下のベストプラクティスを考慮してください。

  • 一部のアプリケーションでは、パスワードをプレーンテキストまたは弱い暗号化形式で保存するため、ホームディレクトリーをエクスポートすることはリスクがあります。アプリケーションコードを確認して改善することで、リスクを軽減できます。
  • 一部のユーザーは SSH 鍵にパスワードを設定していません。これもホームディレクトリーに対するリスクとなります。パスワードの使用を強制するか、Kerberos を使用することで、これらのリスクを軽減できます。
  • NFS エクスポートを必要なクライアントのみに制限します。NFS サーバーで showmount -e コマンドを使用して、サーバーのエクスポート内容を確認します。特に必要のないものはエクスポートしないでください。
  • 攻撃のリスクを減らすために、不要なユーザーがサーバーにログインできないようにしてください。サーバーにアクセスできるユーザーを定期的に確認してください。
警告

ファイルシステムのサブディレクトリーをエクスポートするのはセキュアではないため、ファイルシステム全体をエクスポートしてください。攻撃者が、部分的にエクスポートされたファイルシステムのエクスポートされていない部分にアクセスする可能性があります。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る