5.4. NFS保護

ネットワークシステム(NFS) はネットワークがアクセス可能なファイルシステムをクライアントマシンに提供するサービスです。NFS の機能に関する詳細は、Red Hat Enterprise Linux リファレンスガイド内のNetwork File System (NFS)の章をご覧下さい。NFS 設定の詳細は、Red Hat Enterprise Linux システム管理ガイドを参照して下さい。以下のサブセクションは NFS の基本知識を前提としています。

重要重要
 

Red Hat Enterprise Linux に収納されている NFS のバージョンは、項5.2に概要を示してあるportmapサービスを必要としません。NFS 通信は現在では全てのバージョンで、UDP ではなく TCP を使用し NFSv4 の使用時にTCP を必要とします。NFSv4 はRPCSEC_GSSカーネルモジュールの一部として Kerberos ユーザー及びグループ認証を含んでいます。Red Hat Enterprise Linux がNFSv2 とNFSv3 をサポートしていますので、それで使用されるportmapの情報はまだ含まれています。

5.4.1. ネットワーク計画は慎重に

NFSv4 はネットワーク上で Kerberos を使用して暗号化された情報を送る能力を持っているため、通信がファイヤーウォールの裏側や部分的ネットワークに渡る場合はサービスを正確に設定することが重要です。NFSv2 と NFSv3 はデータを不安全な方法で渡しているため、用心する必要があります。すべての構成で注意深くネットワークをデザインすることが安全侵害を防止するのに役に立ちます。

5.4.2. 構文エラーに注意する

ディレクトリを/etc/exportsファイル経由で転送する先の ファイルシステムやホストはNFSサーバーが決定します。 このファイルを編集する時、無関係なスペースを追加しないように気をつけて下さい。

例えば、/etc/exportsファイルにある次の行はホストbob.example.comに対して読み込み/書き込み権限付でディレクトリ/tmp/nfs/を共有します。

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

反対に、/etc/exportsファイルにあるこの行はホストbob.example.comに対して読み取り専用の権限で同じディレクトリを共有します。又、worldに対してはホスト名の後の1文字によって、読み取り/書き込み権限でディレクトリを共有します。

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

showmountコマンドを使用し、設定された NFSの共有を確認してみて下さい:

showmount -e <hostname>

5.4.3. no_root_squashオプションは使用しない

デフォルトで、NFS は特権のないユーザーアカウントであるnfsnobodyへのルートユーザー変更を共有します。そこで全のルート作成ファイルは nfsnobodyユーザーが所有し、setuid ビットセットを持つプログラムのアップロードを阻止します。

no_root_squashが使用された場合、リモートルートユーザーは共有ファイルシステムのファイルを変更することができるため、他のユーザーが不本意に実行してしまうような、感染アプリケーションを格納してしまいます。