Windows自带的FTP现在可以提供基于非OS用户的管理,这提高了安全性。即使FTP用户名和密码泄露,也不会对操作系统造成进一步的破坏。
参考文档
根据这篇文章,
http://technet.microsoft.com/en-us/library/cc753017(v=WS.10).aspx
安装IIS中的FTP组件以及 Windows Authentication
但是之后我发现,依然没有IIS Manager Users功能,后来才发现需要安装Management Service功能,否则是不会出现IIS Manager Users的
由于COM进程是用Network Service账号完成身份验证的扩展的。所以,要在以下目录为Network Service添加读取权限。
Windows\System32\inetsrv\config以及子对象
Windows\System32\inetsrv\config\administrator.config
Windows\System32\inetsrv\config\redirection.config
FTP根目录以及子对象添加修改权限。
也可以使用以下命令来直接添加。
ICACLS"%SystemDrive%\Windows\System32\inetsrv\config" /Grant "NetworkService":R /T
ICACLS"%SystemDrive%\Windows\System32\inetsrv\config\administration.config"/Grant "Network Service":R
ICACLS"%SystemDrive%\Windows\System32\inetsrv\config\redirection.config"/Grant "Network Service":R
ICACLS"%SystemDrive%\inetpub\ftproot" /Grant "Network Service":M/T
在IIS的管理单元中,在服务器级别,选中Management Service.
选择Windows凭据或者IIS管理凭据。
然后在服务器级别的管理中,选择IIS Manager Users来新建和操作系统无关的用户。
接下来就要新建FTP站点了。输入站点名字和选择FTP目录
选择IP和端口。我这里没有启用SSL
验证这里,不要选,直接结束。
在站点的FTP验证中确保只启用了IisManagerAuth
接下来,在站点的IIS Manager Permisisons里面启用相应用户的权限。(试了一下,这里不加似乎也可以。)
在站点的FTP Authorization Rules里添加用户的读写权限。
最后在FTP站点,启用用户隔离就可以了。需要在FTP根目录下建立LocalUser的目录,然后再建立每个用户用户名的文件夹就可以了。