[System Environment] | |||||||||||
IIS 6.0のFTPサーバでユーザー・フォルダを分離する(Active Directory編)
|
|||||||||||
|
解説 |
TIPS「IIS 6.0のFTPサーバでユーザー・フォルダを分離する(基本編)」では、IIS 6.0のFTPサービスでユーザーごとにフォルダを分離する基本的な方法について解説した。この方法を利用すると、例えばuser01がFTPサイトにログオンしたときに、ユーザーのフォルダを/home/user1の下だけに限定させ、ほかのフォルダへの移動や参照などを禁止することができる。セキュリティを重視するFTPサイトを構築したい場合は、この機能を利用して、ほかのユーザーやほかのグループのフォルダへの移動を禁止するとよい。
ユーザーごとにフォルダを隔離、制限する機能を「ユーザーの分離機能」というが、先のTIPSで述べたとおり、IIS 6.0のFTPサービスでは次の2通りのモードが利用できる。
- 「ユーザーを分離する(Isolate users)」モード
- 「Active Directoryを使ってユーザーを分離する(Isolate users using Active Directory)」モード
先のTIPSでは、前者のモードについて解説した。これは固定的なユーザー・フォルダ構成に向く、シンプルなモードである。デフォルトではLocalUserというフォルダの下にすべてユーザーのフォルダを集中させる必要があるが、設定方法や利用法も簡単なので、導入も容易だろう。だが、ユーザーごとに異なるフォルダを見せたい場合やグループごとにフォルダを使い分けるといった用途には向かない。
これに対して後者のActive Directoryを使ったモード(以下Active Directoryモード)では、Active Directoryのユーザー・アカウントごとにフォルダ(ルート・フォルダとホーム・フォルダ)を登録しておくことができる。Active Directoryでドメインを構築していなければ利用できないが、ユーザーごとに自由にフォルダを設定できるので、自由度が高いのが特徴である。本TIPSでは、このモードの利用方法について解説する。
操作方法 |
Windows Server 2003のActive Directoryを利用する
Active Directoryモードを利用するためには、まずWindows Server 2003でActive Directory環境を構築しておく必要がある。Windows Server 2003のActive Directoryでは、このFTPのActive Directoryモード用にスキーマ(データベースの基本的なデータ構造)が拡張されているため、Windows 2000のActive Directoryでは利用できない。このモードでは、次のユーザー属性が利用される。
属性名 | 意味 |
ms-IIS-FTP-Root | ユーザーがFTPサイトにログオンしたときの親フォルダの指定。ローカルのフォルダでよいし、リモート・コンピュータ上の共有フォルダでもよい。次のms-IID-FTP-Dirと組み合わせて利用される。省略は不可(省略するとFTPログオンできない) |
ms-IIS-FTP-Dir | FTPサイトにログオンしたときのユーザーの「カレント」となるルート・フォルダ(cdコマンドなどで上位のフォルダへ移動することはできない)。ms-IIS-FTP-Rootと組み合わせて利用される。省略は不可(省略するとFTPログオンできない) |
Windows Server 2003のActive Directoryで拡張されたFTP用ユーザー属性 | |
2つの属性が組み合わされてFTPフォルダ名として取り扱われるので、必ず両方とも指定しなければならない。 |
Windows 2000のActive Directoryでも、スキーマを拡張して、これらの属性を追加すれば利用できるが、すべて手動で行わなければならないので、あまり現実的ではない。
手順1―ユーザーごとのフォルダ属性値の設定
Active Directoryモードでは、各ユーザーごとにFTPのルートとなるフォルダを設定することができる。このフォルダは、IIS 6.0が動作しているコンピュータのローカル・フォルダでもよいし、ネットワーク上のサーバの共有フォルダでもよい。
ユーザーごとのフォルダを指定するには、上で述べたms-IIS-FTP-Rootとms-IIS-FTP-Dirの組を使用する。ms-IIS-FTP-Rootには、ユーザー・フォルダが含まれている親のフォルダ名や共有フォルダ名を指定し、ms-IIS-FTP-Dirには(通常は)ユーザー名を指定する。例えばユーザーuser01のフォルダを「c:\home\group01\user01」にするなら、ms-IIS-FTP-Rootとms-IIS-FTP-Dirをそれぞれ「c:\home\group01」「user01」とするか、「c:\home」「group01\user01」のように設定する。共有フォルダの場合は「\\server1\home」と「group01\user01」のように設定すればよい。いずれの場合でも、ユーザーuser01がFTPでログオンすると、\user01というフォルダがカレント・フォルダとなっており、その上位のフォルダ(\group01)へ移動することはできない。
なお、すべてのユーザーが同じフォルダを利用するからといって、「c:\home\group01\user01」と「.」というふうには設定できない。ms-IIS-FTP-Dirには「.」や「/」「\」といった特殊なフォルダ名は指定できず、必ず何らかのフォルダ名を使わなければならないようである。
ユーザーごとにこれらの値を設定するには、「iisftp.vbs」コマンドを利用する。これはIIS 6.0から新しく導入されたスクリプト・コマンドであり、IIS 6.0の設定をコマンドラインから制御することができる。
このコマンドにはいくつかの引数があるが、FTPフォルダを設定するには、「iisftp /SetADProp ユーザー名 FTPRoot ルート」と「iisftp /SetADProp ユーザー名 FTPDir フォルダ」を利用する。具体的には次のようなコマンドを実行する。
C:\>iisftp /setadprop user01 ftproot c:\home\group01 …ルートの設定 |
設定された内容の確認は「iisftp /GetAdProp」コマンドを利用する。
C:\>iisftp /getadprop user01 ftproot |
複数のユーザーに対してこれらの値をセットするためには、例えばバッチやスクリプト・ファイルなどを使って対処すればよいだろう。
手順2―Active Directoryモードの仮想FTPディレクトリを作成する
ユーザーごとのフォルダ設定が完了したら、次はFTPの仮想サイトを作成する。具体的な手順は、前掲のTIPSとほとんど同じなので、そちらを参考にしていただきたい。以下では、異なる部分だけを説明する。
FTPサイトを作成するには、IIS 6.0の管理ツール([管理ツール]の[インターネット インフォメーション サービス(IIS)マネージャ])を起動し、[FTP サイト]名を右クリックして、ポップアップ・メニューから[新規作成]−[FTPサイト]を実行する。
すると[FTP サイトの作成ウィザードの開始]ダイアログが表示されるので、適当なFTPのサイト名と、FTPサイトで使用するIPアドレス/ポート番号を入力して、先へ進める。次のダイアログが表示されたら、[Active Directoryを使用してユーザーを分離する]を選択する。
Active Directoryモードの選択 | |||||||||
Active Directoryの登録情報に基づいて、ユーザーのフォルダを分離することができる。 | |||||||||
|
ウィザードの次の画面では、Active Directoryにアクセスするためのアカウントを指定する。先に述べた、ユーザーごとのフォルダの設定はActive Directoryのms-IIS-FTP-Rootとms-IIS-FTP-Dirに登録されているため、これらの属性をFTPサーバが読み取るためのアカウントを指定する必要がある。Active Directoryの属性を読み取るだけの最低限の権限を持ったアカウントを作成し、指定しておく。
Active Directoryのアクセス資格の設定 | |||||||||
Active Directoryに登録された情報へアクセスするための情報を設定する。 | |||||||||
|
ドメイン名には、FTPログオンで利用されるデフォルトのActive Directoryドメイン(FQDN名もしくはNTドメインで利用される省略形)を指定する。FTPのユーザー名が「domain\user01」ではなく、単に「user01」と入力された場合には、このデフォルト・ドメインが利用される。
この画面を終了して、[次へ]をクリックし、読み書きの許可設定を行う(デフォルトでは読み出しのみ許可となっているので、必要に応じて書き込みを許可すること)。
■
ウィザードの実行後、作成したFTPサイトを[起動]させると、準備は完了である。以後、ユーザーがFTPサイトにログオンすると、設定されたフォルダへ移動しており、さらに、その上位のフォルダへは移動できない(「cd ..」などが実行できない)ことが分かるだろう。
この記事と関連性の高い別の記事
- IIS 6.0のFTPサーバでユーザー・フォルダを分離する(基本編)(TIPS)
- WindowsのFTPサーバでユーザーフォルダを設定する(TIPS)
- Windowsでエクスプローラーを使ってFTPサーバーにアクセスする方法(TIPS)
- Windowsのftpコマンドをスクリプトで使う(TIPS)
- IISの標準FTPバナー・メッセージを表示させない(TIPS)
このリストは、デジタルアドバンテージが開発した自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
「Windows TIPS」 |
- Azure Web Appsの中を「コンソール」や「シェル」でのぞいてみる (2017/7/27)
AzureのWeb Appsはどのような仕組みで動いているのか、オンプレミスのWindows OSと何が違うのか、などをちょっと探訪してみよう - Azure Storage ExplorerでStorageを手軽に操作する (2017/7/24)
エクスプローラのような感覚でAzure Storageにアクセスできる無償ツール「Azure Storage Explorer」。いざというときに使えるよう、事前にセットアップしておこう - Win 10でキーボード配列が誤認識された場合の対処 (2017/7/21)
キーボード配列が異なる言語に誤認識された場合の対処方法を紹介。英語キーボードが日本語配列として認識された場合などは、正しいキー配列に設定し直そう - Azure Web AppsでWordPressをインストールしてみる (2017/7/20)
これまでのIaaSに続き、Azureの大きな特徴といえるPaaSサービス、Azure App Serviceを試してみた! まずはWordPressをインストールしてみる
|
|