PR
Q

FTP(ファイル転送プロトコル)サーバーの機能をUNIXマシンからWindows 2000 ServerもしくはWindows Server 2003マシンに移行しようと計画しています。UNIXマシンでは,セキュリティ上,アクセス可能な領域を,ログインした各ユーザーのホーム・ディレクトリ内部に制限しています。Windowsマシンでも,同様の機能を実現したいのですが,設定方法がよく分かりません。Windows Server 2003では設定が可能なようですが,どうすればよいでしょうか。またWindows 2000 Serverでは実現できないのでしょうか。

A

UNIXで一般的なProFTPDなどのFTPサーバー・ソフトは,各ユーザーのアクセス可能な領域を自分のホーム・ディレクトリ内部に制限する機能を以前から実装しています。Windows Server 2003のInternet Information Services(IIS)6.0では,UNIXと同様の機能が実装されています。また,Windows 2000 ServerのIIS 5.0でも,設定で類似の機能を実現できます。

Windows 2000では設定を追加
 まず,Windows 2000 Serverでの実現方法を説明します。同OSに備わるIIS 5.0のFTPサーバー機能では匿名ユーザー以外でログオンした場合,FTPサイトのルート・フォルダ直下に,ログオン時に指定したユーザー名と同じ名前のフォルダがあると,自動的にそのフォルダをカレント・フォルダとする機能が実装されています。


△ 図をクリックすると拡大されます
図1●Windows 2000ではユーザー名の付いたフォルダを作成ことで実現する
 例えば,図1aのようにIISの既定のFTPサイト(通常C:\Inetpub\ftproot)直下にftpuser1というフォルダを作成しておくと,このFTPサイトにftpuser1でログオンした際,図1bのようにカレント・フォルダが「/ftpuser1」となります。

 ただし,この機能はあくまでカレント・フォルダを設定するだけです。そのままルート・フォルダに移動してフォルダ一覧を参照したり,別のフォルダに移動したりできます。

 そこでユーザー名の付いた各フォルダでNTFSアクセス許可を構成してください。


△ 図をクリックすると拡大されます
図2●Windows 2000ではさらにFTPサーバーのユーザー名の付いたフォルダへのアクセスを制限する
 例えばFTPサーバーのftpuser2フォルダのアクセス許可を図2のようにftpuser2と管理用ユーザーに限定することで,ほかのユーザー(例えばftpuser1など)が該当フォルダに移動することを禁止可能です。加えてFTPサイトのルート・フォルダに「読み取り」のアクセス許可を設定しておきます。これで運用上はUNIXのFTPサーバーと類似の機能が実現できます。

 FTPサイトのルート・フォルダの「読み取り」権限は必ず付けてください。削除した場合,FTPサイトへのログオン自体が失敗します。そのため,ユーザーがFTPサイトのルート・フォルダに移動してフォルダ一覧を参照することで,FTPでアクセス可能なユーザー名の一覧が取得できるというセキュリティ上の問題は残ります。

2003は専用の機能を用意


△ 図をクリックすると拡大されます
図3●Windows Server 2003では「FTPユーザーの分離」を使う

△ 図をクリックすると拡大されます
図4●Windows Server 2003のFTPサーバーのフォルダ構成
 Windows Server 2003でもWindows 2000 Serverと同様の機能は実装されていますが,さらに「FTPユーザーの分離」という機能が追加されました。Windows Server 2003のIISマネージャから新たにFTPサイトを作成すると,ウィザードの途中で図3のような画面が表示されます。ここで[ユーザーを分離する]という設定を指定してください。

 続いて,図4のようにFTPサイトのルート・フォルダ(この例ではC:\Inetpub\ftptest1)直下にLocalUserという名前のフォルダを作成し,その下に各ユーザー名のフォルダを作成します。 これにより,FTPサーバーにログオンした際のルート・フォルダが各ユーザー名のフォルダに設定され,親フォルダへのアクセスが抑止されます。この設定を行った場合,ログオンするユーザーのルート・フォルダが存在しないとエラーが発生してログオンできませんので気を付けてください。

 なお,匿名ユーザーでのログオンも許可する場合は,匿名ユーザー用のルート・フォルダとして,LocalUserフォルダの下にPublicという名前のフォルダを作成しておいてください。

ドメイン・メンバー固有の設定も可能
 Windows Server 2003のFTPサーバーがドメインのメンバーである場合は,FTPクライアント・ソフトのログオン・プロンプトでユーザー名を「ドメイン名\ユーザー名」形式で入力することにより,ドメインのユーザーとしてFTPサーバーにログオン可能です。


△ 図をクリックすると拡大されます
図5●Windows Server 2003におけるドメイン・ユーザーの場合のFTPサーバーのフォルダ構成
 「FTPユーザーの分離」の設定を行っている場合に,ドメイン・ユーザーでのログオンを許可する場合は,LocalUserというフォルダの代わりに,ドメイン名のフォルダを作成し,その下にドメインに所属する各ユーザーのフォルダを作成します。

 例えばWindows Server 2003のFTPサーバーが「W2003AD1」ドメインに所属しており,ftpuser1という名前のドメイン・ユーザーでFTPサーバーにログオン可能にする場合は,図5のようにW2003AD1フォルダの下にftpuser1という名前のフォルダを作成します。

 Active Directoryを用いている場合は,図3の画面で[Active Directoryを使用してユーザーを分離する]を選択することで,ドメインのユーザーごとに,FTPルート・フォルダの位置を設定することも可能です。詳細については,マイクロソフトのWebサイト「FTPユーザーを分離する」などを参照してください。

NTTデータ 基盤システム事業本部
システム方式技術ビジネスユニット
第一技術統括部 第一システム方式技術担当
シニアエキスパート