• 検索結果がありません。

NFS のセキュア化

サーバーで NFS ファイルシステムをエクスポートする場合や、クライアントにマウントする際に、

NFS セキュリティーリスクを最小限に抑え、サーバーのデータを保護するには、以下のセクションを検 討してください。

5.1. AUTH_SYS とエクスポート制御による NFS 保護

NFS は、エクスポートしたファイルへのアクセスを制御するために、以下の従来のオプションを提供し ます。

サーバーは、IP アドレスまたはホスト名を使用して、どのホストにどのファイルシステムのマ ウントを許可するかをサーバー側で制限します。

サーバーは、ローカルユーザーの場合と同じ方法で、NFS クライアントのユーザーに対して ファイルシステムの権限を強制します。従来は、NFS は AUTH_SYS コールメッセージ

(AUTH_UNIX とも呼ばれます) を使用してこれを実行していました。このメッセージは、クラ

イアントが、ユーザーの UID と GID を提示します。これは、悪意のあるクライアントや誤って 設定されたクライアントが簡単にこの間違いを招き、ユーザーがアクセスすべきではないファ イルにアクセスできる可能性があることを意味します。

潜在的なリスクを制限するため、多くの場合、管理者は、共通のユーザー ID およびグループ ID に対し て、ユーザー権限を読み取り専用にするか、権限を下げてアクセスを制限します。ただし、このソ リューションにより、NFS 共有が元々想定されている方法では使用されなくなります。

さらに、攻撃者が、NFS ファイルシステムをエクスポートするシステムが使用する DNS サーバーを制 御できた場合は、特定のホスト名または完全修飾ドメイン名に関連付けられたシステムを、承認されて いないマシンに指定できます。これで、認証されていないマシンは、NFS 共有のマウントを許可するシ ステムになりますなります。これは、ユーザー名やパスワードの情報が交換されず、NFS マウントに追加のセ キュリティーが提供されるためです。

NFS 経由でディレクトリーのエクスポートを行う際にワイルドカードを使用する場合は慎重に行ってく ださい。ワイルドカードの対象が予定よりも広い範囲のシステムを対象とする可能性があります。

関連情報 関連情報

NFS および rpcbind のセキュリティーを保護するには、nftablesfirewalld などを使用しま す。これらのフレームワークの設定の詳細は、man ページの nft(8) および firewalld-cmd(1) を 参照してください。

5.2.

AUTH_GSS

を使用した NFS セキュリティー

NFS の全バージョンは、RPCSEC_GSS および Kerberos のメカニズムに対応します。

AUTH_SYS とは異なり、RPCSEC_GSS Kerberos メカニズムでは、サーバーは、どのユーザーがその

ファイルにアクセスしているかを正確に表すことをクライアントに依存しません。代わりに、暗号を使 用してサーバーにユーザーを認証し、悪意のあるクライアントがそのユーザーの Kerberos 認証情報を 持たずにユーザーになりすますことがないようにします。RPCSEC_GSS Kerberos メカニズムを使用す ることが、マウントを保護する最も簡単な方法になります。Kerberos の設定後は、追加の設定が不要に なるためです。

5.3. KERBEROS を使用するために NFS サーバーおよびクライアントを設

Kerberos はネットワーク認証システムであり、対称暗号化と、信頼できるサードパーティー (KDC) を 使用してクライアントとサーバーが相互に認証できるようにします。Red Hat では、Kerberos の設定に Identity Management (IdM) を使用することを推奨します。

前提条件 前提条件

Kerberos Key Distribution Centre (KDC) がインストールされ、設定されている。

手順 手順

1. NFS サーバー側で、nfs/hostname.domain@REALM プリンシパルを作成します。

サーバーとクライアントに、host/hostname.domain@REALM を作成します。

クライアントとサーバーのキータブに、対応する鍵を追加します。

2. サーバーで、sec= オプションを使用して、希望するセキュリティーフレーバーを有効にしま す。すべてのセキュリティーフレーバーと非暗号化マウントを有効にするには、以下のコマン ドを実行します。

/export *(sec=sys:krb5:krb5i:krb5p)

sec= オプションを使用するのに有効なセキュリティーフレーバーは、以下のようになります。

sys - 暗号化の保護なし (デフォルト) krb5 - 認証のみ

krb5i - インテグリティー保護 krb5p - プライバシー保護

3. クライアントで、sec=krb5 (もしくは設定に応じて sec=krb5i または sec=krb5p) をマウント オプションに追加します。

# mount -o sec=krb5 server:/export /mnt

関連情報 関連情報

Kerberos で保護された NFS 共有で root としてファイルを作成し、このファイルの root 所有権 を維持する必要がある場合は、https://access.redhat.com/articles/4040141 を参照してくださ い。この設定は推奨されません。

NFS 設定の詳細は、man ページの exports(5) および nfs(5) を参照してください。

5.4. NFSV4 セキュリティーオプション

NFSv4 には、Microsoft Windows NT モデルの機能や幅広い導入の経緯があるため、POSIX モデルでは

なく、Microsoft Windows NT モデルをベースとした ACL サポートが含まれます。

NFSv4 のもう 1 つの重要なセキュリティー機能は、ファイルシステムのマウントに MOUNT プロトコ

ルを使用しなくなることです。MOUNT プロトコルは、プロトコルがファイルを処理する方法により、

セキュリティー上のリスクが発生します。

5.5. マウントされた NFS エクスポートに対するファイル権限

リモートホストにより NFS ファイルシステムを読み取りまたは読み書きとしてマウントした場合は、

パーティションが、各共有ファイルに対する唯一の保護となります。同じユーザー ID の値を共有する 2 つのユーザーが、異なるクライアントシステムに同じ NFS ファイルシステムをマウントすると、その ユーザーは互いのファイルを修正できるようになります。また、クライアントシステムで root として ログインした場合は、su - コマンドを使用して、NFS 共有が設定されたファイルにアクセスできま す。

デフォルトでは、アクセス制御リスト (ACL) は、Red Hat Enterprise Linux では NFS が対応していま

す。Red Hat では、この機能を有効にしておくことを推奨します。

デフォルトでは、NFS がファイルシステムをエクスポートする際に、root squashing を使用します。

これにより、NFS 共有にアクセスするユーザーのユーザー ID が、ローカルマシンの root ユーザーとし て nobody に設定されます。root squashing は、デフォルトのオプション root_squash で制御されま す。このオプションの詳細は、「NFS サーバーの設定」を参照してください。

NFS 共有を読み取り専用としてエクスポートする場合は、all_squash オプションの使用を検討してく ださい。このオプションでは、エクスポートしたファイルシステムにアクセスするすべてのユーザー が、nobody ユーザーのユーザー ID を取得します。