NFSは、多数の既知のホストがあるファイルシステム全体をおおむね透過方式で共有することにおいてうまく機能します。 NFSマウントを介してファイルにアクセスする多くのユーザーは、使用しているファイルシステムが自分のシステムに ローカルではないことに気が付かないかもしれません。しかし、その使いやすさと共にさまざまなセキュリティ問題が 内在しています。
あるサーバー上のNFSファイルシステムをエクスポートしたり、それらをクライアントにマウントしたりするときは、 以下の点について考慮する必要があります。それを実行すれば、NFSセキュリティリスクを最小限に抑え、サーバーの データの保護を改善できます。
NFSが管理するのは、マウント要求するホストをベースにしたエクスポートファイルをマウントできる人で、 ファイルシステムを実際に利用するユーザーではありません。ホストはエクスポートファイルシステムをマウントする 権利を明示的に与えられていなければいけません。ファイルとディレクトリのアクセス権以外のアクセス制御は、 ユーザーにはできません。言い換えると、ファイルシステムがNFSを介してエクスポートされると、NFSサーバーに 接続されているどのリモートホストのどのユーザーでも共有データにアクセスできます。この内在するリスクを 制限するには、管理者が読み取り専用のアクセスだけを許可するか、あるいは、ユーザーを一般的なユーザーidと グループidに「押し下げ」ます。ただし、この解決法は、本来の目的であるNFS共有の使用を阻止することにもなりえます。
さらに、NFSファイルシステムをエクスポートしているシステムが使用するDNSサーバーの制御権を侵入者が取得すると、 ある特定のホスト名や完全修飾ドメイン名に関連付けられているシステムは無許可マシンへとポイントされる可能性があります。 ここで、NFSマウントの追加セキュリティを用意する為のユーザー名又はパスワード情報が交換されていませんので、 この無許可マシンがNFS共有をマウントするように許可されたシステムそのものになります。また、ある ホストがNFS共有をマウントできるようにするためにNISネットグループを使用している場合は、同様のリスクがNISサーバーの 侵害にも当てはまります。/etc/exportsにIPアドレスを使用することによって、この種のアタックを より困難にすることはできます。
ワイルドカードは、NFS共有のエクスポートを許可しているときに控えめに使用すべきです。 ワイルドカードが有効な範囲は意図した以上のシステムに達する可能性があります。
NFSの安全な使用に関する詳細はRed Hat Linux セキュリティ ガイドの中の サーバーセキュリティの章を参照して下さい。
NFSファイルシステムはリモートホストによって読み書きモードでいったんマウントされると、 各共有ファイルが持つ唯一の保護はその権限だけです。仮に同じuseridの値を持つ2人のユーザーが、 同じNFSファイルシステムをマウントした場合、彼らは互いに相手のデータを変更することができます。 さらにはクライアントシステムでrootとしてログインする人は誰でもsu -コマンドを 使用して、NFS共有を介して特定のファイルにアクセスできるユーザーになることが出来ます。NFSとuseridの 衝突に関する詳細は、Red Hat Linux システム アドミニストレーション プレミアの中のアカウントとグループの管理を 参照して下さい。
NFSによりファイルシステムをエクスポートするときのデフォルト動作は、root squashingを 使用することです。この結果、ローカルマシンのrootユーザーとしてNFS共有を利用する人のユーザーIDは、サーバーの nobodyアカウント値に設定されます。root squashingは停止してはいけません。
NFS共有を読み取り専用でエクスポートする場合、all_squashオプションの使用を検討して下さい。 これは、エクスポートファイルシステムにアクセスするすべてのユーザーにnobodyユーザーのユーザーIDを取得させます。