道。道。道

安全特性不等于安全的特性

   :: 首页 :: 联系 :: 聚合  :: 管理

常用链接

搜索

  •  

最新评论

  系统的安装
1、不要选择从网络上安装
虽然微软支持在线安装,但这绝对不安全。在系统未全部安装完之前不要连入网络,特别是Internet!甚至不要把一切硬件都连接好来安装。因为Windows 2000安装时,在输入用户管理员账号“Administrator”的密码后,系统会建立一个“ADMIN”的共享账号,但是并没有用刚输入的密码来保护它,这种情况一直会持续到计算机再次启动。在此期间,任何人都可以通过“ADMIN”进入系统;同时,安装完成,各种服务会马上自动运行,而这时的服务器还到处是漏洞,非常容易从外部侵入。
2、要选择NTFS格式来分区
  最好所有的分区都是NTFS格式,因为NTFS格式的分区在安全性方面更加有保障。就算其他分区采用别的格式(如FAT32),但至少系统所在的分区中应是NTFS格式。
另外,应用程序不要和系统放在同一个分区中,以免攻击者利用应用程序的漏洞(如微软的IIS的漏洞)导致系统文件的泄漏,甚至让入侵者远程获取管理员权限。
3、系统版本的选择
版本的选择:WIN2000有各种语言的版本,对于我们来说,可以选择英文版或简体中文版,我强烈建议:在语言不成为障碍的情况下,请一定使用英文版。要知道,微软的产品是以Bug &
Patch而著称的,中文版的Bug远远多于英文版,而补丁一般还会迟至少半个月(也就是说一般微软公布了漏洞后你的机子还会有半个月处于无保护状况)
  4、组件的定制:
win2000在默认情况下会安装一些常用的组件,但是正是这个默认安装是很危险的,你应该确切的知道你需要哪些服务,而且仅仅安装你确实需要的服务,根据安全原则,最少的服务+最小的权限=最大的安全。典型的WEB服务器需要的最小组件选择是:只安装IIS的Com Files,IIS Snap-In,WWW Server组件。如果你确实需要安装其他组件,请慎重,特别是:Indexing Service, FrontPage 2000 Server Extensions, Internet Service Manager (HTML)这几个危险服务。
5、分区和逻辑盘的分配
建议最少建立两个分区,一个系统分区,一个应用程序分区,这是因为,微软的IIS经常会有泄漏源码/溢出的漏洞,如果把系统和IIS放在同一个驱动器会导致系统文件的泄漏甚至入侵者远程获取ADMIN。推荐的安全配置是建立三个逻辑驱动器,第一个大于2G,用来装系统和重要的日志文件,第二个放IIS,第三个放FTP,这样无论IIS或FTP出了安全漏洞都不会直接影响到系统目录和系统文件。要知道,IIS和FTP是对外服务的,比较容易出问题。而把IIS和FTP分开主要是为了防止入侵者上传程序并从IIS中运行。(这个可能会导致程序开发人员和编辑的苦恼,管他呢,反正你是管理员J)
6、安装杀毒软件。
杀毒软件不仅能杀掉一些著名的病毒,还能查杀大量木马和后门程序,因此要注意经常运行程序并升级病毒库。 7、安装防火墙。
8、安装系统补丁。
到微软网站下载最新的补丁程序:
经常访问微软和一些安全站点,下载最新的Service Pack和漏洞补丁,是保障服务器长久安全的惟一方法。
9、安装顺序的选择
首先,何时接入网络:Win2000在安装时的ADMIN$的共享的漏洞;同时,只要安装一完成,各种服务就会自动运行,而这时的服务器是满身漏洞,非常容易进入的,因此,在完全安装并配置好win2000 SERVER之前,一定不要把主机接入网络。
其次,补丁的安装:补丁的安装应该在所有应用程序安装完之后,因为补丁程序往往要替换/修改某些系统文件,如果先安装补丁再安装应用程序有可能导致补丁不能起到应有的效果,例如:IIS的HotFix就要求每次更改IIS的配置都需要安装。
系统的安全设置
1、用户安全设置
用户帐号检查,停止不需要的帐号,建议更改默认的帐号名。
1)、禁用Guest账号
  在计算机管理的用户里面把Guest账号禁用。为了保险起见,最好给Guest加一个复杂的密码。
2)、限制不必要的用户
  去掉所有的Duplicate User用户、测试用户、共享用户等等。用户组策略设置相应权限,并且经常检查系统的用户,删除已经不再使用的用户。
3)、创建两个管理员账号
  创建一个一般权限用户用来收信以及处理一些日常事物,另一个拥有Administrators权限的用户只在需要的时候使用。
4)、把系统Administrator账号改名
  大家都知道,Windows 2000的Administrator用户是不能被停用的,这意味着别人可以一遍又一遍地尝试这个用户的密码。尽量把它伪装成普通用户,比如改成Guesycludx。
