IIS设置.docx
《IIS设置.docx》由会员分享,可在线阅读,更多相关《IIS设置.docx(19页珍藏版)》请在冰豆网上搜索。
IIS设置
IIS设置
IIS的相关设置:
删除默认建立的站点的虚拟目录,停止默认web站点,删除对应的文件目录c:
inetpub,配置所有站点的公共设置,设置好相关的连接数限制,带宽设置以及性能设置等其他设置。
配置应用程序映射,删除所有不必要的应用程序扩展,只保留asp,php,cgi,pl,aspx应用程序扩展。
对于php和cgi,推荐使用isapi方式解析,用exe解析对安全和性能有所影响。
用户程序调试设置发送文本错误信息给户。
对于数据库,尽量采用mdb后缀,不需要更改为asp,可在IIS中设置一个mdb的扩展映射,将这个映射使用一个无关的dll文件如C:
WINNTsystem32inetsrvssinc.dll来防止数据库被下载。
设置IIS的日志保存目录,调整日志记录信息。
设置为发送文本错误信息。
修改403错误页面,将其转向到其他页,可防止一些扫描器的探测。
另外为隐藏系统信息,防止telnet到80端口所泄露的系统版本信息可修改IIS的banner信息,可以使用winhex手工修改或者使用相关软件如banneredit修改。
对于用户站点所在的目录,在此说明一下,用户的FTP根目录下对应三个文件佳,wwwroot,database,logfiles,分别存放站点文件,数据库备份和该站点的日志。
如果一旦发生入侵事件可对该用户站点所在目录设置具体的权限,图片所在的目录只给予列目录的权限,程序所在目录如果不需要生成文件(如生成html的程序)不给予写入权限。
因为是虚拟主机平常对脚本安全没办法做到细致入微的地步,更多的只能在方法用户从脚本提升权限:
ASP的安全设置:
设置过权限和服务之后,防范asp木马还需要做以下工作,在cmd窗口运行以下命令:
regsvr32/uC:
\WINNT\System32\wshom.ocx
delC:
\WINNT\System32\wshom.ocx
regsvr32/uC:
\WINNT\system32\shell32.dll
delC:
\WINNT\system32\shell32.dll
即可将WScript.Shell,Shell.application,WScript.Network组件卸载,可有效防止asp木马通过wscript或shell.application执行命令以及使用木马查看一些系统敏感信息。
另法:
可取消以上文件的users用户的权限,重新启动IIS即可生效。
但不推荐该方法。
另外,对于FSO由于用户程序需要使用,服务器上可以不注销掉该组件,这里只提一下FSO的防范,但并不需要在自动开通空间的虚拟商服务器上使用,只适合于手工开通的站点。
可以针对需要FSO和不需要FSO的站点设置两个组,对于需要FSO的用户组给予c:
winntsystem32scrrun.dll文件的执行权限,不需要的不给权限。
重新启动服务器即可生效。
对于这样的设置结合上面的权限设置,你会发现海阳木马已经在这里失去了作用!
PHP的安全设置:
默认安装的php需要有以下几个注意的问题:
C:
\winnt\php.ini只给予users读权限即可。
在php.ini里需要做如下设置:
Safe_mode=on
register_globals=Off
allow_url_fopen=Off
display_errors=Off
magic_quotes_gpc=On[默认是on,但需检查一遍]
open_basedir=web目录
disable_functions=passthru,exec,shell_exec,system,phpinfo,get_cfg_var,popen,chmod
默认设置com.allow_dcom=true修改为false[修改前要取消掉前面的;]
MySQL安全设置:
如果服务器上启用MySQL数据库,MySQL数据库需要注意的安全设置为:
删除mysql中的所有默认用户,只保留本地root帐户,为root用户加上一个复杂的密码。
赋予普通用户updatedeletealertcreatedrop权限的时候,并限定到特定的数据库,尤其要避免普通客户拥有对mysql数据库操作的权限。
检查mysql.user表,取消不必要用户的shutdown_priv,relo
ad_priv,process_priv和File_priv权限,这些权限可能泄漏更多的服务器信息包括非mysql的其它信息出去。
可以为mysql设置一个启动用户,该用户只对mysql目录有权限。
设置安装目录的data数据库的权限(此目录存放了mysql数据库的数据信息)。
对于mysql安装目录给users加上读取、列目录和执行权限。
Serv-u安全问题:
安装程序尽量采用最新版本,避免采用默认安装目录,设置好serv-u目录所在的权限,设置一个复杂的管理员密码。
修改serv-u的banner信息,设置被动模式端口范围(4001—4003)在本地服务器中设置中做好相关安全设置:
包括检查匿名密码,禁用反超时调度,拦截“FTPbounce”攻击和FXP,对于在30秒内连接超过3次的用户拦截10分钟。
域中的设置为:
要求复杂密码,目录只使用小写字母,高级中设置取消允许使用MDTM命令更改文件的日期。
更改serv-u的启动用户:
在系统中新建一个用户,设置一个复杂点的密码,不属于任何组。
将servu的安装目录给予该用户完全控制权限。
建立一个FTP根目录,需要给予这个用户该目录完全控制权限,因为所有的ftp用户上传,删除,更改文件都是继承了该用户的权限,否则无法操作文件。
另外需要给该目录以上的上级目录给该用户的读取权限,否则会在连接的时候出现530Notloggedin,homedirectorydoesnotexist.比如在测试的时候ftp根目录为d:
soft,必须给d盘该用户的读取权限,为了安全取消d盘其他文件夹的继承权限。
而一般的使用默认的system启动就没有这些问题,因为system一般都拥有这些权限的。
数据库服务器的安全设置
对于专用的MSSQL数据库服务器,按照上文所讲的设置TCP/IP筛选和IP策略,对外只开放1433和5631端口。
对于MSSQL首先需要为sa设置一个强壮的密码,使用混合身份验证,加强数据库日志的记录,审核数据库登陆事件的“成功和失败”。
删除一些不需要的和危险的OLE自动存储过程(会造成企业管理器中部分功能不能使用),这些过程包括如下:
Sp_OACreateSp_OADestroySp_OAGetErrorInfoSp_OAGetProperty
Sp_OAMethodSp_OASetPropertySp_OAStop
去掉不需要的注册表访问过程,包括有:
Xp_regaddmultistringXp_regdeletekeyXp_regdeletevalue
Xp_regenumvaluesXp_regreadXp_regremovemultistring
Xp_regwrite
去掉其他系统存储过程,如果认为还有威胁,当然要小心Drop这些过程,可以在测试机器上测试,保证正常的系统能完成工作,这些过程包括:
xp_cmdshellxp_dirtreexp_dropwebtasksp_addsrvrolemember
xp_makewebtaskxp_runwebtaskxp_subdirssp_addlogin
sp_addextendedproc
在实例属性中选择TCP/IP协议的属性。
选择隐藏SQLServer实例可防止对1434端口的探测,可修改默认使用的1433端口。
除去数据库的guest账户把未经认可的使用者据之在外。
例外情况是master和tempdb数据库,因为对他们guest帐户是必需的。
另外注意设置好各个数据库用户的权限,对于这些用户只给予所在数据库的一些权限。
在程序中不要用sa用户去连接任何数据库。
网络上有建议大家使用协议加密的,千万不要这么做,否则你只能重装MSSQL了。
入侵检测和数据备份
入侵检测工作
作为服务器的日常管理,入侵检测是一项非常重要的工作,在平常的检测过程中,主要包含日常的服务器安全例行检查和遭到入侵时的入侵检查,也就是分为在入侵进行时的安全检查和在入侵前后的安全检查。
系统的安全性遵循木桶原理,木桶原理指的是:
一个木桶由许多块木板组成,如果组成木桶的这些木板长短不一,那么这个木桶的最大容量不取决于长的木板,而取决于最短的那块木板。
应用到安全方面也就是说系统的安全性取决于系统中最脆弱的地方,这些地方是日常的安全检测的重点所在。
日常的安全检测
日常安全检测主要针对系统的安全性,工作主要按照以下步骤进行:
1.查看服务器状态:
打开进程管理器,查看服务器性能,观察CPU和内存使用状况。
查看是否有CPU和内存占用过高等异常情况。
2.检查当前进程情况
切换“任务管理器”到进程,查找有无可疑的应用程序或后台进程在运行。
用进程管理器查看进程时里面会有一项taskmgr,这个是进程管理器自身的进程。
如果正在运行windows更新会有一项wuauclt.exe进程。
对于拿不准的进程或者说不知道是服务器上哪个应用程序开启的进程,可以在网络上搜索一下该进程名加以确定[进程知识库:
3.检查系统帐号
打开计算机管理,展开本地用户和组选项,查看组选项,查看administrators组是否添加有新帐号,检查是否有克隆帐号。
4.查看当前端口开放情况
使用activeport,查看当前的端口连接情况,尤其是注意与外部连接着的端口情况,看是否有未经允许的端口与外界在通信。
如有,立即关闭该端口并记录下该端口对应的程序并记录,将该程序转移到其他目录下存放以便后来分析。
打开计算机管理==》软件环境==》正在运行任务[在此处可以查看进程管理器中看不到的隐藏进程],查看当前运行的程序,如果有不明程序,记录下该程序的位置,打开任务管理器结束该进程,对于采用了守护进程的后门等程序可尝试结束进程树,如仍然无法结束,在注册表中搜索该程序名,删除掉相关键值,切换到安全模式下删除掉相关的程序文件。
5.检查系统服务
运行services.msc,检查处于已启动状态的服务,查看是否有新加的未知服务并确定服务的用途。
对于不清楚的服务打开该服务的属性,查看该服务所对应的可执行文件是什么,如果确定该文件是系统内的正常使用的文件,可粗略放过。
查看是否有其他正常开放服务依存在该服务上,如果有,可以粗略的放过。
如果无法确定该执行文件是否是系统内正常文件并且没有其他正常开放服务依存在该服务上,可暂时停止掉该服务,然后测试下各种应用是否正常。
对于一些后门由于采用了hook系统API技术,添加的服务项目在服务管理器中是无法看到的,这时需要打开注册表中的HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices项进行查找,通过查看各服务的名称、对应的执行文件来确定是否是后门、木马程序等。
6.查看相关日志
运行eventvwr.msc,粗略检查系统中的相关日志记录。
在查看时在对应的日志记录上点右键选“属性”,在“筛选器”中设置一个日志筛选器,只选择错误、警告,查看日志的来源和具体描述信息。
对于出现的错误如能在服务器常见故障排除中找到解决办法则依照该办法处理该问题,如果无解决办法则记录下该问题,详细记录下事件来源、ID号和具体描述信息,以便找到问题解决的办法。
7.检查系统文件
主要检查系统盘的exe和dll文件,建议系统安装完毕之后用dir*.exe/s>1.txt将C盘所有的exe文件列表保存下来,然后每次检查的时候再用该命令生成一份当时的列表,用fc比较两个文件,同样如此针对dll文件做相关检查。
需要注意的是打补丁或者安装软件后重新生成一次原始列表。
检查相关系统文件是否被替换或系统中是否被安装了木马后门等恶意程序。
必要时可运行一次杀毒程序对系统盘进行一次扫描处理。
8.检查安全策略是否更改
打开本地连接的属性,查看“常规”中是否只勾选了“TCP/IP协议”,打开“TCP/IP”协议设置,点“高级”==》“选项”,查看“IP安全机制”是否是设定的IP策略,查看“TCP/IP”筛选允许的端口有没有被更改。
打开“管理工具”=》“本地安全策略”,查看目前使用的IP安全策略是否发生更改。
9.检查目录权限
重点查看系统目录和重要的应用程序权限是否被更改。
需要查看的目录有c:
;c:
winnt;
C:
winntsystem32;c:
winntsystem32inetsrv;c:
winntsystem32inetsrvdata;c:
documentsand
Settings;然后再检查serv-u安装目录,查看这些目录的权限是否做过变动。
检查system32下的一些重要文件是否更改过权限,包括:
cmd,net,ftp,tftp,cacls等文件。
10.检查启动项
主要检查当前的开机自启动程序。
可以使用AReporter来检查开机自启动的程序。
发现入侵时的应对措施
对于即时发现的入侵事件,以下情况针对系统已遭受到破坏情况下的处理,系统未遭受到破坏或暂时无法察觉到破坏先按照上述的检查步骤检查一遍后再酌情考虑以下措施。
系统遭受到破坏后应立即采取以下措施:
视情况严重决定处理的方式,是通过远程处理还是通过实地处理。
如情况严重建议采用实地处理。
如采用实地处理,在发现入侵的第一时间通知机房关闭服务器,待处理人员赶到机房时断开网线,再进入系统进行检查。
如采用远程处理,如情况严重第一时间停止所有应用服务,更改IP策略为只允许远程管理端口进行连接然后重新启动服务器,重新启动之后再远程连接上去进行处理,重启前先用AReporter检查开机自启动的程序。
然后再进行安全检查。
以下处理措施针对用户站点被入侵但未危及系统的情况,如果用户要求加强自己站点的安全性,可按如下方式加固用户站点的安全:
站点根目录——只给administrator读取权限,权限继承下去。
wwwroot——给web用户读取、写入权限。
高级里面有删除子文件夹和文件权限
logfiles——给system写入权限。
database——给web用户读取、写入权限。
高级里面没有删除子文件夹和文件权限
如需要进一步修改,可针对用户站点的特性对于普通文件存放目录如html、js、图片文件夹只给读取权限,对asp等脚本文件给予上表中的权限。
另外查看该用户站点对应的安全日志,找出漏洞原因,协助用户修补程序漏洞。
数据备份和数据恢复
数据备份工作大致如下:
1.每月备份一次系统数据。
2.备份系统后的两周单独备份一次应用程序数据,主要包括IIS、serv-u、数据库等数据。
3.确保备份数据的安全,并分类放置这些数据备份。
因基本上采用的都是全备份方法,对于数据的保留周期可以只保留该次备份和上次备份数据两份即可。
数据恢复工作:
1.系统崩溃或遇到其他不可恢复系统正常状态情况时,先对上次系统备份后发生的一些更改事件如应用程序、安全策略等的设置做好备份,恢复完系统后再恢复这些更改。
2.应用程序等出错采用最近一次的备份数据恢复相关内容。
服务器性能优化
1服务器性能优化
系统性能优化
整理系统空间:
删除系统备份文件,删除驱动备份,刪除不用的輸入法,刪除系统的帮助文件,卸载不常用的组件。
最小化C盘文件。
性能优化:
删除多余的开机自动运行程序;减少预读取,减少进度条等待时间;让系统自动关闭停止响应的程序;禁用错误报告,但在发生严重错误时通知;关闭自动更新,改为手动更新计算机;启用硬件和DirectX加速;禁用关机事件跟踪;禁用配置服务器向导;减少开机磁盘扫描等待时间;将处理器计划和内存使用都调到应用程序上;调整虚拟内存;内存优化;修改cpu的二级缓存;修改磁盘缓存。
IIS性能优化
1、调整IIS高速缓存
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\InetInfoParametersMemoryCacheSize
MemoryCacheSize的范围是从0道4GB,缺省值为3072000(3MB)。
一般来说此值最小应设为服务器内存的10%.IIS通过高速缓存系统句柄、目录列表以及其他常用数据的值来提高系统的性能。
这个参数指明了分配给高速缓存的内存大小。
如果该值为0,那就意味着“不进行任何高速缓存”。
在这种情况下系统的性能可能会降低。
如果你的服务器网络通讯繁忙,并且有足够的内存空间,可以考虑增大该值。
必须注意的是修改注册表后,需要重新启动才能使新值生效。
2.不要关闭系统服务:
“ProtectedStorage”
3.对访问流量进行限制
A.对站点访问人数进行限制
B.站点带宽限制。
保持HTTP连接。
C.进程限制,输入CPU的耗用百分比
4.提高IIS的处理效率
应用程序设置“处的”应用程序保护“下拉按钮,从弹出的下拉列表中,选中”低(IIS进程)“选项,IIS服务器处理程序的效率可以提高20%左右。
但此设置会带来严重的安全问题,不值得推荐。
5.将IIS服务器设置为独立的服务器
A.提高硬件配置来优化IIS性能硬盘:
硬盘空间被NT和IIS服务以如下两种方式使用:
一种是简单地存储数据;另一种是作为虚拟内存使用。
如果使用Ultra2的SCSI硬盘,可以显著提高IIS的性能。
B.可以把NT服务器的页交换文件分布到多个物理磁盘上,注意是多个“物理磁盘”,分布在多个分区上是无效的。
另外,不要将页交换文件放在与WIndowsNT引导区相同的分区中。
C.使用磁盘镜像或磁盘带区集可以提高磁盘的读取性能。
D.最好把所有的数据都储存在一个单独的分区里。
然后定期运行磁盘碎片整理程序以保证在存储Web服务器数据的分区中没有碎片。
使用NTFS有助于减少碎片。
推荐使用Norton的Speeddisk,可以很快的整理NTFS分区。
6.起用HTTP压缩
HTTP压缩是在Web服务器和浏览器间传输压缩文本内容的方法。
HTTP压缩采用通用的压缩算法如gzip等压缩HTML、JavaScript或CSS文件。
可使用pipeboost进行设置。
7.起用资源回收
使用IIS5Recycle定时回收进程资源。
服务器常见故障排除
1.ASP“请求的资源正在使用中”的解决办法:
该问题一般与杀毒软件有关,在服务器上安装个人版杀毒软件所致。
出现这种错误可以通过卸载杀毒软件解决,也可尝试重新注册vbscript.dll和jscript.dll来解决,在命令行下运行:
regsvr32vbscript.dll和regsvr32jscript.dll即可。
2.ASP500错误解决办法:
首先确定该问题是否是单一站点存在还是所有站点存在,如果是单一站点存在该问题,则是网站程序的问题,可打开该站点的错误提示,把IE的“显示友好HTTP错误”信息取消,查看具体错误信息,然后对应修改相关程序。
如是所有站点存在该问题,并且HTML页面没有出现该问题,相关日志出现“服务器无法加载应用程序‘/LM/W3SVC/1/ROOT’。
错误是‘不支持此接口’”。
那十有八九是服务器系统中的ASP相关组件出现了问题,重新启动IIS服务,尝试是否可以解决该问题,无法解决重新启动系统尝试是否可解决该问题,如无法解决可重新修复一下ASP组件:
首先删除com组件中的关于IIS的三个东西,需要先将属性里的高级中“禁止删除”的勾选取消。
命令行中,输入“cdwinnt\system32\inetsrv”字符串命令,单击回车键后,再执行“rundll32wamreg.dll,CreateIISPackage”命令,接着再依次执行“regsvr32asptxn.dll”命令、“iisreset”命令,最后重新启动一下计算机操作系统,这样IIS服务器就能重新正确响应ASP脚本页面了。
3.IIS出现105错误:
在系统日志中“服务器无法注册管理工具发现信息。
管理工具可能无法看到此服务器”来源:
w3svcID:
105解决办法:
在网络连接中重新安装netbios协议即可,安装完成之后取消掉勾选。
4.MySQL服务无法启动「错误代码1067」的解决方法
启动MySQL服务时都会在中途报错!
内容为:
在本地计算机无法启动MySQL服务错误1067:
进程意外中止。
解决方法:
查找Windows目录下的my.ini文件,编辑内容(如果没有该文件,则新建一个),至少包含
basedir,datadir这两个基本的配置。
[mysqld]
#setbasedirtoinstallationpath,e.g.,c:
/mysql
#设置为MYSQL的安装目录
basedir=D:
/www/WebServer/MySQL
#setdatadirtolocationofdatadirectory,
#e.g.,c:
/mysql/dataord:
/mydata/data
#设置为MYSQL的数据目录
datadir=D:
/www/WebServer/MySQL/data
注意,我在更改系统的temp目录之后没有对更改后的目录给予system用户的权限也出现过该问题。
5.DllHotst进程消耗cpu100%的问题
服务器正常CPU消耗应该在75%以下,而且CPU消耗应该是上下起伏的,出现这种问题的服务器,CPU会突然一直处100%的水平,而且不会下降。
查看任务管理器,可以发现是DLLHOST.EXE消耗了所有的CPU空闲时间,管理员在这种情况下,只好重新启动IIS服务,奇怪的是,重新启动IIS服务后一切正常,但可能过了一段时间后,问题又再次出现了。
直接原因:
有一个或多个ACCESS数据库在多次读写过程中损坏,MDAC系统在写入这个损坏的ACCESS文件时,ASP线程处于BLOCK状态,结果其他线程只能等待,IIS被死锁了,全部的CPU时间都消耗在DLLHOST中。
解决办法:
把数据库下载到本地,然后用ACCESS打开,进行修复操作。
再上传到网站。
如果还不行,只有新建一个ACCESS数据库,再从原来的数据库中导入所有表和记录。
然后把新数据库上传到服务器上。
6.Windowsinstaller出错:
在安装软件的时候出现“不能访问windowsinstaller服务。
可能你在安全模式下运行windows,或者windowsinstaller没有正确的安装。
请和你的支持人员联系以获得帮助”如果试图重新安装InstMsiW.exe,提示:
“指定的服务已存在”。
解决办法:
关于installer的错误,可能还有其他错误提示,可尝试以下解决办法:
首先确认是否是权限方面的问题,提示信息会提供相关信息,如果是权限问题,给予winnt目录everyone权限即可[安装完把权限改回来即可].如果提示的是上述信息,可以尝试以下解决方法:
运行“msiexec/unregserver”卸载WindowsInstaller服务,如果无法卸载可使用SRVINSTW进行卸载,然后下载windowsinstaller的安装程序[地址: