我正在使用windows 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 32\inetsrv\config文件夹时,通过添加具有读访问权限的网络服务标识.然后,FTP登录继续进行,没有错误。
但是我所读到的关于使用网络服务的文章是,从安全性的角度来看,这将是2步后退。我发现的“最佳实践”解决方案是使用IIS AppPool\MyFtpServerAppPool标识添加权限。但是,如果我这样做,那么FTP登录将再次失败,并带有相同的错误消息。
所以我的问题是,解决这个问题最好的办法是什么?显然,我希望FTP功能能够工作,但是我不想回到不再被认为是最好的安全实践的度量。有什么想法吗?
添加:我正在使用IIS管理器用户
发布于 2016-08-20 12:40:19
默认情况下,IIS服务器运行在Network Service下,我认为更改应用程序池标识是没有帮助的,因为FTP服务甚至不使用应用程序池或w3wp.exe进程。
有些人建议使用特定帐户运行FTP服务,然后将权限分配给该帐户。
在Component Services mmc中这样做,看到一个微软博客,我尝试过,但是我甚至没有看到COM+ Applications下的FTP...节点
花了一段时间才发现我必须在Server中安装FTP Extensibility Windows功能。
在此之后,您将看到Microsoft FTP Publishing Service Extensibility Host节点。打开属性并将标识更改为自定义帐户。
我刚刚编写了一个PowerShell脚本,它启用FTP,创建站点和用户,并设置FTP服务的标识。为配置文件和ftp根上的新帐户设置ACL。
https://serverfault.com/questions/797952
复制相似问题