5)、创建一个陷阱用户
  什么是陷阱用户?即创建一个名为“Administrator”的本地用户,把它的权限设置成最低,什么事也干不了的那种,并且加上一个超过10位的超级复杂密码。这样可以让想入侵的人慢慢忙一段时间。
6)、把共享文件的权限从Everyone组改成授权用户
  不要把共享文件的用户设置成“Everyone”组,包括打印共享,默认的属性就是“Everyone”组的。
7)、开启用户策略 (不建议)
  使用用户策略,分别设置复位用户锁定计数器时间为20分钟,用户锁定时间为20分钟,用户锁定阈值为3次。
8)、不让系统显示上次登录的用户名 (可选)
打开注册表编辑器并找到注册表项HKLMSoftwareMicrosoftWindowsTCurrentVersionWinlogonDont-DisplayLastUserName,把键值改成1
9)、系统账号/共享列表
Win2000的默认安装允许任何用户通过空用户得到系统所有账号/共享列表,这个本来是为了方便局域网用户共享文件的,但是一个远程用户也可以得到你的用户列表并使用暴力法破解用户密码。可以通过更改注册表Local_Machine\System\CurrentControlSet\Control\LSA-RestrictAnonymous = 1来禁止139空连接,还可以在win2000的本地安全策略(如果是域服务器就是在域服务器安全和域安全策略中)就有这样的选项RestrictAnonymous(匿名连接的额外限制),这个选项有三个值: 0:None. Rely on default permissions(无,取决于默认的权限) 1:Do not allow enumeration of SAM accounts and shares(不允许枚举SAM帐号和共享) 2:No access without explicit anonymous permissions(没有显式匿名权限就不允许访问) 0这个值是系统默认的,什么限制都没有,远程用户可以知道你机器上所有的账号、组信息、共享目录、网络传输列表(NetServerTransportEnum等等,对服务器来说这样的设置非常危险。 1这个值是只允许非NULL用户存取SAM账号信息和共享信息。 2这个值是在win2000中才支持的,如果不想有任何共享,就设为2。一般推荐设为1。
2、 口令安全设置
1)、使用安全密码
  要注意密码的复杂性,还要记住经常改密码。
2)、开启密码策略
注意应用密码策略,如启用密码复杂性要求,设置密码长度最小值为8位,设置强制密码历史为5次,时间为42天。
3、 系统安全设置
1)、利用Windows 2000的安全配置工具来配置安全策略
微软提供了一套基于MMC(管理控制台)安全配置和分析工具,利用它们你可以很方便地配置你的服务器以满足你的要求。具体内容请参考微软主页:http://www.microsoft.com/windows2000/techinfo/
howitworks/security/sctoolset.asp
2)、安全日志:Win2000的默认安装是不开任何安全审核的!可以到本地安全策略
->审核策略中打开相应的审核,推荐的审核是:
账户管理 成功 失败
登录事件 成功 失败
对象访问 失败
策略更改 成功 失败
特权使用 失败
系统事件 成功 失败
目录服务访问 失败
账户登录事件 成功 失败
(审核项目少的缺点是万一你想看发现没有记录那就一点都没辙;审核项目太多不仅会占用系统资源而且会导致你根本没空去看,这样就失去了审核的意义。)
与之相关的是:
在账户策略->密码策略中设定:
密码复杂性要求 启用
密码长度最小值 8位
强制密码历史 5次
最长存留期 42天
在账户策略->账户锁定策略中设定:
账户锁定 5次错误登录
锁定时间 20分钟
复位锁定计数 20分钟
同样,Terminal Service的安全日志默认也是不开的,我们可以在Terminal Service Configration(远程服务配置)-权限-高级中配置安全审核,一般来说只要记录登录、注销事件就可以了。
3)、目录和文件权限:
为了控制好服务器上用户的权限,同时也为了预防以后可能的入侵和溢出,我们还必须非常小心地设置目录和文件的访问权限,NT的访问权限分为:读取、写入、读取及执行、修改、列目录、完全控制。在默认的情况下,大多数的文件夹对所有用户(Everyone这个组)是完全敞开的(Full Control),你需要根据应用的需要进行权限重设。
在进行权限控制时,请记住以下几个原则:
1>限是累计的:如果一个用户同时属于两个组,那么他就有了这两个组所允许的所有权限;
2>拒绝的权限要比允许的权限高(拒绝策略会先执行)如果一个用户属于一个被拒绝访问某个资源的组,那么不管其他的权限设置给他开放了多少权限,他也一定不能访问这个资源。所以请非常小心地使用拒绝,任何一个不当的拒绝都有可能造成系统无法正常运行;
3>文件权限比文件夹权限高
4>利用用户组来进行权限控制是一个成熟的系统管理员必须具有的优良习惯之一;
5>仅给用户真正需要的权限,权限的最小化原则是安全的重要保障;
4)、禁止建立空连接(IPC$)
默认情况下,任何用户都可通过空连接连上服务器,进而枚举出账号,猜测密码。我们可以通过修改注册表来禁止建立空连接:即把“ Local_Machine\System\CurrentControlSet\Control\LSA-RestrictAnonymous” 的值改成“1”即可。如果使用“2”可能会造成你的一些服务无法启动,如SQL Server
此外,安全和应用在很多时候是矛盾的。因此,你需要在其中找到平衡点,如果安全原则妨碍了系统应用,那么这个安全原则也不是一个好的原则
5)、禁止管理共享
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet
\Services\LanmanServer\Parameters项
对于服务器,添加键值“AutoShareServer”,类型为“REG_DWORD”,值为“0”。
对于客户机,添加键值“AutoShareWks”,类型为“REG_DWORD”,值为“0”。
(关闭server服务)
6)、还有一个就是139端口,139端口是NetBIOS Session端口,用来文件和打印共享,注意的是运行samba的unix机器也开放了139端口,功能一样。以前流光2000用来判断对方主机类型不太准确,估计就是139端口开放既认为是NT机,现在好了。
关闭139口听方法是在“网络和拨号连接”中“本地连接”中选取“Internet协议(TCP/IP)”属性,进入“高级TCP/IP设置”“WINS设置”里面有一项“禁用TCP/IP的NETBIOS”,打勾就关闭了139端口。
对于个人用户来说,可以在各项服务属性设置中设为“禁用”,以免下次重启服务也重新启动,端口也开放了
7)、使用组策略,IP策略

------------------------
8)、防范SYN攻击
使用SYN淹没攻击保护
相关的值项在
HKLM\SYSTEM\CurrentControlSet\Service\Tcpip\Parameters下。
1) DWORD:SynAttackProtect:定义了是否允许SYN淹没攻击保护,值1表示允许起用WIN2000的SYN淹没攻击保护。
2) DWORD:TcpMaxConnectResponseRetransmissions:定义了对于连接请求回应包的重发次数。值为1,则SYN淹没攻击不会有效果,但是这样会造成连接请求失败几率的增高。SYN淹没攻击保护只有在该值>=2时才会被启用,默认值为3。
(上边两个值定义是否允许SYN淹没攻击保护,下面三个则定义了激活SYN淹没攻击保护的条件,满足其中之一,则系统自动激活SYN淹没攻击保护。)
3) DWORD:TcpMaxHalfOpen:定义能够处于SYN_RECEIVED状态的TCP连接的数目。默认值100。
4) TcpMaxHalfOpenRetried:定义在重新发送连接请求后,仍然处于SYN_RECEIVED状态的TCP连接的数目。默认值80。
5) TcpMaxPortsExhausted:定义系统拒绝连接请求的次数。默认值5。
减小syn-ack包的响应时间。
HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\TcpMaxConnectResponseRetransmissions定义了重发SYN-ACK包的次数。
增大NETBT的连接块增加幅度和最大数器。NETBT使用139端口。
HKLM\SYSTEM\CurrentControlSet\Services\NetBt\Parameters\BacklogIncrement默认值为3,最大20,最小1。
HKLM\SYSTEM\CurrentControlSet\Services\NetBt\Parameters\MaxConnBackLog默认值为1000,最大可取40000。
动态配置Backlog。
相关的值项在HKLM\SYSTEM\CurrentControlSet\Service\AFD\Parameters下
1) DWORD:EnableDynamicBacklog:定义是否允许动态Backlog,默认为0,1为允许。
2) DWORD:MinimumDynamicBacklog:定义动态Backlog分配的未使用的自由连接的最小数目。默认值为0,建议设为20。
3) DWORD:MaximumDynamicBacklog:定义最大“准”连接数目。大小取决于内存的大小,一般每32M最大可以增加5000个。
4) DWORD:DynamicBacklogGrowthDelta:定义每次增加的自由连接数目,建议设置为10。
10)、预防DoS:
在注册表HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters中更改以下值可以防御一定强度的DoS攻击
SynAttackProtect REG_DWORD 2
EnablePMTUDiscovery REG_DWORD 0
NoNameReleaseOnDemand REG_DWORD 1
EnableDeadGWDetect REG_DWORD 0
KeepAliveTime REG_DWORD 300,000
PerformRouterDiscovery REG_DWORD 0
EnableICMPRedirects REG_DWORD 0
11)、防止ICMP重定向报文的攻击
HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\ParametersEnableICMPRedirects REG_DWORD 0x0(默认值为0x1)
该参数控制Windows 2000是否会改变其路由表以响应网络设备(如路由器)发送给它的ICMP重定向消息,有时会被利用来干坏事。Win2000中默认值为1,表示响应ICMP重定向报文。
12)、禁止响应ICMP路由通告报文
HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\interfacePerformRouterDiscovery REG_DWORD 0x0(默认值为0x2)
“ICMP路由公告”功能可造成他人计算机的网络连接异常,数据被窃听,计算机被用于流量攻击等严重后果。此问题曾导致校园网某些局域网大面积,长时间的网络异常。建议关闭响应ICMP路由通告报文.Win2000中默认值为2,表示当DHCP发送路由器发现选项时启用。
13)、设置生存时间
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\ParametersDefaultTTL REG_DWORD 0-0xff(0-255 十进制,默认值128)
指定传出IP数据包中设置的默认生存时间(TTL)值。TTL决定了IP数据包在到达目标前在网络中生存的最大时间。它实际上限定了IP数据包在丢弃前允许通过的路由器数量.有时利用此数值来探测远程主机*作系统。
14)、不支持IGMP协议
HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\ParametersIGMPLevel REG_DWORD 0x0(默认值为0x2)
记得Win9x下有个bug,就是用可以用IGMP使别人蓝屏,修改注册表可以修正这个bug。Win2000虽然没这个bug了,但IGMP并不是必要的,因此照样可以去掉。改成0后用route print将看不到那个讨厌的224.0.0.0项了。
15)、设置arp缓存老化时间设置
HKLM\SYSTEM\CurrentControlSet\Services:\Tcpip\Parameters
ArpCacheLife REG_DWORD 0-0xFFFFFFFF(秒数,默认值为120秒)
ArpCacheMinReferencedLife REG_DWORD 0-0xFFFFFFFF(秒数,默认值为600)
如果ArpCacheLife大于或等于ArpCacheMinReferencedLife,则引用或未引用的ARP缓存项在ArpCacheLife秒后到期。如果ArpCacheLife小于ArpCacheMinReferencedLife,未引用项在ArpCacheLife秒后到期,而引用项在ArpCacheMinReferencedLife秒后到期。每次将出站数据包发送到项的IP地址时,就会引用ARP缓存中的项。

16)、禁止死网关监测技术
HKLM\SYSTEM\CurrentControlSet\Services:\Tcpip\Parameters
EnableDeadGWDetect REG_DWORD 0x0(默认值为ox1)
如果你设置了多个网关,那么你的机器在处理多个连接有困难时,就会自动改用备份网关,有时候这并不是一项好主意,建议禁止死网关监测。
17)、不支持路由功能
HKLM\SYSTEM\CurrentControlSet\Services:\Tcpip\Parameters
IPEnableRouter REG_DWORD 0x0(默认值为0x0)
把值设置为0x1可以使Win2000具备路由功能,由此带来不必要的问题。
18)、做NAT时放大转换的对外端口最大值
HKLM\SYSTEM\CurrentControlSet\Services:\Tcpip\Parameters
MaxUserPort REG_DWORD 5000-65534(十进制)(默认值0x1388--十进制为5000)
当应用程序从系统请求可用的用户端口数时,该参数控制所使用的最大端口数。正常情况下,短期端口的分配数量为1024-5000。将该参数设置到有效范围以外时,就会使用最接近的有效数值(5000或65534)。使用NAT时建议把值放大点。
19)、修改MAC地址
HKLM\SYSTEM\CurrentControlSet\Control\Class找到右窗口的说明为"网卡"的目录,比如说是{4D36E972-E325-11CE-BFC1-08002BE10318}展开之,在其下0000,0001,0002...的分支中找到"DriverDesc"的键值为你网卡的说明,比如说"DriverDesc"的值为"Intel® 82559 Fast Ethernet LAN on Motherboard"然后在右窗口新建一字符串值,名字为"Networkaddress",内容为你想要的MAC值,比如说是"004040404040"然后重起计算机,ipconfig /all看看。
20)、禁止光盘的自动运行功能
Windows 2000的光盘的自动运行功能也是系统安全的隐患,光盘中只要存在autorun.inf文件,则系统会自动试图执行文件中open字段后的文件路径(市场上已经出现了破解屏保密码的光盘,如果不禁止光盘的自动运行功能,以上所做的设置都将是白费),步骤为:
⑴展开HKEY_LOCAL_MACHINE\SO
FTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer子键分支;
⑵在Explorer主键中新建DWORD值NoDriveTypeAutoRun,改值为1。
21)、禁止使用MS-DOS方式
采用上述方法隐藏某个磁盘分区的作用仅限于图形界面,但在字符界面如MS-DOS方式无效,因此我们必须采用适当的方法禁止普通用户使用MS-DOS方式。方法为:
①展开HKLU\SOFTWARE \Policies\Microsoft\Windows\system分支;
②新建一个名为DisableCMD的DWORD值,改值为1(这项用于禁止用户进入Windows 2000的MS-DOS方式)。值为2则批处理文件也不能运行。
22)、禁止运行指定的程序
23)、只允许运行指定的程序
24)、禁止使用注册表编辑器
HKCU\Software\Microsoft\Windows\Current Version\policies\System下
DWORD:DisableRegistryTools:值为1则禁用注册表编辑器。注意:使用此功能最好作个注册表备份,或者准备一个其他的注册表修改工具,因为禁止了注册表编辑器以后,就不能再用该注册表编辑器将值项改回来了。
22)、禁止使用任何程序(对于前边设置的陷阱用户)
不允许运行任何程序。方法为:
①展开HKLU\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer子键分支;
②在Explorer主键下新建RestrctRun的DWORD值,将值改为1。
不过你也可以发一下善心,给他几个Windows 2000自带的游戏玩一玩,方法为:在Explorer主键下新建名为RestrctRun的主键,在其下分别新建名为1、2、3、4的字符串值,将值分别改为MSHEARTS.EXE、FREECELL.EXE、WINMINE.EXE、SOL.EXE(只需程序名,无需路径),则系统只能运行网上红心大战、空当接龙、扫雷、纸牌。无法执行其它任何程序。
服务安全设置
1)、关闭不必要的端口
关闭端口意味着减少功能,在安全和功能上面需要你做一点决策。如果服务器安装在防火墙的后面,冒险就会少些。但是,永远不要认为你可以高枕无忧了。用端口扫描器扫描系统已开放的端口,确定系统开放的哪些服务可能引起黑客入侵。在系统目录中的\system32\drivers\etc\services 文件中有知名端口和服务的对照表可供参考。具体方法为:打开“ 网上邻居/属性/本地连接/属性/internet 协议(TCP/IP)/属性/高级/选项/TCP/IP筛选/属性” 打开“TCP/IP筛选”,添加需要的TCP、UDP协议即可。
2)、设置好安全记录的访问权限
安全记录在默认情况下是没有保护的,把它设置成只有Administrators和系统账户才有权访问。
3)、把敏感文件存放在另外的文件服务器中
虽然现在服务器的硬盘容量都很大,但是你还是应该考虑是否有必要把一些重要的用户数据(文件、数据表、项目文件等)存放在另外一个安全的服务器中,并且经常备份它们。
4)、停止不必要的服务
服务开的太多也不是个好事,将没有必要的服务通通关掉吧!特别是连管理员都不知道是干什么的服务,还开着干什么!关掉!免得给系统带来灾难。
另外,管理员如果不外出,不需要远程管理你的计算机的话,最好将一切的远程网络登录功能都关掉。注意,除非特别需要,否则禁用“Task Scheduler”、“RunAs Service”服务!
关闭一项服务的方法很简单,运行cmd.exe之后,直接net stop servername即可
5)、更改管理服务的端口
pcanywhere端口号,终端服务端口号。
5)、在Win2000中如何关闭ICMP(Ping)
ICMP的全名是Internet Control and Message Protocal即因特网控制消息/错误报文协议,这个协议主要是用来进行错误信息和控制信息的传递,例如著名的Ping和Tracert工具都是利用ICMP协议中的ECHO request报文进行的(请求报文ICMP ECHO类型8代码0,应答报文ICMP ECHOREPLY类型0代码0)。
ICMP协议有一个特点---它是无连结的,也就是说只要发送端完成ICMP报文的封装并传递给路由器,这个报文将会象邮包一样自己去寻找目的地址,这个特点使得ICMP协议非常灵活快捷,但是同时也带来一个致命的缺陷---易伪造(邮包上的寄信人地址是可以随便写的),任何人都可以伪造一个ICMP报文并发送出去,伪造者可以利用SOCK_RAW编程直接改写报文的ICMP首部和IP首部,这样的报文携带的源地址是伪造的,在目的端根本无法追查,(攻击者不怕被抓那还不有恃无恐?)根据这个原理,外面出现了不少基于ICMP的攻击软件,有通过网络架构缺陷制造ICMP风暴的,有使用非常大的报文堵塞网络的,有利用ICMP碎片攻击消耗服务器CPU的,甚至如果将ICMP协议用来进行通讯,可以制作出不需要任何TCP/UDP端口的木马(参见相关文章)......既然ICMP协议这么危险,我们为什么不关掉它呢?
我们都知道,Win2000在网络属性中自带了一个TCP/IP过滤器,我们来看看能不能通过这里关掉ICMP协议,桌面上右击网上邻居->属性->右击你要配置的网卡->属性->TCP/IP->高级->选项->TCP/IP过滤,这里有三个过滤器,分别为:TCP端口、UDP端口和IP协议,我们先允许TCP/IP过滤,然后一个一个来配置,先是TCP端口,点击"只允许",然后在下面加上你需要开的端口,一般来说WEB服务器只需要开80(www),FTP服务器需要开20(FTP Data),21(FTP Control),邮件服务器可能需要打开25(SMTP),110(POP3),以此类推......接着是UDP,UDP协议和ICMP协议一样是基于无连结的,一样容易伪造,所以如果不是必要(例如要从UDP提供DNS服务之类)应该选择全部不允许,避免受到洪水(Flood)或碎片(Fragment)攻击。最右边的一个编辑框是定义IP协议过滤的,我们选择只允许TCP协议通过,添加一个6(6是TCP在IP协议中的代码,IPPROTO_TCP=6),从道理上来说,只允许TCP协议通过时无论UDP还是ICMP都不应该能通过,可惜的是这里的IP协议过滤指的是狭义的IP协议,从架构上来说虽然ICMP协议和IGMP协议都是IP协议的附属协议,但是从网络7层结构上ICMP/IGMP协议与IP协议同属一层,所以微软在这里的IP协议过滤是不包括ICMP协议的,也就是说即使你设置了“只允许TCP协议通过”,ICMP报文仍然可以正常通过,所以如果我们要过滤ICMP协议还需要另想办法。
刚刚在我们进行TCP/IP过滤时,还有另外一个选项:IP安全机制(IP Security),我们过滤ICMP的想法就要着落在它身上。
  打开本地安全策略,选择IP安全策略,在这里我们可以定义自己的IP安全策略。
  一个IP安全过滤器由两个部分组成:过滤策略和过滤*作,过滤策略决定哪些报文应当引起过滤器的关注,过滤*作决定过滤器是“允许”还是“拒绝”报文的通过。要新建IP安全过滤器,必须新建自己的过滤策略和过滤*作:右击本机的IP安全策略,选择管理IP过滤器,在IP过滤器管理列表中建立一个新的过滤规则:ICMP_ANY_IN,源地址选任意IP,目标地址选本机,协议类型是ICMP,切换到管理过滤器*作,增加一个名为Deny的*作,*作类型为"阻止"(Block)。这样我们就有了一个关注所有进入ICMP报文的过滤策略和丢弃所有报文的过滤*作了。需要注意的是,在地址选项中有一个镜像选择,如果选中镜像,那么将会建立一个对称的过滤策略,也就是说当你关注any IP->my IP的时候,由于镜像的作用,实际上你也同时关注了my IP->any IP,你可以根据自己的需要选择或者放弃镜像。
再次右击本机的IP安全策略,选择新建IP过滤策略,建立一个名称为ICMP Filter的过滤器,通过增加过滤规则向导,我们把刚刚定义的ICMP_ANY_IN过滤策略指定给ICMP Filter,然后在*作选框中选择我们刚刚定义的Deny*作,退出向导窗口,右击ICMP Filter并启用它,现在任何地址进入的ICMP报文都会被丢弃了。
虽然用IP sec能够对ICMP报文进行过滤,不过*作起来太麻烦,而且如果你只需要过滤特定的ICMP报文,还要保留一些常用报文(如主机不可达、网络不可达等),IP sec策略就力不从心了,我们可以利用Win2000的另一个强大工具路由与远程访问控制(Routing & Remote Access)来完成这些复杂的过滤*作。
路由与远程访问控制是Win2000用来管理路由表、配置VPN、控制远程访问、进行IP报文过滤的工具,默认情况下并没有安装,所以首先你需要启用它,打开"管理工具"->"路由与远程访问",右击服务器(如果没有则需要添加本机)选择"配置并启用路由及远程访问",这时配置向导会让你选择是什么样的服务器,一般来说,如果你不需要配置VPN服务器,那么选择"手动配置"就可以了,配置完成后,主机下将出现一个IP路由的选项,在"常规"中选择你想配置的网卡(如果你有多块网卡,你可以选择关闭某一块的ICMP),在网卡属性中点击"输入筛选器",添加一条过滤策略"from:ANY to:ANY 协议:ICMP 类型:8 :编码:0 丢弃"就可以了(类型8编码0就是Ping使用的ICMP_ECHO报文,如果要过滤所有的ICMP报文只需要将类型和编码都设置为255)
 
