Windows Internet服务器安全配置实践篇

发表于:2007-06-23来源:作者:点击数: 标签:
下一页 1 2 实践篇 下面我用的例子,将是一台标准的虚拟主机。 系统: Windows 2003 服务:[IIS] [SERV-U] [IMAIL] [SQL SERVER 2000] [ PHP ] [MYSQL] 描述:为了演示,绑定了最多的服务,大家可以根据实际情况做筛减 1. WINDOWS本地 安全 策略 端口限制 A.

下一页 1 2 

   

实践篇

下面我用的例子,将是一台标准的虚拟主机。

系统:Windows2003

服务:[IIS] [SERV-U] [IMAIL] [SQL SERVER 2000] [PHP] [MYSQL]

描述:为了演示,绑定了最多的服务,大家可以根据实际情况做筛减

1. WINDOWS本地安全策略 端口限制

A. 对于我们的例子来说,需要开通以下端口

外->本地 80

外->本地 20

外->本地 21

外->本地 PASV所用到的一些端口

外->本地 25

外->本地 110

外->本地 3389

然后按照具体情况,打开SQL SERVER和MYSQL的端口

外->本地 1433

外->本地 3306

B. 接着是开放从内部往外需要开放的端口

按照实际情况,如果无需邮件服务,则不要打开以下两条规则

本地->外 53 TCP,UDP

本地->外 25

按照具体情况,如果无需在服务器上访问网页,尽量不要开以下端口

本地->外 80

C. 除了明确允许的一律阻止,这个是安全规则的关键

外->本地 所有协议 阻止

2. 用户帐号

A. 将administrator改名,例子中改为root

B. 取消所有除管理员root外所有用户属性中的

远程控制->启用远程控制 以及

终端服务配置文件->允许登陆到终端服务器

C. 将guest改名为administrator并且修改密码

D. 除了管理员root、IUSER以及IWAM以及ASPNET用户外,禁用其他一切用户,包括SQL DEBUG以及TERMINAL USER等等

3. 目录权限

将所有盘符的权限,全部改为只有

administrators组 全部权限

ystem 全部权限

将C盘的所有子目录和子文件继承C盘的administrator(组或用户)和SYSTEM所有权限的两个权限

然后做如下修改

C:\Program Files\Common Files 开放Everyone默认的读取及运行 列出文件目录 读取三个权限

C:\WINDOWS\ 开放Everyone默认的读取及运行 列出文件目录 读取三个权限

C:\WINDOWS\Temp 开放Everyone 修改、读取及运行、列出文件目录、读取、写入权限

现在WebShell就无法在系统目录内写入文件了。当然也可以使用更严格的权限,在WINDOWS下分别目录设置权限。可是比较复杂,效果也并不明显。

4. IIS

在IIS 6下,应用程序扩展内的文件类型对应ISAPI的类型已经去掉了IDQ、PRINT等等危险的脚本类型,

在IIS 5下我们需要把除了ASP以及ASA以外所有类型删除。

安装URLSCAN

在[DenyExtensions]中一般加入以下内容 .cer
.cdx
.mdb
.bat
.cmd
.com
.htw
.ida
.idq
.htr
.idc
.shtm
.shtml
.stm
.printer

这样入侵者就无法下载.mdb数据库,这种方法比外面一些在文件头加入特殊字符的方法更加彻底。

因为即便文件头加入特殊字符,还是可以通过编码构造出来的

5. WEB目录权限

作为虚拟主机,会有许多独立客户。比较保险的做法就是为每个客户建立一个Windows用户,然后在IIS的响应的站点项内把IIS执行的匿名用户,绑定成这个用户并且把他指向的目录,权限变更为

administrators 全部权限

system 全部权限

单独建立的用户(或者IUSER) 选择高级->打开除 完全控制、遍历文件夹/运行程序、取得所有权 3个外的其他权限

如果服务器上站点不多,并且有论坛,我们可以把每个论坛的上传目录去掉此用户的执行权限,只有读写权限这样入侵者即便绕过论坛文件类型检测上传了webshell也是无法运行的。

原文转自:http://www.ltesting.net