问题
在IIS7+中可以安装请求过滤(Request Filtering)功能模块,通过这个模块可以通过各种角度(文件扩展名,URL,Http Verb,Http header,Query string)来对请求进行过滤。Request Filtering不仅可以过滤http服务请求,FTP服务也同样适用。比如有些情况下, 我们需要允许客户上传文件, 与此同时又要禁止用户下载文件. 在IIS7/7.5中, 可以通过配置FTP Request Filtering来实现这一功能.
分析
FTP 请求筛选是一种安全功能。这是一项在IIS 7/7.5上内置的功能. 通过此功能,Internet 服务提供商 (ISP) 和应用服务提供商可以限制协议和内容行为。他与HTTP 网站的请求筛选功能相类似. 在使用这个功能之前,需要确保FTP Service已经被安装上.
具体安装步骤请参考: http://www.iis.net/configreference/system.ftpserver/security/requestfiltering
FTP 请求筛选所能筛选的内容包括:
元素名称 |
描述 |
文件扩展名 |
列表指定 FTP 服务将允许或拒绝其访问的文件扩展名。 |
隐藏段 |
列表指定 FTP 服务将拒绝其访问,且将不在目录列表中显示的隐藏段。 |
拒绝的 URL 序列 |
列表指定 FTP 服务将拒绝其访问的 URL 序列。 |
命令 |
列表指定 FTP 服务将允许或拒绝其访问的 FTP 命令。 |
请参考 : http://technet.microsoft.com/zh-cn/library/dd851560.aspx
在这里, 我们主要是利用FTP 请求筛选功能来过滤某一个FTP的命令, 以此来拒绝用户下载文件.
通过实验, 用户在通过GET命令下载文件时, FTP日志中记录的是RECV命令. GET命令和RECV命令是几乎等价的命令. 用来将远端(FTP)上的文件COPY到本地.
请参考 :
http://technet.microsoft.com/library/bb490655.aspx
http://technet.microsoft.com/library/bb490675.aspx
步骤
1. 以管理员的身份进入IIS管理器.
2. 展开您需要管理的FTP网站.
3. 在右侧的feature view中, 双击 “FTP Request Filtering”.
4. 点击”Commands”选项卡.
5. 点击右侧Action Pane的”Deny Command”.
6. 在弹出对话框中输入 “RETR”. 点击OK.
使用FileZilla在进行测试这些配置.
1. 通过FileZilla上传一个测试用的文件test.txt
2. 在下载文件的时候, 当执行到RETR命令时, 该请求会被拒绝.
希望以上内容对您有所帮助
Sonic Guo