krb5 で保護された NFS で root としてファイルを作成する
NFS 共有で root としてファイルを作成すると、ファイルはデフォルトで nfsnobody
(RHEL 7 の場合) または nobody
(RHEL 8 の場合) ユーザーおよびグループで書き込まれます。これは、Kerberos で保護された NFS マウントを使用している場合、アクティブな Kerberos チケットを持つユーザーのみがファイルにアクセスできるために発生します。root は Kerberos によって特別なケースとして扱われないため、これには root ユーザーが含まれます。
この手順では、クライアントの ホスト チケットをサーバーのスーパーユーザーアカウントにマッピングすることでその機能を追加し、そのホストチケットにアクセスできるすべてのプロセスでスーパーユーザーアクセスを利用できるようにします。その結果、NFS サーバーはこれらのファイルに root
ユーザーとグループを保持します。
警告: この手順は一般的な方法として 推奨されるものではありません。この特定の動作がどうしても必要な場合にのみ使用してください。認証されていないローカル root ユーザーをクライアントから NFS サーバーのスーパーユーザーに効果的にマッピングすることで、セキュリティーを弱める可能性があります。
セキュリティーを向上させるために、この手順では、nfsclient.example.com
などの単一の名前付きホストに対してのみ root アクセスを有効にします。
前提条件
- NFS エクスポートは、
sec=krb5
オプションで保護されている。
手順
-
NFS サーバーホストの
/etc/exportfs
ファイルで、no_root_squash
オプションをエクスポート設定に追加します。以下に例を示します。/root nfsclient.example.com(rw,no_root_squash)
-
NFS サーバーホストで、次を
/etc/krb5.conf
ファイルに追加します。[realms] … EXAMPLE.COM = { … auth_to_local = RULE:[2:$1/$2@$0](host/nfsclient.example.com@EXAMPLE.COM)s/.*/root/ auth_to_local = DEFAULT }
必要に応じて、
auth_to_local = RULE:…
行を追加できますが、auth_to_local = DEFAULT
行は常に最後にする必要があります。
Comments