1、WEB服务器的安全解读(windows) WEB服务器的安全主要有包含了三个方面,一方面是系统安全设置方面,另一方面是数据库及IIS的安全设置方面,三方面是网站设计程序方面的代码安全。 首先系统安设置方面: 一、首先系统安装方面,系统一般采用WINDWOS2003系统,2003系统IIS功能相比2000系统而,在安全性方面提高了很多,系统的漏洞也比较少,系统所在的分区必须采用NTFS分区系统,相比FAT32来说,NTFS的安全性方面高了很多,可以采用ACL访问控制列表来分配目录的访问权限。 二、 用户的设置 1、系统管理员账户最好少建,更改默认的管理员帐户名(Ad
2、ministrator)和描述,密码最好采用数字加大小写字母加特殊字符的方面,长度最好不少8位,设一个高强度的密码对于安全性来说会好很多。 2、新建一个名为Administrator的陷阱帐号,为其设置最小的权限,然后随便输入一个密码,密码的强度也是要高一些,的最好不低于8位的密码 3、将Guest账户禁用并更改名称和描述,然后输入一个复杂的密码 4、修改组策略中登录的次数限制,并设定锁定的时间 ,具体方法如下:在运行中输入gpedit.msc回车,打开组策略编辑器,选择计算机配置-Windows设置-安全设置-账户策略-账户锁定策略,将账户设为“五次无效登陆”,“锁定时间为30分钟”
3、复位锁定计数设为30分钟”。 5、在安全设置-本地策略-安全选项中将“不显示上次的用户名”设为启用。 6、在安全设置-本地策略-用户权利分配中将“从网络访问此计算机”中只保留Internet来宾账户、启动IIS进程账户。如果你使用了A还要保留Aspnet账户。 7、创建一个User账户,运行系统,如果要运行特权命令使用Runas命令。 三、网络服务安全管理 1、禁止C$、D$、ADMIN$一类的缺省共享 打开注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver \parameters,在右
4、边的窗口中新建Dword值,名称设为AutoShareServer值设为0。 2、解除NetBios 与TCP/IP协议的绑定 右击网上邻居-属性-右击本地连接-属性-双击Internet协议-高级-Wins-禁用 TCP/IP上的NETBIOS。 3、关闭不需要的服务,以下为建议选项: Computer Browser:维护网络计算机更新,禁用; Distributed File System: 局域网管理共享文件,不需要,禁用; Distributed linktracking client:用于局域网更新连接信息,不需要,禁用; Error reporting servi
5、ce:禁止发送错误报告; Microsoft Serch:提供快速的单词搜索,不需要,可禁用; NTLMSecuritysupportprovide:telnet服务和Microsoft Serch用的,不需要,禁用; PrintSpooler:如果没有打印机可禁用; Remote Registry:禁止远程修改注册表,禁用; Remote Desktop Help Session Manager:禁止远程协助,禁用。 4、禁用网络的文件和打印机共享服务 四、打开相应的审核策略,保证服务器的修改及变更信息以及服务器登录时间可查,在运行中输入gpedit.msc回车,打开
6、组策略编辑器,选择计算机配置-Windows设置-安全设置-审核策略,在这二者之间做出选择。 推荐的要审核的项目是: 登录事件 成功 失败 账户登录事件 成功 失败 系统事件 成功 失败 策略更改 成功 失败 对象访问 失败 目录服务访问 失败 特权使用 失败 五、杀毒软件及系统补丁更新 及时更新杀毒及系统的补丁包,保障服务器处于一种良的状态下,一般情况下,三天左右更新杀毒软件,15天左右更新系统补丁。微软会每个月发布新补丁,系统补丁理论上应该测试没有问题才能给服务器安装 六、相关其它设置 1、隐藏重要文件/目录 可以修改注册表实现完全隐藏: HKE
7、Y_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Current-Version\Explorer\Advanced\Folder\Hi-dden\SHOWALL,鼠标右击CheckedValue,选择修改,把数值由1改为0; 2、启动系统自带的Internet连接防火墙,在设置服务选项中勾选Web服务器; 3、防止SYN洪水攻击 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 新建DWORD值,名为SynAttackProtect,值为2; 4、禁止响应I
8、CMP路由通告报文 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\interface,新建DWORD值,名为PerformRouterDiscovery 值为0; 5、防止ICMP重定向报文的攻击 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 将EnableICMPRedirects 值设为0; 6、不支持IGMP协议 H KEY_LOCAL_MACHINE\SYSTEM\C
9、urrentControlSet\Services\Tcpip\Parameters 新建DWORD值,名为IGMPLevel 值为0; 7、禁用DCOM 运行Dcomcnfg.exe回车, 单击“控制台”根节点下的“组件服务”,打开“计算机”子文件夹,对于本地计算机,请右键单击“我的电脑”,然后选择“属性。选择“默认属性”选项卡,清除“在这台计算机上启用分布式 COM”复选框。 七、定期查看服务器中的日志logs文件,分析一切可疑事件。 第二、数据库及IIS方面 1、 删除不必要的虚拟目录,IIS安装完成后在wwwroot下默认生成了一些目录,包括IISHelp、IISAdm
10、in、IISSamples、MSADC等,这些目录都没有什么实际的作用,可直接删除。 2、 对每个网站的数据库采用不同的用户来访问,并给其相当的权限,保障数其中一个数据库并攻破这后其它据库的安全。 3、 修改数据库的登录方式为 仅WINDOS方式 4、 给SA用户一个超强的密码,数字、大小写字母及特殊字符组成,并保证他的长度在8位及以上。 5、 禁用IIS中不必须的服务,如FTP、SMTP服务 6、 仅启用必要的服务和 Web Service 扩展,推荐配置: 7、 将IIS目录&数据与系统磁盘分开,保存在专用磁盘空间内。 8、 在IIS管理器中删除必须之外的任何没有用到的映
11、射(保留asp等必要映射即可) 9、 在IIS中将HTTP404 Object Not Found出错页面通过URL重定向到一个定制HTM文件 10、 web站点权限设定(建议) 10、建议使用W3C扩充日志文件格式,每天记录客户IP地址,用户名,服务器端口,方法,URI字根,HTTP状态,用户代理,而且每天均要审查日志。(最好不要使用缺省的目录,建议更换一个记日志的路径,同时设置日志的访问权限,只允许管理员和system为Full Control)。 第三、程序方面 1、 涉及用户名与口令的程序最好封装在服务器端,尽量少的在ASP文件里出现,涉及到与数据库连接地用户名与口令
12、应给予最小的权限 2、 需要经过验证的ASP页面,可跟踪上一个页面的文件名,只有从上一页面转进来的会话才能读取这个页面 3、 防止ASP主页.inc文件泄露问题 4、 防止UE等编辑器生成some.asp.bak文件泄露问题 5、 利用ASP探针来检测网站代码的安全 6、 防止网站代码在的查询方面的漏洞,阻一些查询溢出来获取使用数据库的类型 7、 不要把数据库名写在程序中附录资料: Ehcache缓存配置 简介 Cache的配置很灵活,官方提供的Cache配置方式有好几种。你可以通过声明配置、在xml中配置、在程序里配置或者调用构造方法时传入不同的参数。 你可以
13、将Cache的配置从代码中剥离出来,也可以在使用运行时配置,所谓的运行时配置无非也就是在代码中配置。以下是运行时配置的好处: · 在同一个地方配置所有的Cache,这样很容易管理Cache的内存和磁盘消耗。 · 发布时可更改Cache配置。 · 可再安装阶段就检查出配置错误信息,而避免了运行时错误。 本文将会对ehcache.xml配置文件进行详细的阐述。在配置的时可以拷贝一个现有的ehcache.xml,如果没有请点击这里去下载。 ehcache-failsafe.xml 如果你调用了CacheManager默认构造方法去创建CacheManager的
14、实例,此方法会到classpath中找ehcache.xml文件,否则它会到类路径下找ehcache-failsafe.xml文件。而ehcache-failsafe.xml被包含在jar包中,所有它肯定能找的到。
ehcache-failsafe.xml提供了一个非常简单的默认配置,这样可以使用户在没有创建ehcache.xml的情况下使用Ehcache。
不过这样做Ehcache会提醒用户创建一个正确的Ehcache配置。
ehcache.xml片段:
15、 16、piryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU"
/>
ehcache.xml和其他配置文件
在Ehcache-1.6之前的版本,只支持ASCII编码的ehcache.xml配置文件。在Ehcach-1.6之后版本中,支持UTF8编码的ehcache.xml配置文件。因为向后兼容,所有采用ASCII编码的配置文件完全没有必要转换为UTF8。
一个CacheManager必须要有一个XML配置。由于磁盘路径或是监听端口,多个C 17、acheManager使用同一个配置文件时会出现错误。
下面是ehcache.xml具体实例以及配置指南
18、存使用的物理路径的,Ehcache磁盘缓存使用的文件后缀名是.data和.index。
19、eManager的事件监听类名有: adding a Cache和removing a Cache
20、on.
RMICacheManagerPeerProviderFactory"
properties="peerDiscovery=manual, rmiUrls=//server1:40000/sampleCache1|//server2:40000/sampleCache1| //server1:40000/sampleCache2|//server2:40000/sampleCache2"
propertySeparator="," />
· CacheManagerPeerListener配置
CacheManagerPeerListener配置是用 21、来监听集群中缓存消息的分发的。
23、
· timeToIdleSeconds:设置Element在失效前的允许闲置时间。仅当element不是永久有效时使用,可选属性,默认值是0,也就是可闲置时间无穷大。
· timeToLiveSeconds:设置Element在失效前允许存活时间。最大时间介于创建时间和失效时间之间。仅当element不是永久有效时使用,默认是0.,也就是element存活时间无穷大。
· diskPersistent:是否缓存虚拟机重启期数据。(这个虚拟机是指什么虚拟机一直没看明白是什么,有高人还希望能指点一二)。
· 24、 diskExpiryThreadIntervalSeconds:磁盘失效线程运行时间间隔,默认是120秒。
· diskSpoolBufferSizeMB:这个参数设置DiskStore(磁盘缓存)的缓存区大小。默认是30MB。每个Cache都应该有自己的一个缓冲区。
· memoryStoreEvictionPolicy:当达到maxElementsInMemory限制时,Ehcache将会根据指定的策略去清理内存。默认策略是LRU(最近最少使用)。你可以设置为FIFO(先进先出)或是LFU(较少使用)。这里比较遗憾,Ehcache并没有 25、提供一个用户定制策略的接口,仅仅支持三种指定策略,感觉做的不够理想。
· Cache Exception Handling配置
26、
27、diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU"
/>
· SampleCache1配置
简单配置,在ehcache.xml文件中有此配置,在使用Ehcache前最好将其删除掉,自己配置。
缓存名sampleCache1,内存中最多可缓存10000个Element,其中的element会在闲置5分钟或是存活10分钟之后失效。
超过10000element时,element将会输出到磁盘中,输出路径是java.io.tmpdir。
28、 name="sampleCache1"
maxElementsInMemory="10000"
maxElementsOnDisk="1000"
eternal="false"
overflowToDisk="true"
diskSpoolBufferSizeMB="20"
timeToIdleSeconds="300"
timeToLiveSeconds="600"
memoryStoreEvictionPolicy="LFU"
29、 />
· SampleCache2配置
Cache名为SampleCache2,内存中最多可以缓存1000个element,超出1000不能输出到磁盘中。缓存是永久有效的。
30、名为SampleCache3。可缓存到磁盘。磁盘缓存将会缓存虚拟机重启期的数据。磁盘缓存失效线程运行间隔时间是10分钟。
31、eadIntervalSeconds="1"
memoryStoreEvictionPolicy="LFU"
/>
· sampleDistributedCache1配置
Cache名为sampleDistributedCache1。
32、nds="100"
overflowToDisk="false">
33、tributedCache2配置
36、 timeToLiveSeconds="100"
overflowToDisk="false">






