Я использую Windows Server 2012 R2 в качестве FTP-сервера. Я добавил FTP-сайт MyFtpServer. Пул приложений, который он использует, - MyFtpServerAppPool. AppPool использует ApplicationPoolIdentity в качестве идентификатора. Если я использую 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
Когда я добавляю разрешение на папку \ windows \ system32 \ inetsrv \ config, добавляя удостоверение сетевых служб с доступом для чтения .... тогда вход по FTP выполняется без ошибок.
Но то, что я читал об использовании таких сетевых служб, заключается в том, что с точки зрения безопасности это будет два шага назад. Лучшим решением, которое я нашел, было добавление разрешений с использованием идентификатора IIS AppPool \ MyFtpServerAppPool. Однако если я это сделаю, то снова произойдет сбой входа в систему с тем же сообщением об ошибке.
Итак, мой вопрос: как лучше всего решить эту проблему? Очевидно, я хочу, чтобы функциональность FTP работала, но я не хочу возвращаться к мерам, которые больше не считаются передовой практикой безопасности. Любые идеи?
Добавлено: я использую "Пользователи диспетчера IIS".
FTP-сервер IIS по умолчанию работает под управлением Network Service
, Я думаю, что изменение идентификатора пула приложений бесполезно, потому что службы FTP даже не используют пулы приложений или w3wp.exe
процессы.
Некоторые люди рекомендуют использовать определенную учетную запись для запуска службы FTP, а затем назначать разрешения для этой учетной записи.
Вы делаете это в Component Services
mmc, см. Сообщение в блоге Microsoft, Я пробовал это, но я даже не видел FTP...
узел под COM+ Applications
Потребовалось время, чтобы понять, что мне нужно установить FTP Extensibility
Функция Windows в диспетчере сервера.
После этого вы должны увидеть Microsoft FTP Publishing Service Extensibility Host
узел. Откройте свойства и измените удостоверение на настраиваемую учетную запись.
Я только что написал сценарий PowerShell, который включает FTP, создает сайт и пользователя и устанавливает идентификацию для службы FTP. Установите ACL для новой учетной записи в файлах конфигурации и в корне ftp.