如何启用对 redirection.config 的访问

如何启用对 redirection.config 的访问

我使用 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 登录将再次失败并显示相同的错误消息。

所以我的问题是,解决这个问题的最佳方法是什么?显然,我希望 FTP 功能能够正常工作,但我不想恢复到不再被视为最佳实践安全措施的措施。有什么想法吗?

已添加:我正在使用 IIS 管理器用户

答案1

IIS FTP 服务器默认在下运行Network Service,我认为更改应用程序池标识没有帮助,因为 FTP 服务甚至不使用应用程序池或w3wp.exe进程。

有些人建议使用特定的账户来运行 FTP 服务,然后将权限分配给该账户。

你在Component Servicesmmc 中执行此操作,看到微软博客文章,我尝试过,但我甚至没有看到FTP...下面的节点COM+ Applications

花了一段时间才发现我必须FTP Extensibility在服务器管理器中安装 Windows 功能。

之后你应该能看到Microsoft FTP Publishing Service Extensibility Host节点。打开属性并将身份更改为自定义帐户。

我刚刚编写了一个 PowerShell 脚本,用于启用 FTP、创建站点和用户以及设置 FTP 服务的身份。在配置文件和 ftp 根目录上为新帐户设置 ACL。

新-DemoFTPSite.ps1

相关内容