Q

Windows 2000 ServerのIIS(Internet Information Services)で,複数ユーザーが共用するFTPサーバーを構築しています。セキュリティを高めるため,ユーザーごとの専用領域にログオンさせ,他のユーザーの領域にはアクセスできない設定にしたいと思っています。UNIXを使ったFTPサーバーでは,よく実現しているようですが,Windows 2000ではどうすればよいのでしょうか?

A

UNIXで広く使われているFTPソフトのProFTPDでは,各ユーザーのホーム・ディレクトリ以外へのアクセスを許可しないような設定が簡単にでき,こうしたセキュリティが求められる状況で広く使われています。残念ながらWindows 2000のIISでは全く同等の設定をすることはできませんが,類似の状態ならば実現可能です。

 まず,FTPサイトのルート・ディレクトリ直下に,ユーザー名と同じ名前のフォルダを作成しておきます。すると,FTPでログオンした際にそのフォルダが自動的にカレント・ディレクトリとして設定されます(図3)。

図3●Windows 2000のInternet Information Servicesを使ったFTPサーバーでは,ユーザー名と同じディレクトリがある場合,その直下を各ユーザーのホーム・ディレクトリとして扱う

 このユーザーごとに作成したフォルダに対して,別のアカウントからのアクセスを禁止するよう適切なアクセス権を設定すれば,動作としてはほぼ期待されたものとなります。具体的な設定としては,Everyoneに対するアクセス権を削除し,そのフォルダを使わせたいユーザーのアカウントに対して「フルコントロール」の権限を与えればよいでしょう。

 この方法はサポート技術情報にも掲載されているので,そちらも併せて参照してください(201771)。

ディレクトリ情報の参照は制限不可能
 ただし,この設定を使うとセキュリティ上の問題があります。

 IISをFTPサーバーとして使う場合には,そのルート・ディレクトリに対して全ユーザーが最低でも「読み取り」権限をもつ必要があります。そうしないと,ディレクトリにアクセスできないというエラー・メッセージが出て,FTPサーバーへのログオン自体が拒否されてしまいます(図4)。

図4●ルート・ディレクトリの読み取り権限がないと,FTPサーバーへのログオン自体ができない

 このため,今回のようにユーザーごとのディレクトリを使った場合でも,ログオンしたユーザーが1つ上位の親ディレクトリに移動しDIRコマンドを実行すれば,ルートにあるディレクトリの一覧を取得することが可能です。

 もちろん,アクセス権を適切に設定してあれば,自分のディレクトリ以外へアクセスしようとしても拒否されます。しかし,今回の設定のようにディレクトリ名とユーザー名とを直接対応付けていると,結果としてFTPサーバーに存在するユーザー名を取得されてしまうことになります。

 そもそも,FTPサーバーはプロトコルの仕様上パスワードが平文で送信されますので,本質的に安全ではありません。こうしたセキュリティ上の不安が大きな問題になるような場合は,FTP以外の方式を検討した方がよいでしょう。

高橋 基信