FTPサーバーとしてWindowsServer 2012R2を使用しています。 FTPサイトMyFtpServerを追加しました。使用するアプリケーションプールはMyFtpServerAppPoolです。 AppPoolは、ApplicationPoolIdentityをIDとして使用します。コマンドラインからftpを使用してログインすると、次の結果が得られます。
530-User cannot log in.
Win32 error: Access is denied.
Error details: Filename: \\?\C:\Windows\system32\inetsrv\config\redirection.config
Error: Cannot read configuration file due to insufficient permissions
読み取りアクセス権を持つネットワークサービスIDを追加して\ windows\system32\inetsrv\configフォルダーにアクセス許可を追加すると、FTPログインはエラーなしで続行されます。
しかし、私がこのようなネットワークサービスの使用について読んだのは、セキュリティに関しては、これは2ステップ前になるということです。私が見つけた「ベストプラクティス」の解決策は、IIS AppPool\MyFtpServerAppPool IDを使用してアクセス許可を追加することでした。ただし、これを行うと、FTPログインは同じエラーメッセージで再度失敗します。
だから私の質問は、この問題を解決するための最良の方法は何でしょうか?明らかに、FTP機能を機能させたいのですが、セキュリティに関してベストプラクティスとは見なされなくなった対策に戻したくありません。何か案は?
追加:私はIISマネージャーユーザーを使用しています
IIS FTPサーバーはデフォルトで_Network Service
_で実行されますが、FTPサービスはアプリケーションプールや_w3wp.exe
_プロセス。
特定のアカウントを使用してFTPサービスを実行し、そのアカウントにアクセス許可を割り当てることをお勧めする人もいます。
_Component Services
_ mmcでこれを行います。 Microsoftブログ投稿 を参照してください。試してみましたが、_FTP...
_の下に_COM+ Applications
_ノードも表示されませんでした。
サーバーマネージャーに_FTP Extensibility
_ Windows機能をインストールする必要があることを確認するのに少し時間がかかりました。
その後、_Microsoft FTP Publishing Service Extensibility Host
_ノードが表示されます。プロパティを開き、IDをカスタムアカウントに変更します。
FTPを有効にし、サイトとユーザーを作成し、FTPサービスのIDを設定するPowerShellスクリプトを作成しました。構成ファイルとftpルートで新しいアカウントのACLを設定します。