IIS:IIS是微软的组件中漏洞最多的一个,平均两三个月就要出一个漏洞,而微软的IIS默认安装又实在不敢恭维,所以IIS的配置是我们的重点,现在大家跟着我一起来:
首先,把C盘那个什么Inetpub目录彻底删掉,在D盘建一个Inetpub(要是你不放心用默认目录名也可以改一个名字,但是自己要记得)在IIS管理器中将主目录指向D:\Inetpub;
其次,那个IIS安装时默认的什么scripts等虚拟目录一概删除(罪恶之源呀,忘了http://www.target.com/scripts/..%c1%1c../winnt/system32/cmd.exe了?我们虽然已经把Inetpub从系统盘挪出来了,但是还是小心为上),如果你需要什么权限的目录可以自己慢慢建,需要什么权限开什么。(特别注意写权限和执行程序的权限,没有绝对的必要千万不要给)
第三,应用程序配置:在IIS管理器中删除必须之外的任何无用映射,必须指的是ASP, ASA和其他你确实需要用到的文件类型,例如你用到stml等(使用server side include),实际上90%的主机有了上面两个映射就够了,其余的映射几乎每个都有一个凄惨的故事:htw, htr, idq, ida……想知道这些故事?去查以前的漏洞列表吧。什么?找不到在哪里删?在IIS管理器中右击主机->属性->WWW服务 编辑->主目录 配置->应用程序映射,然后就开始一个个删吧(里面没有全选的,嘿嘿)。接着在刚刚那个窗口的应用程序调试书签内将脚本错误消息改为发送文本(除非你想ASP出错的时候用户知道你的程序/网络/数据库结构)错误文本写什么?随便你喜欢,自己看着办。点击确定退出时别忘了让虚拟站点继承你设定的属性。
为了对付日益增多的cgi漏洞扫描器,还有一个小技巧可以参考,在IIS中将HTTP404 Object Not Found出错页面通过URL重定向到一个定制HTM文件,可以让目前绝大多数CGI漏洞扫描器失灵。其实原因很简单,大多数CGI扫描器在编写时为了方便,都是通过查看返回页面的HTTP代码来判断漏洞是否存在的,例如,著名的IDQ漏洞一般都是通过取1.idq来检验,如果返回HTTP200,就认为是有这个漏洞,反之如果返回HTTP404就认为没有,如果你通过URL将HTTP404出错信息重定向到HTTP404.htm文件,那么所有的扫描无论存不存在漏洞都会返回HTTP200,90%的CGI扫描器会认为你什么漏洞都有,结果反而掩盖了你真正的漏洞,让入侵者茫然无处下手(武侠小说中常说全身漏洞反而无懈可击,难道说的就是这个境界?)不过从个人角度来说,我还是认为扎扎实实做好安全设置比这样的小技巧重要的多。
最后,为了保险起见,你可以使用IIS的备份功能,将刚刚的设定全部备份下来,这样就可以随时恢复IIS的安全配置。还有,如果你怕IIS负荷过高导致服务器满负荷死机,也可以在性能中打开CPU限制,例如将IIS的最大CPU使用率限制在70%。
需要注意事项
实际上,安全和应用在很多时候是矛盾的,因此,你需要在其中找到平衡点,毕竟服务器是给用户用而不是做OPEN HACK的,如果安全原则妨碍了系统应用,那么这个安全原则也不是一个好的原则。
网络安全是一项系统工程,它不仅有空间的跨度,还有时间的跨度。很多朋友(包括部分系统管理员)认为进行了安全配置的主机就是安全的,其实这其中有个误区:我们只能说一台主机在一定的情况一定的时间上是安全的,随着网络结构的变化、新的漏洞的发现,管理员/用户的*作,主机的安全状况是随时随地变化着的,只有让安全意识和安全制度贯穿整个过程才能做到真正的安全。
提高IIS 5.0网站伺服器的执行效率的八种方法
 以下是提高IIS 5.0网站伺服器的执行效率的八种方法:
 1. 启用HTTP的持续作用可以改善15~20%的执行效率。
 2. 不启用记录可以改善5~8%的执行效率。
 3. 使用 [独立] 的处理程序会损失20%的执行效率。
 4. 增加快取记忆体的保存档案数量,可提高Active Server Pages之效能。
 5. 勿使用CGI程式。
 6. 增加IIS 5.0电脑CPU数量。
 7. 勿启用ASP侦错功能。
 8. 静态网页采用HTTP 压缩,大约可以减少20%的传输量。
 简单介绍如下。  1、启用HTTP的持续作用
 启用HTTP的持续作用(Keep-Alive)时,IIS与浏览器的连线不会断线,可以改善执行效率,直到浏览器关闭时连线才会断线。因为维持「Keep-Alive」状态时,於每次用户端请求时都不须重新建立一个新的连接,所以将改善伺服器的效率。
 此功能为HTTP 1.1预设的功能,HTTP 1.0加上Keep-Alive
header也可以提供HTTP的持续作用功能。
 2、启用HTTP的持续作用可以改善15~20%的执行效率。
 如何启用HTTP的持续作用呢?步骤如下:
 在 [Internet服务管理员] 中,选取整个IIS电脑、或Web站台,於 [内容] 之 [主目录]
页,勾选 [HTTP的持续作用] 选项。
 3、不启用记录
 不启用记录可以改善5~8%的执行效率。
 如何设定不启用记录呢?步骤如下:
 在 [Internet服务管理员] 中,选取整个IIS电脑、或Web站台,於 [内容] 之 [主目录]页,不勾选 [启用记录] 选项。
 设定非独立的处理程序
 使用 [独立] 的处理程序会损失20%的执行效率,此处所谓「独立」系指将 [主目录]、[虚拟目录] 页之应用程式保护选项设定为 [高(独立的)] 时。因此 [应用程式保护] 设定为 [低 (IIS处理程序)] 时执行效率较高,设定画面如下:
 如何设定非「独立」的处理程序呢?步骤如下:
 在 [Internet服务管理员] 中,选取整个IIS电脑、Web站台、或应用程式的起始目录。於 [内容] 之 [主目录]、[虚拟目录] 页,设定应用程式保护选项为 [低 (IIS处理程序)] 。
 4、调整快取(Cache)记忆体
 IIS 5.0将静态的网页资料暂存於快取(Cache)记忆体当中;IIS
4.0则将静态的网页资料暂存於档案当中。调整快取(Cache)记忆体的保存档案数量可以改善执行效率。
 ASP指令档案执行过後,会在暂存於快取(Cache)记忆体中以提高执行效能。增加快取记忆体的保存档案数量,可提高Active Server Pages之效能。
 可以设定所有在整个IIS电脑、「独立」Web站台、或「独立」应用程式上执行之应用程式的快取记忆体档案数量。
 如何设定快取(Cache)功能呢?步骤如下:
 在 [Internet服务管理员]
中,选取整个IIS电脑、「独立」Web站台、或「独立」应用程式的起始目录。於 [内容]之[主目录]、[虚拟目录] 页,按下 [设定] 按钮时,即可由 [处理程序选项] 页设定 [指令档快取记忆体] 。
如何设定快取(Cache)记忆体档案数量呢?步骤如下:
在 [Internet服务管理员] 中,选取整个IIS电脑、或Web站台的起始目录。於 [内容]之[伺服器扩充程式] 页,按下 [设定] 按钮。
 即可设定快取(Cache)记忆体档案数量。
 5、勿使用CGI程式
 使用CGI程式时,因为处理程序(Process)须不断地产生与摧毁,造成执行效率不佳。
 一般而言,执行效率比较如下:
    静态网页(Static):100
    ISAPI:50
    ASP:10
    CGI:1
 换句话说,ASP比CGI可能快10倍,因此勿使用CGI程式可以改善IIS的执行效率。
 以弹性(Flexibility)而言:ASP > CGI > ISAPI > 静态网页(Static)。
 以安全(Security)而言:ASP(独立) = ISAPI(独立)= CGI > ASP(非独立) =
ISAPI(非独立)= 静态网页(Static)。
 6、增加IIS 5.0电脑CPU数量
 根据微软的测试报告,增加IIS 4.0电脑CPU数量,执行效率并不会改善多少;但是增加IIS 5.0电脑CPU数量,执行效率会几乎成正比地提供,换句话说,两颗CPU的IIS 5.0电脑执行效率几乎是一颗CPU电脑的两倍,四颗CPU的IIS 5.0电脑执行效率几乎是一颗CPU电脑的四倍。
 IIS 5.0将静态的网页资料暂存於快取(Cache)记忆体当中;IIS
4.0则将静态的网页资料暂存於档案当中。调整快取(Cache)记忆体的保存档案数量可以改善执行效率。
 7、启用ASP侦错功能
 勿启用ASP侦错功能可以改善执行效率。
 如何勿启用ASP侦错功能呢?步骤如下:
 於 [Internet服务管理员] 中,选取Web站台、或应用程式的起始目录,按右键选择 [内容],按 [主目录]、[虚拟目录] 或 [目录] 页,按下 [设定] 按钮,选择 [应用程式侦错] 页,不勾选 [启用ASP伺服器端指令侦错]、[启用ASP用户端指令侦错] 选项。
 8、静态网页采用HTTP 压缩
 静态网页采用HTTP 压缩,大约可以减少20%的传输量。
 HTTP压缩功能启用或关闭,系针对整台IIS伺服器来设定。
 用户端使用IE 5.0浏览器连线到已经启用HTTP压缩IIS 5.0之Web伺服器,才有HTTP压缩功能。
 如何启用HTTP压缩功能呢?步骤如下:
 若要启用HTTP压缩功能,方法为在 [Internet服务管理员] 中,选取电脑之 [内容],於 [主要内容]
之下选取 [WWW服务]。然後按一下 [编辑] 按钮,於 [服务] 页上,选取 [压缩静态档案] 可以压缩静态档案,不选取 [压缩应用程式档案] 。
 动态产生的内容档案(压缩应用程式档案)也可以压缩,但是须耗费额外CPU处理时间,若% Processor Time已经百分之八十或更多时,建议不要压缩。
posted on 2006-11-18 16:59 独孤九剑 阅读(248) 评论(0)  编辑 收藏 引用 所属分类: misc