因为IIS(即Internet Information Server)的方便性和易用性,使它成为最受欢
迎的Web服务器软件之一。但是,IIS的安全性却一直令人担忧。如何利用IIS建
立一个安全的Web服 务器,是很多人关心的话题。要创建一个安全可靠的Web服
务器,必须要实现Windows 2003和IIS的双重安全,因为IIS的用户同时也是
Windows 2003的用户,并且IIS目录的权限依赖Windows的NTFS文件系统的权限控
制,所以保护IIS安全的第一步就是确保Windows 2000操作系统的安全,所以要
对服务器进行安全加固,以免遭到黑客的攻击,造成严重的后果。
我们通过一下几个方面对您的系统进行安全加固:
1. 系统的安全加固:我们通过配置目录权限,系统安全策略,协议栈加强,系
统服务和访问控制加固您的系统,整体提高服务器的安全性。
2. IIS手工加固:手工加固iis可以有效的提高iweb站点的安全性,合理分配用
户权限,配置相应的安全策略,有效的防止iis用户溢出提权。
3. 系统应用程序加固,提供应用程序的安全性,例如sql的安全配置以及服务
器应用软件的安全加固。
系统的安全加固:
1.目录权限的配置:
1.1 除系统所在分区之外的所有分区都赋予Administrators和SYSTEM有完全控制
权,之后再对其下的子目录作单独的目录权限,如果WEB站点目录,你要为其目
录权限分配一个与之对应的匿名访问帐号并赋予它有修改权限,如果想使网站更
加坚固,可以分配只读权限并对特殊的目录作可写权限。
1.2 系统所在分区下的根目录都要设置为不继承父权限,之后为该分区只赋予
Administrators和SYSTEM有完全控制权。
1.3 因为服务器只有管理员有本地登录权限,所在要配置Documents and
Settings这个目录权限只保留Administrators和SYSTEM有完全控制权,其下的子
目录同样。另外还有一个隐藏目录也需要同样操作。因为如果你安装有
PCAnyWhere那么他的的配置信息都保存在其下,使用webshell或FSO可以轻松的
调取这个配置文件。
1.4 配置Program files目录,为Common Files目录之外的所有目录赋予
Administrators和SYSTEM有完全控制权。
1.5 配置Windows目录,其实这一块主要是根据自身的情况如果使用默认的安全
设置也是可行的,不过还是应该进入SYSTEM32目录下,将 cmd.exe、 ftp.exe 、
net.exe、scrrun.dll、shell.dll这些杀手锏程序赋予匿名帐号拒绝访问。
1.6审核MetBase.bin,C:\WINNT\system32\inetsrv目录只有administrator只
允许Administrator用户读写。
2.组策略配置:
在用户权利指派下,从通过网络访问此计算机中删除Power Users和Backup
Operators;
启用不允许匿名访问SAM帐号和共享;
启用不允许为网络验证存储凭据或Passport;
从文件共享中删除允许匿名登录的DFS$和COMCFG;
启用交互登录:不显示上次的用户名;
启用在下一次密码变更时不存储LANMAN哈希值;
禁止IIS匿名用户在本地登录;
3.本地安全策略设置:
开始菜单―>管理工具―>本地安全策略
A、本地策略――>审核策略
审核策略更改 成功 失败
审核登录事件 成功 失败
审核对象访问失败
审核过程跟踪 无审核
审核目录服务访问失败
审核特权使用失败
审核系统事件 成功 失败
审核账户登录事件 成功 失败
审核账户管理 成功 失败
注:在设置审核登陆事件时选择记失败,这样在事件查看器里的安全日志就会记
录登陆失败的信息。
B、本地策略――>用户权限分配
关闭系统:只有Administrators组、其它全部删除。
通过终端服务拒绝登陆:加入Guests、User组
通过终端服务允许登陆:只加入Administrators组,其他全部删除
C、本地策略――>安全选项
交互式登陆:不显示上次的用户名 启用
网络访问:不允许SAM帐户和共享的匿名枚举启用
网络访问:不允许为网络身份验证储存凭证 启用
网络访问:可匿名访问的共享 全部删除
网络访问:可匿名访问的命全部删除
网络访问:可远程访问的注册表路径全部删除
网络访问:可远程访问的注册表路径和子路径全部删除
帐户:重命名来宾帐户重命名一个帐户
帐户:重命名系统管理员帐户 重命名一个帐户
4.本地账户策略:
在账户策略->密码策略中设定:
密码复杂性要求启用
密码长度最小值 6位
强制密码历史 5次
最长存留期 30天
在账户策略->账户锁定策略中设定:
账户锁定 3次错误登录
锁定时间 20分钟
复位锁定计数 20分钟
5. 修改注册表配置:
5.1 通过更改注册表
local_machine\system\currentcontrolset\control\lsa-restrictanonymous =
1来禁止139空连接
5.2 修改数据包的生存时间(ttl)值
hkey_local_machine\system\currentcontrolset\services\tcpip\parameters
defaultttl reg_dword 0-0xff(0-255 十进制,默认值128)
5.3 防止syn洪水攻击
hkey_local_machine\system\currentcontrolset\services\tcpip\parameters
synattackprotect reg_dword 0x2(默认值为0x0)
5.4禁止响应icmp路由通告报文
hkey_local_machine\system\currentcontrolset
\services\tcpip\parameters\interfaces\interface
performrouterdiscovery reg_dword 0x0(默认值为0x2)
5.5防止icmp重定向报文的攻击
hkey_local_machine\system\currentcontrolset\services\tcpip\parameters
enableicmpredirects reg_dword 0x0(默认值为0x1)
5.6不支持igmp协议
hkey_local_machine\system\currentcontrolset\services\tcpip\parameters
5.7修改3389默认端口:
运行 Regedt32 并转到此项:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control
\Terminal Server\WinStations\RDP-Tcp, 找到“PortNumber”子项,您会看到
值 00000D3D,它是 3389 的十六进制表示形式。使用十六进制数值修改此端口
号,并保存新值
禁用不必要的服务不但可以降低服务器的资源占用减轻负担,而且可以增强安全
性。下面列出了
igmplevel reg_dword 0x0(默认值为0x2)
5.8 设置arp缓存老化时间设置
hkey_local_machine\system\currentcontrolset\services:\tcpip\parameters
arpcachelife reg_dword 0-0xffffffff(秒数,默认值为120秒)
arpcacheminreferencedlife reg_dword 0-0xffffffff(秒数,默认值为600)
5.9禁止死网关监测技术
hkey_local_machine\system\currentcontrolset\services:\tcpip\parameters
enabledeadgwdetect reg_dword 0x0(默认值为ox1)
5.10 不支持路由功能
hkey_local_machine\system\currentcontrolset\services:\tcpip\parameters
ipenablerouter reg_dword 0x0(默认值为0x0)
6. 禁用服务:
・Application Experience Lookup Service
・Automatic Updates
・BITS
・Computer Browser
・DHCP Client
・Error Reporting Service
・Help and Support
・Network Location Awareness
・Print Spooler
・Remote Registry
・Secondary Logon
・Server
・Smartcard
・TCP/IP NetBIOS Helper
・Workstation
・Windows Audio
・Windows Time
・Wireless Configuration
7.解除NetBios与TCP/IP协议的绑定
控制面版――网络――绑定――NetBios接口――禁用 2000:控制面版――网络
和拨号连接――本地网络――属性――TCP/IP――属性――高级――WINS――禁
用TCP/IP上的NETBIOS
8. 使用tcp/ip筛选
在网络连接的协议里启用TCP/IP筛选,仅开放必要的端口(如80)
9.禁止WebDAV
在注册表:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters
加以下注册表值:
数值名称:DisableWebDAV
数据类型:DWORD
数值数据:1
iis 加固方案:
1. 仅安装必要的 iis 组件。(禁用不需要的如ftp 和 smtp 服务)
2. 仅启用必要的服务和 web service 扩展,推荐配置:
ui 中的组件名称
设置
设置逻辑
后台智能传输服务 (bits) 服务器扩展
启用
bits 是 windows updates 和"自动更新"所使用的后台文件传输机制。如果使用
windows updates 或"自动更新"在 iis 服务器中自动应用 service pack 和热
修补程序,则必须有该组件。
公用文件
启用
iis 需要这些文件,一定要在 iis 服务器中启用它们。
文件传输协议 (ftp) 服务
禁用
允许 iis 服务器提供 ftp 服务。专用 iis 服务器不需要该服务。
frontpage 2002 server extensions
禁用
为管理和发布 web 站点提供 frontpage 支持。如果没有使用 frontpage 扩展
的 web 站点,请在专用 iis 服务器中禁用该组件。
internet 信息服务管理器
启用
iis 的管理界面。
internet 打印
禁用
提供基于 web 的打印机管理,允许通过 http 共享打印机。专用 iis 服务器不
需要该组件。
nntp 服务
禁用
在 internet 中分发、查询、检索和投递 usenet 新闻文章。专用 iis 服务器
不需要该组件。
smtp 服务
禁用
支持传输电子邮件。专用 iis 服务器不需要该组件。
万维网服务
启用
为客户端提供 web 服务、静态和动态内容。专用 iis 服务器需要该组件。
万维网服务子组件
ui 中的组件名称
安装选项
设置逻辑
active server page
启用
提供 asp 支持。如果 iis 服务器中的 web 站点和应用程序都不使用 asp,请
禁用该组件;或使用 web 服务扩展禁用它。
internet 数据连接器
禁用
通过扩展名为 .idc 的文件提供动态内容支持。如果 iis 服务器中的 web 站点
和应用程序都不包括 .idc 扩展文件,请禁用该组件;或使用 web 服务扩展禁
用它。
远程管理 (html)
禁用
提供管理 iis 的 html 界面。改用 iis 管理器可使管理更容易,并减少了 iis
服务器的攻击面。专用 iis 服务器不需要该功能。
远程桌面 web 连接
禁用
包括了管理终端服务客户端连接的 microsoft activex? 控件和范例页面。改用
iis 管理器可使管理更容易,并减少了 iis 服务器的攻击面。专用 iis 服务器
不需要该组件。
服务器端包括
禁用
提供 .shtm、.shtml 和 .stm 文件的支持。如果在 iis 服务器中运行的 web
站点和应用程序都不使用上述扩展的包括文件,请禁用该组件。
webdav
禁用
webdav 扩展了 http/1.1 协议,允许客户端发布、锁定和管理 web 中的资源。
专用 iis 服务器禁用该组件;或使用 web 服务扩展禁用该组件。
万维网服务
启用
为客户端提供 web 服务、静态和动态内容。专用 iis 服务器需要该组件
3. 将iis目录&数据与系统磁盘分开,保存在专用磁盘空间内。
4. 在iis管理器中删除必须之外的任何没有用到的映射(保留asp等必要映射即
可)
5. 在iis中将http404 object not found出错页面通过url重定向到一个定制htm
文件
6. web站点权限设定(建议)
web 站点权限:
授予的权限:
读 允许
写 不允许
脚本源访问 不允许
目录浏览 建议关闭
日志访问 建议关闭
索引资源 建议关闭
执行 推荐选择 "仅限于脚本"
7. 建议使用w3c扩充日志文件格式,每天记录客户ip地址,用户名,服务器端口
,方法,uri字根,http状态,用户代理,而且每天均要审查日志。(最好 不要
使用缺省的目录,建议更换一个记日志的路径,同时设置日志的访问权限,只允
许管理员和system为full control)。
8. 程序安全:
1) 涉及用户名与口令的程序最好封装在服务器端,尽量少的在asp文件里出现,
涉及到与数据库连接地用户名与口令应给予最小的权限; 2) 需要经过验证的asp
页面,可跟踪上一个页面的文件名,只有从上一页面转进来的会话才能读取这个
页面。
防止asp主页.inc文件泄露问题;
4) 防止ue等编辑器生成some.asp.bak文件泄露问题。
安全更新
应用所需的所有 service pack 和定期手动更新补丁。
安装和配置防病毒保护
推荐nav 8.1以上版本病毒防火墙(配置为至少每周自动升级一次)。
安装和配置防火墙保护
推荐最新版blackice server protection防火墙(配置简单,比较实用)
监视解决方案
根据要求安装和配置 mom代理或类似的监视解决方案。
加强数据备份
web数据定时做备份,保证在出现问题后可以恢复到最近的状态。
9. 删除不必要的应用程序映射
ISS中默认存在很多种应用程序映射,除了ASP的这个程序映射,其他的文件在网
站上都很少用到。
在“Internet 服务管理器”中,右击网站目录,选择“属性”,在网站目录属
性对话框的“主目录”页面中,点击[配置]按钮,弹出“应用程序配置”对话框
,在“应用程序映射”页面,删除无用的程序映射。如果需要这一类文件时,必
须安装最新的系统修补补丁,并且选中相应的程序映射,再点击[编辑]按钮,在
“添加/编辑应用程序扩展名映射”对话框中勾选“检查文件是否存在”选项。
这样当客户请求这类文件时,IIS会先检查文件是否存在,文件存在后才会去调
用程序映射中定义的动态链接库来解析。
保护日志安全
日志是系统安全策略的一个重要环节,确保日志的安全能有效提高系统整体安全
性。
修改IIS日志的存放路径
默认情况下,IIS的日志存放在%WinDir%/System32/LogFiles,黑客当然非常清
楚,所以最好修改一下其存放路径。在 “Internet服务管理器”中,右击网站
目录,选择“属性”,在网站目录属性对话框的“Web站点”页面中,在选中“
启用日志记录”的情况下,点击旁 边的[属性]按钮,在“常规属性”页面,点
击[浏览]按钮或者直接在输入框中输入日志存放路径即可。
sql服务器安全加固
安装最新的mdac( [url]http://www.microsoft.com/data/download.htm[/url] )
密码策略
由于sql server不能更改sa用户名称,也不能删除这个超级用户,所以,我们必
须对这个帐号进行最强的保护,当然,包括使用一个非常强壮的密码,最好不要
在数据库应用中使用sa帐号。新建立一个拥有与sa一样权限的超级用户来管理数
据库。同时养成定期修改密码的好习惯。数据库管理员应该定期查看是否有不符
合密码要求的帐号。比如使用下面的sql语句:
use master
select name,password from syslogins where password is null
数据库日志的记录
核数据库登录事件的"失败和成功",在实例属性中选择"安全性",将其中的审核
级别选定为全部,这样在数据库系统和操作系统日志里面,就详细记录了所有帐
号的登录事件。
管理扩展存储过程
xp_cmdshell是进入操作系统的最佳捷径,是数据库留给操作系统的一个大后门
。请把它去掉。使用这个sql语句:
use master
sp_dropextendedproc ’xp_cmdshell’
注:如果你需要这个存储过程,请用这个语句也可以恢复过来。
sp_addextendedproc ’xp_cmdshell’, ’xpsql70.dll’
ole自动存储过程(会造成管理器中的某些特征不能使用),这些过程包括如下
(不需要可以全部去掉:
sp_oacreate sp_oadestroy sp_oageterrorinfo sp_oagetproperty
sp_oamethod sp_oasetproperty sp_oastop
去掉不需要的注册表访问的存储过程,注册表存储过程甚至能够读出操作系统管
理员的密码来,如下:
xp_regaddmultistring xp_regdeletekey xp_regdeletevalue
xp_regenumvalues
xp_regread xp_regremovemultistring xp_regwrite
防tcp/ip端口探测
在实例属性中选择tcp/ip协议的属性。选择隐藏 sql server 实例。
请在上一步配置的基础上,更改原默认的1433端口。
在ipsec过滤拒绝掉1434端口的udp通讯,可以尽可能地隐藏你的sql server。
对网络连接进行ip限制
使用操作系统自己的ipsec可以实现ip数据包的安全性。请对ip连接进行限制,
保证只有自己的ip能够访问,拒绝其他ip进行的端口连接。
通过以上的配置,禁止了服务器开放不必要的端口,防止服务被植入后门程序,
通过配置目录权限可以防止入侵者拿到welshell后提权,加强了服务器的安 全
性,避免了对服务器的攻击和加强了TCP协议栈。通过iis的配置提高了iis的安
全性和稳定性。修改了sql server的默认端口,可以防止恶意用户对服务器进行
扫描尝试暴力破解sa账户提供数据库的安全性。对服务器实现了整体的安全加固
。