何回かに分けて FOBAS CSC Ver.3 の特徴のご紹介して行くシリーズの第5回目です。
今回は、ようやく GA にこぎつけた NFS サポートをご紹介します。
Ver.3.1.3 から、NFS が GA となりました。今までサポートができなかった背景は、詳
しい方はご存じかもしれません。
FOBAS CSC は、CSCFS3 というファイルシステムを、FUSE (Filesystem in Userspace)
という Linux カーネルモジュールとそれを利用するためのライブラリ libfuse を使用
して実装しています。
この FUSE を利用したファイルシステム、通常の ext3 や ext4 と比較しても遜色ない
機能が実現できるのですが、なぜか NFS Export すると特定の利用シーケンスで Kernel
ごとハングしてしまう不具合がありました。FOBASとしてもコミュニティへの不具合報
告や、テストケース提供などを通して問題解決に取り組んで来ましたが、ここにきて
ようやく、最新の Kernel パッチで問題の修正が確認できました。
FOBAS が提供するパッチリリースでは、Kernel Patch を適用する機能は含めていない
ので、NFS をご利用になりたいユーザの方は、Kernel Patch 適用済みの最新のイメー
ジをダウンロードしてお使いください。
さて、FOBAS CSC が提供する NFS インタフェースは、以下の様なセキュリティの観点か
ら NFSv4 に限定しています。
– アプライアンスとしてインターネットゾーンに配置される事も想定し Firewall が
標準で設定されている。NFSv3 以前は UDP ポートを大量に開放する必要があり、潜
在的なセキュリティリスクが高い。
– NFSv3 以前は、ホストベースおよび uid/gid ベースのセキュリティ(アクセス制御)
であるため、IP 偽装や uid/gid 偽装が容易。
現在はほとんどの OS が NFSv4 での接続をサポートしています。NFS クライアント側
の要件で、どうしても NFSv3 での接続が必要な場合は、FOBAS のコンサルティングサ
ービスにご相談ください。
NFSv4 に限定しているという事は、裏を返せば先述のセキュリティの課題を NFSv4 は
解決しているという事になります。NFSv4 に詳しい方には釈迦に説法となりますが、
NFSv4 がどの様に課題を解決しているのか、そして FOBAS CSC の NFS インタフェース
をどのように利用するのか、簡単に紹介していきたいと思います。
1) 通信ポートについて
NFSv3 では、111/udp,tcp 2049/udp 以外にも、mountd, statd, lockd といったプ
ロセスが動的に UDP ポート番号を確保して通信します。このためポート番号でフィ
ルタするタイプの Firewall (FOBAS CSC も iptables を使っています) では、利用
するポートを固定化し、その UDP ポートを解放する必要があります。
NFSv4 では、2049/tcp のみを利用する事になっており、非常にシンプルなポリシー
で Firewall を定義できます。
2) アクセス制御について
NFSv3 では、先に述べたとおり、root 権限を持つサーバのIPアドレスを偽装してマ
ウントしてしまえば、サーバ側のファイルの uid, gid と同じ番号のユーザであれば
ファイルのアクセスは出来てしまいます。no_root_squash で export されていれば
もうやりたい放題です。
NFSv4 では、これらの問題を防ぐ意味で user@domain、group@domain という識別子
を使ってアクセス制御を行います。これだけでは uid, gid という整数が文字列に
置き換わっただけですので、大きくセキュリティが向上したとは言えません。
FOBAS では、NFS クライアントとサーバ間で、ユーザ、グループの識別子を統一する
目的で外部のアカウント管理システム、例えば LDAP を利用します。これにより
LDAP で認証されない限り、特定のユーザ識別子は利用できませんので、ユーザ偽装
を防ぐ事ができます。
加えて NFSv4 では Kerberos を用いた認証統合が利用可能です。Active Directory
でも利用されいてる技術として有名ですが、ユーザは KDC から認証をされると、
認証レルムの中で利用可能なチケットを与えられます。各サーバ(ここでは NFSv4
サーバ)はチケットの有無でユーザ認証を代替しアクセスを許可します。この機能に
よって、NFSv4 は非常にセキュアなユーザ認証の仕組みを提供できる事になります。
FOBAS CSC でも、Kerberos 認証統合をサポートしています。ただし、Kerberos には
ユーザを認証する仕組みはありますが、グループという概念がありません。小規模で
限られたユーザで運用する仕組みであれば管理上の懸念はありませんが、大規模な企
業のファイルサーバ用途となると、グループレベルでアクセス制御を行いたい需要が
存在します。
FOBAS CSC では、その問題を避けるため LDAP サーバとの組み合わせにおいてのみ
Kerberos 認証をサポートしています。
FOBAS CSC での NFS インタフェースの利用方法についても触れたかったのですが、思
いのほかボリュームが大きくなってしまったので、詳しくはドキュメントを参照くだ
さい。実際の NFS クライアントの設定スクリプト等も含め記載がありますので、参考
になると思います。
これまでずっと NFSv3 を使ってきた方からすると、少々繁雑で厄介な設定と感じるか
もしれませんが、設定は慣れの問題だと思います。強固なセキュリティにより、情報の
漏洩や喪失リスクを低減できるのであれば、管理者の心理的負担は低くなり、結果的に
楽ができるものになると思います。
それでは今日はこのへんで。