IISのFTPの仮想ディレクトリ機能を利用すると、実際には存在しないフォルダへユーザーを誘導できる。しかし仮想ディレクトリを作成しても、dirコマンドでは表示されないので、実際にどのよなフォルダが存在するかを把握するのは困難である。このような場合は、仮想ディレクトリに対応する実際のフォルダを、ダミーで作成しておくとよい。仮想ディレクトリを使えば、ユーザーに見せたくないフォルダを隠ぺいできる。
対象:IIS 5.0/IIS 6.0
IISのFTPサーバには、サイト中に「仮想ディレクトリ」を作成する機能がある。これは、別のフォルダへ誘導するための仮想的なリンクを作成する機能である。
例えば、デフォルトで作成されるFTPサイト(「既定のFTPサイト」)の中に、「/data1」という仮想ディレクトリを作成しておく(リンク先はC:\Data1とする)。
このように設定されたFTPサイトにユーザーがログオンし、dirコマンドを実行してみても、(デフォルトのままだと)何もファイルやフォルダは表示されない。「既定のFTPサイト」であるC:\Inetpub\ftprootには何もデータがないので、これは当然である。
C:\>ftp 10.1.1.11 ……FTPサイトへ接続する
Connected to 10.1.1.11.
220 Microsoft FTP Service
User (10.1.1.11:(none)): ftp
331 Anonymous access allowed, send identity (e-mail name) as password.
Password:
230 Anonymous user logged in.
ftp> pwd ……デフォルトの位置の確認
257 "/" is current directory. ……ルートにいる
ftp> dir ……内容を表示してみる
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
226 Transfer complete. ……何も存在しない
ftp>
しかし、cd /data1を実行すれば、実際にはユーザーはC:\Data1というフォルダへ誘導され、そのフォルダの中にあるデータへアクセスできる。
ftp> cd /data1 ……仮想ディレクトリの1つへcdしてみる
250 CWD command successful.
ftp> pwd ……移動先の確認
257 "/data1" is current directory. ……移動している
ftp> dir ……内容の確認
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
04-03-06 01:38PM 381 file1_in_data1.txt
04-03-06 01:38PM 437 file2_in_data1.txt
04-03-06 01:39PM 493 file3_in_data1.txt
226 Transfer complete.
ftp: 177 bytes received in 0.00Seconds 177000.00Kbytes/sec.
ftp>
このように、仮想ディレクトリを作成しても、実際にはそれらのディレクトリ(フォルダ)が見えるようになるわけではないので、FTPユーザーにとっては使いづらい。cdを実行しようにも、どのような(仮想)ディレクトリが存在するかが分からないからだ。
実は、これを解決する非常に簡単な方法がある。仮想ディレクトリに対応する、実際のフォルダ(ダミーのフォルダ)を作成しておけばよいのだ。こうすれば、FTPユーザーがdirコマンドを実行した場合には、そのフォルダが表示されるので、どのようなフォルダが存在するかが簡単に分かるようになる。ダミーのフォルダが存在していても、cdコマンドで移動すれば実際には仮想ディレクトリの先に誘導されるので、何の問題もない。
仮想ディレクトリに対応する物理的なディレクトリ(フォルダ)を作成する方法は、非常に簡単である。単にエクスプローラやコマンドプロンプトのmkdirコマンドを使って、空のフォルダを作成するだけである。フォルダ中に何もデータを入れておく必要はない。こうやって作っておけば、FTPユーザーがdirコマンドを実行すると、それがフォルダとして表示されるようになる。先の例だと、次のようなダミーフォルダを作成しておけばよい。
このようにしておけば、FTPユーザーには次のように見えることになる。
ftp> cd / ……ルートへ移動する
250 CWD command successful.
ftp> dir ……リストを表示してみる
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
04-03-06 02:11PM <DIR> data1 ……フォルダの一覧が表示される
04-03-06 02:11PM <DIR> data2
04-03-06 02:11PM <DIR> document
04-03-06 02:11PM <DIR> userhome
226 Transfer complete.
ftp: 190 bytes received in 0.00Seconds 190000.00Kbytes/sec.
ftp> cd /data1 ……cdする先を簡単に把握できる
250 CWD command successful.
ftp>
先ほどは見えなかったdata1やdata2といった仮想ディレクトリが、まるで実際に存在するかのように見ることができる。
以上の方法を逆にとって、ユーザーに見せたくない実際のフォルダを、仮想ディレクトリを使って隠ぺいすることも可能である。例えば、特定のユーザーにしか見せたくないデータを「D:\secret123」というフォルダに保存し、そこへの仮想ディレクトリを新規作成しておく(もちろんこれに対応する物理ディレクトリは作成しないようにする)。そうすれば、このパスを知っているFTPユーザーだけが、データへアクセスできる。
■この記事と関連性の高い別の記事
Copyright© Digital Advantage Corp. All Rights Reserved.