扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
服务器内部错误或者页面无法找到照成的 你可以询问下管理员是否对文件的大小有限制,或者图片的格式的限制 如果文件太大可以分割成多个文件。
十余年的方城网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。全网营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整方城建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。成都创新互联从事“方城网站设计”,“方城网站推广”以来,每个客户项目都认真落实执行。
导致这个错误的原因一般来说,有三种:
1、无法在所请求的端口上访问Web站点。
2、Web服务扩展锁定策略阻止本请求。
3、MIME映射策略阻止本请求。
问题解决:
1、网站所在目录的权限问题:权限要有asp点虐 计算机帐户,user,有的环境中还要打开IIS_WPG,Network Services这两个权限。
2、IIS-主目录-配置-选项-启用父路径打上对勾。
3.通配符应用程序映射这一项要将需要的asp或aspx应用程序插入进来,但我在架设自己的网站程序时该项目没有修改是默认无映射的情况也可以正常运行,这点并不是所有人的所有服务器环境都适用的。
4、.IIS(Internet 服务器)- Web服务扩展 - Active Server Pages - 右键点击该项再左键点击"允许"。
5、IIS(Internet 服务器)- Web服务扩展 - 在服务端的包含文件 - 右键点击该项再左键点击"允许"。
原理篇
我们将从入侵者入侵的各个环节来作出对应措施
一步步的加固windows系统.
加固windows系统.一共归于几个方面
1.端口限制
2.设置ACL权限
3.关闭服务或组件
4.包过滤
5.审计
我们现在开始从入侵者的第一步开始.对应的开始加固已有的windows系统.
1.扫描
这是入侵者在刚开始要做的第一步.比如搜索有漏洞的服务.
对应措施:端口限制
以下所有规则.都需要选择镜像,否则会导致无法连接
我们需要作的就是打开服务所需要的端口.而将其他的端口一律屏蔽
2.下载信息
这里主要是通过URL SCAN.来过滤一些非法请求
对应措施:过滤相应包
我们通过安全URL SCAN并且设置urlscan.ini中的DenyExtensions字段
来阻止特定结尾的文件的执行
3.上传文件
入侵者通过这步上传WEBSHELL,提权软件,运行cmd指令等等.
对应措施:取消相应服务和功能,设置ACL权限
如果有条件可以不使用FSO的.
通过 regsvr32 /u c:\windows\system32\scrrun.dll来注销掉相关的DLL.
如果需要使用.
那就为每个站点建立一个user用户
对每个站点相应的目录.只给这个用户读,写,执行权限,给administrators全部权限
安装杀毒软件.实时杀除上传上来的恶意代码.
个人推荐MCAFEE或者卡巴斯基
如果使用MCAFEE.对WINDOWS目录所有添加与修改文件的行为进行阻止.
4.WebShell
入侵者上传文件后.需要利用WebShell来执行可执行程序.或者利用WebShell进行更加方便的文件操作.
对应措施:取消相应服务和功能
一般WebShell用到以下组件
WScript.Network
WScript.Network.1
WScript.Shell
WScript.Shell.1
Shell.Application
Shell.Application.1
我们在注册表中将以上键值改名或删除
同时需要注意按照这些键值下的CLSID键的内容
从/HKEY_CLASSES_ROOT/CLSID下面对应的键值删除
5.执行SHELL
入侵者获得shell来执行更多指令
对应措施:设置ACL权限
windows的命令行控制台位于\WINDOWS\SYSTEM32\CMD.EXE
我们将此文件的ACL修改为
某个特定管理员帐户(比如administrator)拥有全部权限.
其他用户.包括system用户,administrators组等等.一律无权限访问此文件.
6.利用已有用户或添加用户
入侵者通过利用修改已有用户或者添加windows正式用户.向获取管理员权限迈进
对应措施:设置ACL权限.修改用户
将除管理员外所有用户的终端访问权限去掉.
限制CMD.EXE的访问权限.
限制SQL SERVER内的XP_CMDSHELL
7.登陆图形终端
入侵者登陆TERMINAL SERVER或者RADMIN等等图形终端,
获取许多图形程序的运行权限.由于WINDOWS系统下绝大部分应用程序都是GUI的.
所以这步是每个入侵WINDOWS的入侵者都希望获得的
对应措施:端口限制
入侵者可能利用3389或者其他的木马之类的获取对于图形界面的访问.
我们在第一步的端口限制中.对所有从内到外的访问一律屏蔽也就是为了防止反弹木马.
所以在端口限制中.由本地访问外部网络的端口越少越好.
如果不是作为MAIL SERVER.可以不用加任何由内向外的端口.
阻断所有的反弹木马.
8.擦除脚印
入侵者在获得了一台机器的完全管理员权限后
就是擦除脚印来隐藏自身.
对应措施:审计
首先我们要确定在windows日志中打开足够的审计项目.
如果审计项目不足.入侵者甚至都无需去删除windows事件.
其次我们可以用自己的cmd.exe以及net.exe来替换系统自带的.
将运行的指令保存下来.了解入侵者的行动.
对于windows日志
我们可以通过将日志发送到远程日志服务器的方式来保证记录的完整性.
evtsys工具()
提供将windows日志转换成syslog格式并且发送到远程服务器上的功能.
使用此用具.并且在远程服务器上开放syslogd,如果远程服务器是windows系统.
推荐使用kiwi syslog deamon.
我们要达到的目的就是
不让入侵者扫描到主机弱点
即使扫描到了也不能上传文件
即使上传文件了不能操作其他目录的文件
即使操作了其他目录的文件也不能执行shell
即使执行了shell也不能添加用户
即使添加用户了也不能登陆图形终端
即使登陆了图形终端.拥有系统控制权.他的所作所为还是会被记录下来.
额外措施:
我们可以通过增加一些设备和措施来进一步加强系统安全性.
1.代理型防火墙.如ISA2004
代理型防火墙可以对进出的包进行内容过滤.
设置对HTTP REQUEST内的request string或者form内容进行过滤
将SELECT.DROP.DELETE.INSERT等都过滤掉.
因为这些关键词在客户提交的表单或者内容中是不可能出现的.
过滤了以后可以说从根本杜绝了SQL 注入
2.用SNORT建立IDS
用另一台服务器建立个SNORT.
对于所有进出服务器的包都进行分析和记录
特别是FTP上传的指令以及HTTP对ASP文件的请求
可以特别关注一下.
本文提到的部分软件在提供下载的RAR中包含
包括COM命令行执行记录
URLSCAN 2.5以及配置好的配置文件
IPSEC导出的端口规则
evtsys
一些注册表加固的注册表项.
实践篇
下面我用的例子.将是一台标准的虚拟主机.
系统: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组 全部权限
system 全部权限
将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
点抗
.htw
.ida
.idq
.htr
.idc
.shtm
.shtml
.stm
.printer
这样入侵者就无法下载.mdb数据库.这种方法比外面一些在文件头加入特殊字符的方法更加彻底.
因为即便文件头加入特殊字符.还是可以通过编码构造出来的
5.WEB目录权限
作为虚拟主机.会有许多独立客户
比较保险的做法就是为每个客户,建立一个windows用户
然后在IIS的响应的站点项内
把IIS执行的匿名用户.绑定成这个用户
并且把他指向的目录
权限变更为
administrators 全部权限
system 全部权限
单独建立的用户(或者IUSER) 选择高级-打开除 完全控制,遍历文件夹/运行程序,取得所有权 3个外的其他权限.
如果服务器上站点不多.并且有论坛
我们可以把每个论坛的上传目录
去掉此用户的执行权限.
只有读写权限
这样入侵者即便绕过论坛文件类型检测上传了webshell
也是无法运行的.
6.MS SQL SERVER2000
使用系统帐户登陆查询分析器
运行以下脚本
use master
exec sp_dropextendedproc 'xp_cmdshell'
exec sp_dropextendedproc 'xp_dirtree'
exec sp_dropextendedproc 'xp_enumgroups'
exec sp_dropextendedproc 'xp_fixeddrives'
exec sp_dropextendedproc 'xp_loginconfig'
exec sp_dropextendedproc 'xp_enumerrorlogs'
exec sp_dropextendedproc 'xp_getfiledetails'
exec sp_dropextendedproc 'Sp_OACreate'
exec sp_dropextendedproc 'Sp_OADestroy'
exec sp_dropextendedproc 'Sp_OAGetErrorInfo'
exec sp_dropextendedproc 'Sp_OAGetProperty'
exec sp_dropextendedproc 'Sp_OAMethod'
exec sp_dropextendedproc 'Sp_OASetProperty'
exec sp_dropextendedproc 'Sp_OAStop'
exec sp_dropextendedproc 'Xp_regaddmultistring'
exec sp_dropextendedproc 'Xp_regdeletekey'
exec sp_dropextendedproc 'Xp_regdeletevalue'
exec sp_dropextendedproc 'Xp_regenumvalues'
exec sp_dropextendedproc 'Xp_regread'
exec sp_dropextendedproc 'Xp_regremovemultistring'
exec sp_dropextendedproc 'Xp_regwrite'
drop procedure sp_makewebtask
go
删除所有危险的扩展.
7.修改CMD.EXE以及NET.EXE权限
将两个文件的权限.修改到特定管理员才能访问,比如本例中.我们如下修改
cmd.exe root用户 所有权限
net.exe root用户 所有权现
这样就能防止非法访问.
还可以使用例子中提供的comlog程序
将com.exe改名_com.exe,然后替换com文件.这样可以记录所有执行的命令行指令
8.备份
使用ntbackup软件.备份系统状态.
使用reg.exe 备份系统关键数据
如reg export HKLM\SOFTWARE\ODBC e:\backup\system\odbc.reg /y
来备份系统的ODBC
9.杀毒
这里介绍MCAFEE 8i 中文企业版
因为这个版本对于国内的许多恶意代码和木马都能够及时的更新.
比如已经能够检测到海阳顶端2006
而且能够杀除IMAIL等SMTP软件使用的队列中MIME编码的病毒文件
而很多人喜欢安装诺顿企业版.而诺顿企业版,对于WEBSHELL.基本都是没有反应的.
而且无法对于MIME编码的文件进行杀毒.
在MCAFEE中.
我们还能够加入规则.阻止在windows目录建立和修改EXE.DLL文件等
我们在软件中加入对WEB目录的杀毒计划.
每天执行一次
并且打开实时监控.
10.关闭无用的服务
我们一般关闭如下服务
Computer Browser
Help and Support
Messenger
Print Spooler
Remote Registry
TCP/IP NetBIOS Helper
如果服务器不用作域控,我们也可以禁用
Workstation
11.取消危险组件
如果服务器不需要FSO
regsvr32 /u c:\windows\system32\scrrun.dll
注销组件
使用regedit
将/HKEY_CLASSES_ROOT下的
WScript.Network
WScript.Network.1
WScript.Shell
WScript.Shell.1
Shell.Application
Shell.Application.1
键值改名或删除
将这些键值下CLSID中包含的字串
如{72C24DD5-D70A-438B-8A42-98424B88AFB8}
到/HKEY_CLASSES_ROOT/CLSID下找到以这些字串命名的键值
全部删除
12.审计
本地安全策略-本地策略-审核策略
打开以下内容
审核策略更改 成功,失败
审核系统事件 成功,失败
审核帐户登陆事件 成功,失败
审核帐户管理 成功,失败
其实,在服务器的安全设置方面,我虽然有一些经验,但是还谈不上有研究,所以我写这篇文章的时候心里很不踏实,总害怕说错了会误了别人的事。
本文更侧重于防止ASP漏洞攻击,所以服务器防黑等方面的讲解可能略嫌少了点。
基本的服务器安全设置
安装补丁
安装好操作系统之后,最好能在托管之前就完成补丁的安装,配置好网络后,如果是2000则确定安装上了SP4,如果是2003,则最好安装上SP1,然后点击开始→Windows update,安装所有的关键更新。
安装杀毒软件
虽然杀毒软件有时候不能解决问题,但是杀毒软件避免了很多问题。
不要指望杀毒软件杀掉所有的木马,因为ASP木马的特征是可以通过一定手段来避开杀毒软件的查杀。
设置端口保护和防火墙、删除默认共享
都是服务器防黑的措施,即使你的服务器上没有IIS,这些安全措施都最好做上。这是阿江的盲区,大概知道屏蔽端口用本地安全策略,不过这方面的东西网上攻略很多,大家可以找出来看看,晚些时候我或者会复制一些到我的网站上。
权限设置
阿江感觉这是防止ASP漏洞攻击的关键所在,优秀的权限设置可以将危害减少在一个IIS站点甚至一个虚拟目录里。我这里讲一下原理和设置思路,聪明的朋友应该看完这个就能解决问题了。
权限设置的原理
WINDOWS用户,在WINNT系统中大多数时候把权限按用户(组)来划分。在【开始→程序→管理工具→计算机管理→本地用户和组】管理系统用户和用户组。
NTFS权限设置,请记住分区的时候把所有的硬盘都分为NTFS分区,然后我们可以确定每个分区对每个用户开放的权限。【文件(夹)上右键→属性→安全】在这里管理NTFS文件(夹)权限。
IIS匿名用户,每个IIS站点或者虚拟目录,都可以设置一个匿名访问用户(现在暂且把它叫"IIS匿名用户"),当用户访问你的网站的.ASP文件的时候,这个.ASP文件所具有的权限,就是这个"IIS匿名用户"所具有的权限。
权限设置的思路
要为每个独立的要保护的个体(比如一个网站或者一个虚拟目录)创建一个系统用户,让这个站点在系统中具有惟一的可以设置权限的身份。
在IIS的【站点属性或者虚拟目录属性→目录安全性→匿名访问和验证控制→编辑→匿名访问→编辑】填写刚刚创建的那个用户名。
设置所有的分区禁止这个用户访问,而刚才这个站点的主目录对应的那个文件夹设置允许这个用户访问(要去掉继承父权限,并且要加上超管组和SYSTEM组)。
这样设置了之后,这个站点里的ASP程序就只有当前这个文件夹的权限了,从探针上看,所有的硬盘都是红叉叉。
我的设置方法
我是先创建一个用户组,以后所有的站点的用户都建在这个组里,然后设置这个组在各个分区没有权限或者完全拒绝。然后再设置各个IIS用户在各在的文件夹里的权限。
因为比较多,所以我很不想写,其实知道了上面的原理,大多数人都应该懂了,除非不知道怎么添加系统用户和组,不知道怎么设置文件夹权限,不知道IIS站点属性在那里。真的有那样的人,你也不要着急,要沉住气慢慢来,具体的方法其实自己也能摸索出来的,我就是这样。当然,如果我有空,我会写我的具体设置方法,很可能还会配上图片。
改名或卸载不安全组件
不安全组件不惊人
我在阿江探针1.9里加入了不安全组件检测功能(其实这是参考7i24的代码写的,只是把界面改的友好了一点,检测方法和他是基本一样的),这个功能让很多站长吃惊不小,因为他发现他的服务器支持很多不安全组件。
其实,只要做好了上面的权限设置,那么FSO、XML、strem都不再是不安全组件了,因为他们都没有跨出自己的文件夹或者站点的权限。那个欢乐时光更不用怕,有杀毒软件在还怕什么时光啊。
最危险的组件是WSH和Shell,因为它可以运行你硬盘里的EXE等程序,比如它可以运行提升程序来提升SERV-U权限甚至用SERVU来运行更高权限的系统程序。
卸载最不安全的组件
最简单的办法是直接卸载后删除相应的程序文件。将下面的代码保存为一个.BAT文件,( 以下均以 WIN2000 为例,如果使用2003,则系统文件夹应该是 C:\WINDOWS\ )
Quoted from Unkown:
regsvr32/u C:\WINNT\System32\wshom.ocx
del C:\WINNT\System32\wshom.ocx
regsvr32/u C:\WINNT\system32\shell32.dll
del C:\WINNT\system32\shell32.dll
然后运行一下,WScript.Shell, Shell.application, WScript.Network就会被卸载了。可能会提示无法删除文件,不用管它,重启一下服务器,你会发现这三个都提示"×安全"了。
改名不安全组件
需要注意的是组件的名称和Clsid都要改,并且要改彻底了。下面以Shell.application为例来介绍方法。
打开注册表编辑器【开始→运行→regedit回车】,然后【编辑→查找→填写Shell.application→查找下一个】,用这个方法能找到两个注册表项:"{13709620-C279-11CE-A49E-444553540000}"和"Shell.application"。为了确保万无一失,把这两个注册表项导出来,保存为 .reg 文件。
比如我们想做这样的更改
13709620-C279-11CE-A49E-444553540000 改名为 13709620-C279-11CE-A49E-444553540001
Shell.application 改名为 Shell.application_ajiang
那么,就把刚才导出的.reg文件里的内容按上面的对应关系替换掉,然后把修改好的.reg文件导入到注册表中(双击即可),导入了改名后的注册表项之后,别忘记了删除原有的那两个项目。这里需要注意一点,Clsid中只能是十个数字和ABCDEF六个字母。
下面是我修改后的代码(两个文件我合到一起了):
Quoted from Unkown:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\CLSID\{13709620-C279-11CE-A49E-444553540001}]
@="Shell Automation Service"
[HKEY_CLASSES_ROOT\CLSID\{13709620-C279-11CE-A49E-444553540001}\InProcServer32]
@="C:\\WINNT\\system32\\shell32.dll"
"ThreadingModel"="Apartment"
[HKEY_CLASSES_ROOT\CLSID\{13709620-C279-11CE-A49E-444553540001}\ProgID]
@="Shell.Application_ajiang.1"
[HKEY_CLASSES_ROOT\CLSID\{13709620-C279-11CE-A49E-444553540001}\TypeLib]
@="{50a7e9b0-70ef-11d1-b75a-00a0c90564fe}"
[HKEY_CLASSES_ROOT\CLSID\{13709620-C279-11CE-A49E-444553540001}\Version]
@="1.1"
[HKEY_CLASSES_ROOT\CLSID\{13709620-C279-11CE-A49E-444553540001}\VersionIndependentProgID]
@="Shell.Application_ajiang"
[HKEY_CLASSES_ROOT\Shell.Application_ajiang]
@="Shell Automation Service"
[HKEY_CLASSES_ROOT\Shell.Application_ajiang\CLSID]
@="{13709620-C279-11CE-A49E-444553540001}"
[HKEY_CLASSES_ROOT\Shell.Application_ajiang\CurVer]
@="Shell.Application_ajiang.1"
你可以把这个保存为一个.reg文件运行试一下,但是可别就此了事,因为万一黑客也看了我的这篇文章,他会试验我改出来的这个名字的。
防止列出用户组和系统进程
我在阿江ASP探针1.9中结合7i24的方法利用getobject("WINNT")获得了系统用户和系统进程的列表,这个列表可能会被黑客利用,我们应当隐藏起来,方法是:
【开始→程序→管理工具→服务】,找到Workstation,停止它,禁用它。
防止Serv-U权限提升
其实,注销了Shell组件之后,侵入者运行提升工具的可能性就很小了,但是prel等别的脚本语言也有shell能力,为防万一,还是设置一下为好。
用Ultraedit打开ServUDaemon.exe查找Ascii:LocalAdministrator,和#l@$ak#.lk;0@P,修改成等长度的其它字符就可以了,ServUAdmin.exe也一样处理。
另外注意设置Serv-U所在的文件夹的权限,不要让IIS匿名用户有读取的权限,否则人家下走你修改过的文件,照样可以分析出你的管理员名和密码。
利用ASP漏洞攻击的常见方法及防范
一般情况下,黑客总是瞄准论坛等程序,因为这些程序都有上传功能,他们很容易的就可以上传ASP木马,即使设置了权限,木马也可以控制当前站点的所有文件了。另外,有了木马就然后用木马上传提升工具来获得更高的权限,我们关闭shell组件的目的很大程度上就是为了防止攻击者运行提升工具。
如果论坛管理员关闭了上传功能,则黑客会想办法获得超管密码,比如,如果你用动网论坛并且数据库忘记了改名,人家就可以直接下载你的数据库了,然后距离找到论坛管理员密码就不远了。
作为管理员,我们首先要检查我们的ASP程序,做好必要的设置,防止网站被黑客进入。另外就是防止攻击者使用一个被黑的网站来控制整个服务器,因为如果你的服务器上还为朋友开了站点,你可能无法确定你的朋友会把他上传的论坛做好安全设置。这就用到了前面所说的那一大堆东西,做了那些权限设置和防提升之后,黑客就算是进入了一个站点,也无法破坏这个网站以外的东西。
后记
也许有安全高手或者破坏高手看了我的文章会嘲笑或者窃喜,但我想我的经验里毕竟还是存在很多正确的地方,有千千万万的比我知道的更少的人像我刚开始完全不懂的时候那样在渴求着这样一篇文章,所以我必须写,我不管别人怎么说我,我也不怕后世会有千千万万的人对我唾骂,我一个人承担下来,我也没有娘子需要交代的……
因为这其实只是抛砖引玉的做法,从别人的笑声中,我和我的读者们都可以学到更多有用的东西。
一、系统及程序
1、屏幕保护与电源
桌面右键--〉个性化--〉屏幕保护程序
屏幕保护程序 选择无
更改电源设置 选择高性能
选择关闭显示器的时间 关闭显示器 选 从不 保存修改
2、安装IIS
管理工具--〉服务器管理器--〉添加服务器角色--〉勾选 Web服务器(IIS)
勾选下列 角色服务
ASP
CGI(和PHP有关)
ISAPI扩展
ISAPI筛选器
在服务器端包含文件(用于支持SSI shtml)
也可以之后添加
服务器管理器--〉角色--〉web 服务器(IIS)--〉角色服务 点击 添加角色服务
如需安装SQL2005,则下列角色服务必须勾选
1. 常见的 HTTP 功能
静态内容
默认文档
目录浏览
HTTP 重定向
2. 应用程序开发
ASP.Net
.NER 扩展
ISAPI 扩展
ISAPI 筛选器
3. 安全性
Windows 身份验证
4. 管理工具 IIS6 管理兼容性
IIS 6 元数据库兼容性
IIS 6 WMI 兼容性
设置日志、输出缓存的目录
添加默认文档
index.asp index.php Default.asp 等
启用父路径
ASP 启用父路径 False 改为 True
增加IIS对MIME文件类型的支持
MIME类型
.rmvb application/vnd.rn-realmedia
.iso application/octet-stream
.rar application/octet-stream
.7z application/octet-stream
.mkv application/octet-stream
Win2008或IIS7的文件上传大小限制解决方案
默认情况下,IIS7的上传限制为200K。当上传文件小于30M时,可以通过如下方法设置:
在iis7中找到asp设置,在“asp”的“限制属性”中最后一行“最大请求主体限制”,修改该值为你所想要的,如2G(2000000000,单位为B)。
当上传文件要求大于30M时,继续如下修改:
1. 停止IIS7
2. 找到“C:\Windows\System32\inetsrv\config\schema\IIS_schema.xml”文件。
这个文件是只读的,即使用管理员权限也不能修改。要先修改文件的权限,然后去掉只读属性才可以。
1) 右键文件-属性-安全,选中目标用户,点击高级,修改文件所有者;
2) 确定后点击编辑,就可以修改当前用户的权限了,添加“写入”权限。至此,权限设置OK了。
3) 将文件的只读属性去掉。
用记事本打开该文件,找到“”,将“30000000”修改为你想要的值(如2000000000)保存。
将“C:\Windows\System32\inetsrv\config\schema\IIS_schema.xml”文件加上只读属性。
启动IIS7。本人上传120M视频文件通过。但是,win2008最大只能上传小于2G的文件。这个要注意。
3、配置php
把php安装包解压的一个目录下,C:\php
拷贝一个php.ini-development副本,把它重命名为php.ini。
配置php.ini 文件,搜索如下配置并修改相应的配置值:
extension_dir = "C:\php\ext"
; date.timezone = 改为 date.timezone = Asia/Shanghai
如果不改以上的date.timezone可能打开网页会提示500错误
组件
extension=php_mbstring.dll
extension=php_gd2.dll
extension=php_MySQL.dll
extension=php_mysqli.dll phpMyAdmin使用
PHP 5.3以上版本使用fastcgi模式,配置IIS 7需要在IIS添加一个处理程序映射
处理程序映射--〉添加一个模块处理程序:
*.php
FastCgiModule
C:\php\php-cgi.exe
PHP_vis_FastCGI
默认文档中添加index.php 为默认文档
PHP目录 Users 读取运行权限
php测试
?php
phpinfo();
?
新版本的Windows版本PHP,在出现错误时,会将详细的错误信息自动存储到Windows系统的TEMP临时目录,文件名为:php-errors.log。在Windows2003系统中路径一般是:C:\WINDOWS\Temp\php-errors.log。用记事本打开这个文件,就可以看到详细的php错误记录了。
HTTP 错误 500.0 – Internal Server Error
发生未知 FastCGI 错误
发生此错误的关键原因在于没有安装VC9运行库 即VISUAL C++ 2008 (installer自动带上了Visual C++ 2008)
Microsoft Visual C++ 2008 Redistributable Package (x86)下载地址:
;displaylang=zh-cn
Microsoft Visual C++ 2008 Redistributable Package (x64)下载地址:
;ProductID=23947d52-b2bc-4e88-8c51-e81dc2905b0d
如果安装VC9运行库仍出现上面错误,多数是因为php安装目录没有给IIS_IUSRS用户读取和执行权限造成的。
4、Mysql 5安装
二、系统安全配置
1、目录权限
除系统所在分区之外的所有分区都赋予Administrators和SYSTEM有完全控制权,之后再对其下的子目录作单独的目录权限
2、远程连接
我的电脑属性--〉远程设置--〉远程--〉只允许运行带网络超级身份验证的远程桌面的计算机连接
选择允许运行任意版本远程桌面的计算机连接(较不安全)。备注:方便多种版本Windows远程管理服务器。
windows server 2008的远程桌面连接,与2003相比,引入了网络级身份验证(NLA,network level authentication),XP SP3不支持这种网络级的身份验证,vista跟win7支持。
然而在XP系统中修改一下注册表,即可让XP SP3支持网络级身份验证。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
在右窗口中双击Security Pakeages,添加一项“tspkg”。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders
在右窗口中双击SecurityProviders,添加credssp.dll;请注意,在添加这项值时,一定要在原有的值后添加逗号后,别忘了要空一格(英文状态)。
然后将XP系统重启一下即可。再查看一下,即可发现XP系统已经支持网络级身份验证
3、修改远程访问服务端口
更改远程连接端口方法,可用windows自带的计算器将10进制转为16进制。更改3389端口为8208,重启生效!
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp]
"PortNumber"=dword:0002010
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp]
"PortNumber"=dword:00002010
1.在开始--运行菜单里,输入regedit,进入注册表编辑,按下面的路径进入修改端口的地方
2.HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
3.找到右侧的 "PortNumber",用十进制方式显示,默认为3389,改为(例如)6666端口
4.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp
5.找到右侧的 "PortNumber",用十进制方式显示,默认为3389,改为同上的端口
6.在控制面板--Windows 防火墙--高级设置--入站规则--新建规则
7.选择端口--协议和端口--TCP/特定本地端口:同上的端口
8.下一步,选择允许连接
9.下一步,选择公用
10.下一步,名称:远程桌面-新(TCP-In),描述:用于远程桌面服务的入站规则,以允许RDP通信。[TCP 同上的端口]
11.删除远程桌面(TCP-In)规则
12.重新启动计算机
4、配置本地连接
网络--〉属性--〉管理网络连接--〉本地连接
打开“本地连接”界面,选择“属性”,左键点击“Microsoft网络客户端”,再点击“卸载”,在弹出的对话框中“是”确认卸载。点击“Microsoft网络的文件和打印机共享”,再点击“卸载”,在弹出的对话框中选择“是”确认卸载。
解除Netbios和TCP/IP协议的绑定 139端口
打开“本地连接”界面,选择“属性”,在弹出的“属性”框中双击“Internet协议版本(TCP/IPV4)”,点击“属性”,再点击“高级”—“WINS”,选择“禁用TCP/IP上的NETBIOS”,点击“确认”并关闭本地连接属性。
禁止默认共享
点击“开始”—“运行”,输入“Regedit”,打开注册表编辑器,打开注册表项“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters”,在右边的窗口中新建Dword值,名称设为AutoShareServer,值设为“0”。
关闭 445端口
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters
新建 Dword(32位)名称设为SMBDeviceEnabled 值设为“0”
5、共享和发现
右键“网络” 属性 网络和共享中心 共享和发现
关闭
网络共享
文件共享
公用文件共享
打印机共享
显示我正在共享的所有文件和文件夹
显示这台计算机上所有共享的网络文件夹
6、用防火墙限制Ping
网上自己查吧,ping还是经常需要用到的
7、防火墙的设置
控制面板→Windows防火墙设置→更改设置→例外,勾选FTP、HTTP、远程桌面服务 核心网络
HTTPS用不到可以不勾
3306:Mysql
1433:Mssql
8、禁用不需要的和危险的服务,以下列出服务都需要禁用。
控制面板 管理工具 服务
Distributed linktracking client 用于局域网更新连接信息
PrintSpooler 打印服务
Remote Registry 远程修改注册表
Server 计算机通过网络的文件、打印、和命名管道共享
TCP/IP NetBIOS Helper 提供 TCP/IP (NetBT) 服务上的 NetBIOS 和网络上客户端的 NetBIOS 名称解析的支持
Workstation 泄漏系统用户名列表 与Terminal Services Configuration 关联
Computer Browser 维护网络计算机更新 默认已经禁用
Net Logon 域控制器通道管理 默认已经手动
Remote Procedure Call (RPC) Locator RpcNs*远程过程调用 (RPC) 默认已经手动
删除服务
sc delete MySql
9、安全设置--本地策略--安全选项
在运行中输入gpedit.msc回车,打开组策略编辑器,选择计算机配置--Windows设置--安全设置--本地策略--安全选项
交互式登陆:不显示最后的用户名 启用
网络访问:不允许SAM帐户的匿名枚举 启用 已经启用
网络访问:不允许SAM帐户和共享的匿名枚举 启用
网络访问:不允许储存网络身份验证的凭据 启用
网络访问:可匿名访问的共享 内容全部删除
网络访问:可匿名访问的命名管道 内容全部删除
网络访问:可远程访问的注册表路径内容全部删除
网络访问:可远程访问的注册表路径和子路径内容全部删除
帐户:重命名来宾帐户这里可以更改guest帐号
帐户:重命名系统管理员帐户 这里可以更改Administrator帐号
10、安全设置--账户策略--账户锁定策略
在运行中输入gpedit.msc回车,打开组策略编辑器,选择计算机配置--Windows设置--安全设置--账户策略--账户锁定策略,将账户锁定阈值设为“三次登陆无效”,“锁定时间为30分钟”,“复位锁定计数设为30分钟”。
11、本地安全设置
选择计算机配置--Windows设置--安全设置--本地策略--用户权限分配
关闭系统:只有Administrators组、其它全部删除。
通过终端服务拒绝登陆:加入Guests组、IUSR_*****、IWAM_*****、NETWORK SERVICE、SQLDebugger
通过终端服务允许登陆:加入Administrators、Remote Desktop Users组,其他全部删除
12、更改Administrator,guest账户,新建一无任何权限的假Administrator账户
管理工具→计算机管理→系统工具→本地用户和组→用户
新建一个Administrator帐户作为陷阱帐户,设置超长密码,并去掉所有用户组
更改描述:管理计算机(域)的内置帐户
13、密码策略
选择计算机配置--Windows设置--安全设置--密码策略
启动 密码必须符合复杂性要求
最短密码长度
14、禁用DCOM ("冲击波"病毒 RPC/DCOM 漏洞)
运行Dcomcnfg.exe。控制台根节点→组件服务→计算机→右键单击“我的电脑”→属性”→默认属性”选项卡→清除“在这台计算机上启用分布式 COM”复选框。
15、ASP漏洞
主要是卸载WScript.Shell 和 Shell.application 组件,是否删除看是否必要。
regsvr32/u C:\WINDOWS\System32\wshom.ocx
regsvr32/u C:\WINDOWS\system32\shell32.dll
删除可能权限不够
del C:\WINDOWS\System32\wshom.ocx
del C:\WINDOWS\system32\shell32.dll
如果确实要使用,或者也可以给它们改个名字。
WScript.Shell可以调用系统内核运行DOS基本命令
可以通过修改注册表,将此组件改名,来防止此类木马的危害。
HKEY_CLASSES_ROOT\WScript.Shell\及HKEY_CLASSES_ROOT\WScript.Shell.1\
改名为其它的名字,如:改为WScript.Shell_ChangeName 或 WScript.Shell.1_ChangeName
自己以后调用的时候使用这个就可以正常调用此组件了
也要将clsid值也改一下
HKEY_CLASSES_ROOT\WScript.Shell\CLSID\项目的值
HKEY_CLASSES_ROOT\WScript.Shell.1\CLSID\项目的值
也可以将其删除,来防止此类木马的危害。
Shell.Application可以调用系统内核运行DOS基本命令
可以通过修改注册表,将此组件改名,来防止此类木马的危害。
HKEY_CLASSES_ROOT\Shell.Application\
及
HKEY_CLASSES_ROOT\Shell.Application.1\
改名为其它的名字,如:改为Shell.Application_ChangeName 或 Shell.Application.1_ChangeName
自己以后调用的时候使用这个就可以正常调用此组件了
也要将clsid值也改一下
HKEY_CLASSES_ROOT\Shell.Application\CLSID\项目的值
HKEY_CLASSES_ROOT\Shell.Application\CLSID\项目的值
也可以将其删除,来防止此类木马的危害。
禁止Guest用户使用shell32.dll来防止调用此组件。
2000使用命令:cacls C:\WINNT\system32\shell32.dll /e /d guests
2003使用命令:cacls C:\WINDOWS\system32\shell32.dll /e /d guests
禁止使用FileSystemObject组件,FSO是使用率非常高的组件,要小心确定是否卸载。改名后调用就要改程序了,Set FSO = Server.CreateObject("Scripting.FileSystemObject")。
FileSystemObject可以对文件进行常规操作,可以通过修改注册表,将此组件改名,来防止此类木马的危害。
HKEY_CLASSES_ROOT\Scripting.FileSystemObject\
改名为其它的名字,如:改为 FileSystemObject_ChangeName
自己以后调用的时候使用这个就可以正常调用此组件了
也要将clsid值也改一下
HKEY_CLASSES_ROOT\Scripting.FileSystemObject\CLSID\项目的值
也可以将其删除,来防止此类木马的危害。
2000注销此组件命令:RegSrv32 /u C:\WINNT\SYSTEM\scrrun.dll
2003注销此组件命令:RegSrv32 /u C:\WINDOWS\SYSTEM\scrrun.dll
如何禁止Guest用户使用scrrun.dll来防止调用此组件?
使用这个命令:cacls C:\WINNT\system32\scrrun.dll /e /d guests
15、打开UAC
控制面板 用户账户 打开或关闭用户账户控制
16、程序权限
"net.exe","net1.exe","cmd.exe","t","netstat.exe","regedit.exe","at.exe","attrib.exe","cacls.exe","format点抗 ","c.exe"
或完全禁止上述命令的执行
gpedit.msc-〉用户配置-〉管理模板-〉系统
启用 阻止访问命令提示符 同时 也停用命令提示符脚本处理
启用 阻止访问注册表编辑工具
启用 不要运行指定的windows应用程序,添加下面的
at.exe attrib.exe c.exe cacls.exe cmd.exe format点抗 net.exe net1.exe netstat.exe regedit.exe t
17、Serv-u安全问题
安装程序尽量采用最新版本,避免采用默认安装目录,设置好serv-u目录所在的权限,设置一个复杂的管理员密码。修改serv-u的banner信息,设置被动模式端口范围(4001—4003)在本地服务器中设置中做好相关安全设置:包括检查匿名密码,禁用反超时调度,拦截“FTP bounce”攻击和FXP,对于在30秒内连接超过3次的用户拦截10分钟。域中的设置为:要求复杂密码,目录只使用小写字母,高级中设置取消允许使用MDTM命令更改文件的日期。
更改serv-u的启动用户:在系统中新建一个用户,设置一个复杂点的密码,不属于任何组。将servu的安装目录给予该用户完全控制权限。建立一个FTP根目录,需要给予这个用户该目录完全控制权限,因为所有的ftp用户上传,删除,更改文件都是继承了该用户的权限,否则无法操作文件。另外需要给该目录以上的上级目录给该用户的读取权限,否则会在连接的时候出现530 Not logged in, home directory does not exist。比如在测试的时候ftp根目录为d:soft,必须给d盘该用户的读取权限,为了安全取消d盘其他文件夹的继承权限。而一般的使用默认的system启动就没有这些问题,因为system一般都拥有这些权限的。
如果FTP不是必须每天都用,不如就关了吧,要用再打开。
MIME映射策略就是在网页中使用哪个应用程序(即插件),打开哪种文件。另外还有使用权限问题。比如对PDF文档,用“application/pdf “策略。这在动态网页中很常见。出现这种现象,有两种情形:一是使用一个应用程序去打开它不能打开的文档,比如用在标签中定义“DWG”文档用“application/pdf ”,就会出现无法打开的问题。二是文件扩展名符合要求,但文件内容(格式)不符合要求。你可以检查你浏览的网页源代码,获得出错信息。检查方法是:查看—源文件。寻找类似于“application/pdf “的字符串,就可以看到,要打开的文件是否与应用程序匹配。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流