以我们帮客户维护网站经验来看,多用户账户分离式比较安全的,一个网站有问题不会影响别的网站安全。大家可以看这篇文章(IIS 多站点 用户隔离视频教程)再接着看下面的文章。
服务器要考虑稳定、安全、性能修改默认站点为e:\webdefault\www,删掉c:/inetpub目录,删除iis不必要的映射
目录安排: 在E盘建一个web目录,每个站点的主域名为目录名建目录,再以每个站点的二级域名为目录名建目录做为网站根目录。
权限设置思路:每个站点的根目录为IIS来宾帐号(IUSR_XXXX)的只读权限,站内数据库目录、程序上传目录、数据库备份目录为IIS来宾帐号(IUSR_XXXX)修改权限。并对有修改权限的目录在IIS中把执行权限设置为:无。这样即使网站程序出现漏洞,入侵者能写入asp木马的目录没有脚本运行权限,有脚本运行权限的目录又无法修改和创建文件。另外access数据库没必要改扩展名为asp或asa,规矩点只用mdb后缀,然后参考下文不让下载就行了。要支持.net程序还要有Network Service的读、写、修改权限。
网站根目录权限是从e:\继承的,取消继承,添加来宾帐户只读,ftp帐户修改。
对一些asp程序的access数据库目录、上传目录等去掉继承,添加修改权限,然后在iis中查看目录属性,执行权限设置:无。
修改IIS的MIME映射增加支持flv格式视频播放支持.flvvideo/x-flv增加支持7z压缩格式下载支持.7zapplication/x-7z-compress删除access数据库mdb格式,不让下载.mdb文件,安全考虑。.mdbapplication/x-msaccess
Web站点权限设定(建议) 脚本源访问 不允许 读取 允许 写入 不允许 目录浏览 建议关闭 记录访问 建议关闭 网站开启日志记录时使用 索引资源 建议关闭 执行权限 纯脚本
在IIS管理器中删除必须之外的任何没有用到的映射(保留asa、asp、php、等必要映射即可)
启用父级路径
HTTP404 Not Found出错页面定制
如果选择向客户端发送下列文本错误消息,就屏蔽了asp程序出错信息。
启用默认文档
建议不使用索引,占磁盘空间和系统资源。 建议不使用日志,除非你不兴趣每天审查日志。 如果启用,最好不要使用缺省的目录,建议更换一个记日志的路径, 同时设置目录访问权限加上网络服务或者IIS工作组修改权限。
在扩展中启用ASP支持
编辑权限设置批处理
Windows 2003 服务器安全设置
一、先关闭不需要的端口
我比较小心,先关了端口。只开了3389、21、80、1433,有些人一直说什么默认的3389不安全,对此我不否认,但是利用的途径也只能一个一个的穷举爆破,你把帐号改了密码设置为十五六位,我估计他要破上好几年,哈哈!办法:本地连接--属性--Internet协议(TCP/IP)--高级--选项--TCP/IP筛选--属性--把勾打上,然后添加你需要的端口即可。PS一句:设置完端口需要重新启动!
当然大家也可以更改远程连接端口方法:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE \ SYSTEM\ Current ControlSet \ Control \ Terminal Server\WinStations\RDP-Tcp]
"PortNumber"=dword:00002683
保存为.REG文件双击即可!更改为9859,当然大家也可以换别的端口,直接打开以上注册表的地址,把值改为十进制的输入你想要的端口即可!重启生效
还有一点,在2003系统里,用TCP/IP筛选里的端口过滤功能,使用FTP服务器的时候,只开放21端口,在进行FTP传输的时候,FTP 特有的Port模式和Passive模式,在进行数据传输的时候,需要动态的打开高端口,所以在使用TCP/IP过滤的情况下,经常会出现连接上后无法列出目录和数据传输的问题。所以在2003系统上增加的Windows连接防火墙能很好的解决这个问题,不推荐使用网卡的TCP/IP过滤功能。
二.关闭不需要的服务打开相应的审核策略
我关闭了以下的服务
Computer Browser 维护网络上计算机的最新列表以及提供这个列表
Task scheduler 允许程序在指定时间运行
Messenger 传输客户端和服务器之间的 NET SEND 和 警报器服务消息
Distributed File System: 局域网管理共享文件,不需要禁用
Distributed linktracking client:用于局域网更新连接信息,不需要禁用
Error reporting service:禁止发送错误报告
Microsoft Serch:提供快速的单词搜索,不需要可禁用
NTLMSecuritysupportprovide:telnet服务和Microsoft Serch用的,不需要禁用
PrintSpooler:如果没有打印机可禁用
Remote Registry:禁止远程修改注册表
Remote Desktop Help Session Manager:禁止远程协助
Workstation关闭的话远程NET命令列不出用户组
把不必要的服务都禁止掉,尽管这些不一定能被攻击者利用得上,但是按照安全规则和标准上来说,多余的东西就没必要开启,减少一份隐患。
在"网络连接"里,把不需要的协议和服务都删掉,这里只安装了基本的Internet协议(TCP/IP),由于要控制带宽流量服务,额外安装了Qos数据包计划程序。在高级tcp/ip设置里--"NetBIOS"设置"禁用tcp/IP上的NetBIOS(S)"。在高级选项里,使用"Internet连接防火墙",这是windows 2003 自带的防火墙,在2000系统里没有的功能,虽然没什么功能,但可以屏蔽端口,这样已经基本达到了一个IPSec的功能。
在运行中输入gpedit.msc回车,打开组策略编辑器,选择计算机配置-Windows设置-安全设置-审核策略在创建审核项目时需要注意的是如果审核的项目太多,生成的事件也就越多,那么要想发现严重的事件也越难当然如果审核的太少也会影响你发现严重的事件,你需要根据情况在这二者之间做出选择。
推荐的要审核的项目是:
登录事件
账户登录事件
系统事件
策略更改
对象访问
目录服务访问
特权使用
三、关闭默认共享的空连接
地球人都知道,我就不多说了!
四、磁盘权限设置
C盘只给administrators和system权限,其他的权限不给,其他的盘也可以这样设置,这里给的system权限也不一定需要给,只是由于某些第三方应用程序是以服务形式启动的,需要加上这个用户,否则造成启动不了。
Windows目录要加上给users的默认权限,否则ASP和ASPX等应用程序就无法运行。以前有朋友单独设置Instsrv和temp等目录权限,其实没有这个必要的。
另外在c:/Documents and Settings/这里相当重要,后面的目录里的权限根本不会继承从前的设置,如果仅仅只是设置了C盘给administrators权限,而在All Users/Application Data目录下会出现everyone用户有完全控制权限,这样入侵这可以跳转到这个目录,写入脚本或只文件,再结合其他漏洞来提升权限;譬如利用serv-u的本地溢出提升权限,或系统遗漏有补丁,数据库的弱点,甚至社会工程学等等N多方法,从前不是有牛人发飑说:"只要给我一个webshell,我就能拿到system",这也的确是有可能的。在用做web/ftp服务器的系统里,建议是将这些目录都设置的锁死。其他每个盘的目录都按照这样设置,每个盘都只给adinistrators权限。
另外,还将:
net.exe NET命令
cmd.exe CMD 懂电脑的都知道咯~
tftp.exe
netstat.exe
regedit.exe 注册表啦大家都知道
at.exe
attrib.exe
cacls.exe ACL用户组权限设置,此命令可以在NTFS下设置任何文件夹的任何权限!偶入侵的时候没少用这个....(:
format.exe 不说了,大家都知道是做嘛的
大家都知道ASP木马吧,有个CMD运行这个的,这些如果都可以在CMD下运行..55,,估计别的没啥,format下估计就哭料~~~(:这些文件都设置只允许administrator访问。
五、防火墙、杀毒软件的安装
关于这个东西的安装其实我也说不来,反正安装什么的都有,建议使用卡巴,卖咖啡。用系统自带的防火墙,这个我不专业,不说了!大家凑合!
六、SQL2000 SERV-U FTP安全设置
SQL安全方面
1、System Administrators 角色最好不要超过两个
2、如果是在本机最好将身份验证配置为Win登陆
3、不要使用Sa账户,为其配置一个超级复杂的密码
或修改sa用户名:
update sysxlogins set name='xxxx' where sid=0x01
update sysxlogins set sid=0xE765555BD44F054F89CD0076A06EA823 where name='xxxx'
4、删除以下的扩展存储过程格式为:
use master
sp_dropextendedproc '扩展存储过程名'
xp_cmdshell:是进入操作系统的最佳捷径,删除
访问注册表的存储过程,删除
Xp_regaddmultistringXp_regdeletekeyXp_regdeletevalueXp_regenumvalues
Xp_regread Xp_regwrite Xp_regremovemultistring
OLE自动存储过程,不需要,删除
Sp_OACreate Sp_OADestroySp_OAGetErrorInfoSp_OAGetProperty
Sp_OAMethodSp_OASetPropertySp_OAStop
5、隐藏 SQL Server、更改默认的1433端口。
右击实例选属性-常规-网络配置中选择TCP/IP协议的属性,选择隐藏 SQL Server 实例,并改原默认的1433端口。
6.为数据库建立一个新的角色,禁止改角色对系统表的的select等权限,防止sql注入时利用系统表。
serv-u的几点常规安全需要设置下:
选中"Block "FTP_bounce"attack and FXP"。什么是FXP呢?通常,当使用FTP协议进行文件传输时,客户端首先向FTP服务器发出一个"PORT"命令,该命令中包含此用户的IP地址和将被用来进行数据传输的端口号,服务器收到后,利用命令所提供的用户地址信息建立与用户的连接。大多数情况下,上述过程不会出现任何问题,但当客户端是一名恶意用户时,可能会通过在PORT命令中加入特定的地址信息,使FTP服务器与其它非客户端的机器建立连接。虽然这名恶意用户可能本身无权直接访问某一特定机器,但是如果FTP服务器有权访问该机器的话,那么恶意用户就可以通过FTP服务器作为中介,仍然能够最终实现与目标服务器的连接。这就是FXP,也称跨服务器攻击。选中后就可以防止发生此种情况。
七、IIS安全设置
IIS的安全:
1、不使用默认的Web站点,如果使用也要将IIS目录与系统磁盘分开。
2、删除IIS默认创建的Inetpub目录(在安装系统的盘上)。
3、删除系统盘下的虚拟目录,如:_vti_bin、IISSamples、Scripts、IIShelp、IISAdmin、IIShelp、MSADC。
4、删除不必要的IIS扩展名映射。
右键单击“默认Web站点→属性→主目录→配置”,打开应用程序窗口,去掉不必要的应用程序映射。主要为.shtml、.shtm、 .stm。
5、更改IIS日志的路径
右键单击“默认Web站点→属性-网站-在启用日志记录下点击属性
6、如果使用的是2000可以使用iislockdown来保护IIS,在2003运行的IE6.0的版本不需要。
八、其它
1、系统升级、打操作系统补丁,尤其是IIS 6.0补丁、SQL SP3a补丁,甚至IE 6.0补丁也要打。同时及时跟踪最新漏洞补丁;
2、停掉Guest 帐号、并给guest 加一个异常复杂的密码,把Administrator改名或伪装!
3、隐藏重要文件/目录
可以修改注册表实现完全隐藏:“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\ Current-Version\Explorer\Advanced\Folder\Hi-dden\SHOWALL”,鼠标右击 “CheckedValue”,选择修改,把数值由1改为0。
4、启动系统自带的Internet连接防火墙,在设置服务选项中勾选Web服务器。
5、防止SYN洪水攻击。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
新建DWORD值,名为SynAttackProtect,值为2
6. 禁止响应ICMP路由通告报文
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet\ Services\Tcpip\Parameters\Interfaces\interface
新建DWORD值,名为PerformRouterDiscovery 值为0。
7. 防止ICMP重定向报文的攻击
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
将EnableICMPRedirects 值设为0
8. 不支持IGMP协议
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
新建DWORD值,名为IGMPLevel 值为0。
9、禁用DCOM:
运行中输入Dcomcnfg.exe。回车,单击“控制台根节点”下的“组件服务”。打开“计算机”子文件夹。
服务器安全设置
建议设置
极限测试
在”网络连接”里,把不需要的协议和服务都删掉,这里只安装了基本的Internet协议(TCP/IP),由于要控制带宽流量服务,额外安装了Qos数据包计划程序。
在高级tcp/ip设置里--"NetBIOS"设置"禁用tcp/IP上的NetBIOS(S)"。
在2003系统里,不推荐用TCP/IP筛选里的端口过滤功能,譬如在使用FTP服务器的时候,如果仅仅只开放21端口,由于FTP协议的特殊性,在进行FTP传输的时候,由于FTP 特有的Port模式和Passive模式,在进行数据传输的时候,需要动态的打开高端口,所以在使用TCP/IP过滤的情况下,经常会出现连接上后无法列出目录和数据传输的问题。所以在2003系统上增加的windows连接防火墙能很好的解决这个问题,所以都不推荐使用网卡的TCP/IP过滤功能。
在高级选项里,使用”Internet连接防火墙”,这是windows 2003 自带的防火墙,在2000系统里没有的功能,虽然没什么功能,但可以屏蔽端口,这样已经基本达到了一个IPSec的功能。
放开使用到的端口,如果修改了远程桌面的端口,别忘记添加上。如果有邮件服务器的话还要放开SMTP服务器端口25 POP3服务器端口110。对外提供服务的端口都要加上,不然无法访问服务。
修改ICMP设置,建议全部启用,便于网络测试ping等
权限的设置所有磁盘分区的根目录只给Administrators组和SYSTEM 的完全控制权限,注意系统盘不要替换子目录的权限。windows目录和Program Files目录等一些目录并没有继承父目录权限,这些目录还需要其它一些权限才能运行。 C:\Documents and Settings 目录只给 Administrators 组和 SYSTEM 的完全控制权限,并应用到子对象的项目替代所有子对象的权限项目。 系统盘\Documents and Settings\All Users 目录只给 Administrators 组和 SYSTEM 的完全控制权限。这里给的system权限也不一定需要给,只是由于某些第三方应用程序是以服务形式启动的,需要加上这个用户,否则造成启动不了。
c:/Documents and Settings/这里要注意,后面的目录里的权限根本不会继承从前的设置,如果仅仅只是设置了C盘给administrators权限,而在All Users/Application Data目录下会 出现everyone用户有完全控制权限,这样入侵这可以跳转到这个目录,写入脚本或只文件,再结合其他漏洞来提升权限;譬如利用serv-u的本地溢出提升权限,或系统遗漏有补丁,数据库的弱点等等。在用做web/ftp服务器的系统里,建议设置。
Windows目录要加上给users的默认权限,否则ASP和ASPX等应用程序就无法运行。如果修改的话,不要应用到子对象的项目替代所有子对象的权限项目。系统目录权限拿不准的话就不要动了,一般做好根目录和Documents and Settings就比较安全了,asp程序访问不了根目录就访问不了子目录。
另外Documents and Settings目录增加Users用户组的读取运行权限,可以避免出现LoadUserProfile失败,需要注意的是一但有users组读取权限,asp木马就能访问这个目录。为了安全需要接受一些错误日志。(2009年1月13日备注:貌似是没有system完全就出现LoadUserProfile,与users无关。)
系统盘下 cacls.exe; cmd.exe; net.exe; net1.exe; ftp.exe; tftp.exe; telnet.exe; netstat.exe; regedit.exe; at.exe; attrib.exe; format.com 文件只给 Administrators 组和SYSTEM 的完全控制权限。可查找一下统一设置,或者编辑一份批处理,使用cacls命令处理。
【管理工具-本地安全设置 secpol.msc】
帐户策略→帐户锁定策略
用户锁定阈值 3次无效登录
置复位帐户锁定计数器 30分钟之后
帐户锁定时间 30分钟
本地策略→审核策略
审核策略更改 成功 失败
审核登录事件 成功 失败
审核对象访问 失败
审核过程跟踪 无审核
审核目录服务访问 失败
审核特权使用 失败
审核系统事件 成功 失败
审核账户登录事件 成功 失败
审核账户管理 成功 失败
本地策略→用户权限分配
关闭系统:只有Administrators组、其它全部删除。
通过终端服务允许登陆:只加入Administrators,Remote Desktop Users组,其他全部删除
本地策略→安全选项
交互式登陆:不显示上次的用户名 启用
网络访问:不允许SAM帐户和共享的匿名枚举 启用
网络访问:不允许为网络身份验证储存凭证 启用
网络访问:可匿名访问的共享 全部删除
网络访问:可匿名访问的命 全部删除
网络访问:可远程访问的注册表路径 全部删除
网络访问:可远程访问的注册表路径和子路径 全部删除
帐户:重命名来宾帐户 重命名一个帐户
帐户:重命名系统管理员帐户 重命名一个帐户
【禁用不必要的服务 开始-运行-services.msc】 Computer Browser :维护网络上计算机的最新列表以及提供这个列表 Distributed File System :局域网管理共享文件,不需要可禁用 Distributed Link Tracking Client :用于局域网更新连接信息,不需要可禁用 Error Reporting Service :禁止发送错误报告 Messenger :传输客户端和服务器之间的 NET SEND 和 警报器服务消息 Microsoft Serch :提供快速的单词搜索,不需要可禁用 NT LM Security Support Provider :telnet服务和Microsoft Serch用的,不需要可禁用 Print Spooler :如果没有打印机可禁用 Remote Desktop Help Session Manager :禁止远程协助 Remote Registry:禁止远程修改注册表 Server :支持此计算机通过网络的文件、打印、和命名管道共享 Task scheduler :允许程序在指定时间运行 TCP/IPNetBIOS Helper :提供 TCP/IP 服务上的 NetBIOS 和网络上客户端的 NetBIOS 名称解析的支持而使用户能够共享文 Workstation :关闭的话远程NET命令列不出用户组 以上是在Windows Server 2003 系统上面默认启动的服务中禁用的,默认禁用的服务如没特别需要的话不要启动。
【卸载最不安全的组件】 最简单的办法是直接卸载后删除相应的程序文件。 将下面的代码保存为一个.BAT文件,( 以下以win2003为例系统文件夹应该是 C:\WINDOWS\ ) regsvr32 /u C:\WINDOWS\system32\wshom.ocx regsvr32 /u C:\windows\system32\wshext.dll regsvr32 /u C:\WINDOWS\system32\shell32.dll 如果有可能删除这些组件 del C:\WINDOWS\system32\shell32.dll del C:\WINDOWS\system32\wshom.ocx del C:\windows\system32\wshext.dll 然后运行一下,WScript.Shell, Shell.application, WScript.Network就会被卸载了。 去http://www.ajiang.net/products/aspcheck/下载阿江的探针查看相关安全设置情况。 可能会提示无法删除文件,不用管它,重启一下服务器,你会发现这三个都提示“×安全”了。 恢复的话,去掉/u就行了
FSO(FileSystemObject)是微软ASP的一个对文件操作的控件,该控件可以对服务器进行读取、新建、修改、删除目录以及文件的操作。是ASP编程中非常有用的一个控件。但是因为权限控制的问题,很多虚拟主机服务器的FSO反而成为这台服务器的一个公开的后门,因为客户可以在自己的ASP网页里面直接就对该控件编程,从而控制该服务器甚至删除服务器上的文件。因此不少业界的虚拟主机提供商都干脆关掉了这个控件,让客户少了很多灵活性。我们公司的W2K虚拟主机服务器具有高安全性,可以让客户在自己的网站空间中任意使用却有没有办法危害系统或者妨碍其他客户网站的正常运行。
FSO的添加 1、首先在系统盘中查找scrrun.dll,如果存在这个文件,请跳到第三步,如果没有,请执行第二步。 2、在安装文件目录i386中找到scrrun.dl_,用winrar解压缩后scrrun.dll复制到系统盘:\windows\system32\目录。 3、运行regsvr32 scrrun.dll即可。 FSO删除 regsvr32 /u scrrun.dll 建议保留 卸载stream对象 在cmd下运行: regsvr32 /s /u "C:\Program Files\Common Files\System\ado\msado15.dll" 恢复的话,去掉/u就行了,建议保留
修改远程桌面连接的3389端口为9874,十六进制2692等于十进制9874,根据需要修改成合适的端口。将下面的内容保存为.reg文件,导入注册表即可。(非必需)
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp]
"PortNumber"=dword:00002692
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp]
"PortNumber"=dword:00002692
服务器杀毒软件这里介绍MCAFEE 8.5i 中文企业版 http://www./softs/17178.html
因为这个版本对于国内的许多恶意代码和木马都能够及时的更新. 比如已经能够检测到海阳顶端2006 而且能够杀除IMAIL等SMTP软件使用的队列中MIME编码的病毒文件而很多人喜欢安装诺顿企业版.而诺顿企业版,对于WEBSHELL.基本都是没有反应的. 而且无法对于MIME编码的文件进行杀毒.
在MCAFEE中. 我们还能够加入规则.阻止在windows目录建立和修改EXE.DLL文件等我们在软件中加入对WEB目录的杀毒计划. 每天执行一次并且打开实时监控.
注意:安装一些杀毒软件会影响ASP地执行,是因为禁用了jscript.dll和vbscript.dll组件在dos方式下运行 regsvr32 jscript.dll, regsvr32 vbscript.dll解除限制即可比如出现
请求的资源在使用中
regsvr32 %windir%\system32\jscript.dll
regsvr32 %windir%\system32\vbscript.dll
关掉杀毒软件里的script scan
有关服务器常用的一些软件可以到s.查看,每天有几百人使用。
该页无法显示
您试图从目录中执行 CGI、ISAPI 或其他可执行程序,但该目录不允许执行程序。
请尝试以下操作:
* 如果您认为该目录应该允许执行访问权限,请与网站管理员联系。
HTTP 错误 403.1 - 禁止访问:执行访问被拒绝。
Internet 信息服务 (IIS)
技术信息(为技术支持人员提供)
* 转到 Microsoft 产品支持服务并搜索包括“HTTP”和“403”的标题。
* 打开“IIS 帮助”(可在 IIS 管理器 (inetmgr) 中访问),然后搜索标题为“配置 ISAPI 扩展”、“配置 CGI 应用程序”、“使用网站权限保护站点”和“关于自定义错误消息”的主题。
* 在 IIS 软件开发工具包 (SDK) 或 MSDN Online Library 中,搜索标题为“Developing ISAPI Extensions”、“ISAPI and CGI”和“Debugging ISAPI Extensions and Filters”的主题。
以下是解决的方法:
单击操作系统的开始→程序→管理工具→Interneter服务器管理,在IIS中选择您的站点然后右键→属性,在虚拟目录选项中,查看“执行权限”是否设置为“无”,这里改成“纯脚本”保存即可。
如下图:
如果还不成,那么,在点击上图中的“创建”按钮,创建一个应用程序名称,这样就可以了!
通过上述两步的操作,就没有问题了,我是这样来解决的!