http://www.atmarkit.co.jp/fwin2k/win2ktips/588ftpad/ftpad.html
上記URLの通りに構築を行う際に、
> ウィザードの次の画面では、Active Directoryにアクセスするためのアカウントを指定する。先に述べた、ユーザーごとのフォルダの設定はActive Directoryのms-IIS-FTP-Rootとms-IIS-FTP-Dirに登録されているため、これらの属性をFTPサーバが読み取るためのアカウントを指定する必要がある。Active Directoryの属性を読み取るだけの最低限の権限を持ったアカウントを作成し、指定しておく。
とありますが、このときに設定するユーザ、パスワードは後々簡単には変更することが出来ません。
なんて糞仕様なんでしょうか!
そのため、パスワード変更を行うユーザを登録すると、FTPサイトがユーザ認証に失敗してしまいます。
私の現場では、次のような内容です。
◆現象
サーバの停止・起動後からAD管理下のFTP全てが接続不可
◆原因
IIS 6.0のFTPサーバでユーザー・フォルダを分離する(Active Directory編)
http://www.atmarkit.co.jp/fwin2k/win2ktips/588ftpad/ftpad.html
FTP構築を上記手順の中で「手順2―Active Directoryモードの仮想FTPディレクトリを作成する」において、「Active Directoryドメインへのアクセスに使用するユーザー名とパスワードを入力してください。」の中で、Domain Adminを指定していた。
ユーザー・フォルダの情報をActive Directoryに登録しておくモードであるため、FTPログインするユーザのカレントディレクトリの情報がADで管理されており、それを参照するためにユーザを登録している必要がある。
このときに設定しているパスワードが固定されているため、DomainAdminのパスワードを変更すると、カレントディレクトリの情報を読み込むことが出来ずFTP接続に失敗すると言う現象が発生する。
◆対応案
以下の2種類があります。
1.Domain Adminのパスワードを変更する際に、FTPサイトのパスワードも
変更する手順を盛り込む。
2.専用のユーザを作成し、FTPサイトのユーザ名・パスワードを変更する。
専用ユーザはパスワード変更を行わない。
上記案の中で2.を実施すればよいかと思います。
パスワード変更を行わないリスクについてですが、専用ユーザの権限はDomain Userと最低権限しか当てえる必要がないため、リスクは少ないものと考えております。
(Domain User権限は基本的にサーバへのログオンはできません。)
◆実際に行うコマンド
対応案1.を行う際、コマンドプロンプトより以下のコマンドを実行します。
cd /d C:\Inetpub\AdminScripts
iisftp /query
↑存在するFTPサイトの一覧が表示されます。対象のMetabase Pathを取得します。
adsutil.vbs enum [Metabase Path] | find "ADConnections"
↑FTPサイトに登録されているユーザ名とパスワードが表示されます。念のための確認
※パスワードは全てアスタリスク表示です。
adsutil.vbs set [Metabase Path]/adconnectionsusername "専用ユーザ名"
↑登録された専用ユーザが表示されます。
adsutil.vbs set [Metabase Path]/adconnectionspassword "専用ユーザパスワード"
↑登録された専用ユーザのパスワードが全てアスタリスクで表示されます。
まぁ、普通に考えて対応案1.を使うようなことがないかと思うのですが、品質の高いセキュリティを提供するとなると、対応案1.をとらざるを得ない場合も発生するでしょう。
そのような場合でも、普通にDomain Users権限のユーザを設定してパスワードを変更するということもありえると思います。
