因为IIS(即Internet Information Server)的方便性和易用性,使它成为最受欢迎的Web服务器软件之一。但是,IIS的安全性却一直令人担忧。如何利用IIS建立一个安全的Web服务器,是很多人关心的话题。要创建一个安全可靠的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(http://www.microsoft.com/data/download.htm)
5.1 密码策略
由于sql server不能更改sa用户名称,也不能删除这个超级用户,所以,我们必须对这个帐号进行最强的保护,当然,包括使用一个非常强壮的密码,最好不要在数据库应用中使用sa帐号。新建立一个拥有与sa一样权限的超级用户来管理数据库。同时养成定期修改密码的好习惯。数据库管理员应该定期查看是否有不符合密码要求的帐号。比如使用下面的sql语句:
use master
select name,password from syslogins where password is null
5.2 数据库日志的记录
核数据库登录事件的"失败和成功",在实例属性中选择"安全性",将其中的审核级别选定为全部,这样在数据库系统和操作系统日志里面,就详细记录了所有帐号的登录事件。
5.3 管理扩展存储过程
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
5.4 防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账户提供数据库的安全性。对服务器实现了整体的安全加固。