E N D
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 Mana ger (HTML)这几个危险服务。
5、分区和逻辑盘的分配 建议最少建立两个分区,一个系统分区,一 个应用程序分区,这是因为,微软的IIS经常会有 泄漏源码/溢出的漏洞,如果把系统和IIS放在同 一个驱动器会导致系统文件的泄漏甚至入侵者远 程获取ADMIN。推荐的安全配置是建立三个逻辑 驱动器,第一个大于2G,用来装系统和重要的日 志文件,第二个放IIS,第三个放FTP,这样无论 IIS或FTP出了安全漏洞都不会直接影响到系统目 录和系统文件。
IIS和FTP是对外服务的,比较容易出问题。而把IIS和FTP分开主要是为了防止入侵者上程序并从IIS中运行。(这个可能会导致 程序开发人员和编辑的苦恼)
6、安装杀毒软件。 杀毒软件不仅能杀掉一些著名的病毒,还能 查杀大量木马和后门程序,因此一定要运行杀毒 程序并把它设为开机自动运行,并注意经常升级 病毒库。
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)、创建一个陷阱用户 什么是陷阱用户?即创建一个名为“Adminis trator”的本地用户,把它的权限设置成最低,什 么事也干不了,加上一个超过10位的 超级复杂密码。这样可以让想入侵的人慢慢忙一 段时间。 6)、把共享文件的权限从Everyone组改成授权用户不要把共享文件的用户设置成“Everyone”组,包括打印共享,默认的属性就是“Everyone”组的。
7)、开启用户策略(不建议) 使用用户策略,分别设置复位用户锁定计数器时间为20分钟,用户锁定时间为20分钟,用户锁定阈值为3次。 8)、不让系统显示上次登录的用户名(可选) 打开注册表编辑器并找到注册表项HKLMSoftwareMicrosoftWindowsTCurrentVersionWinlogonDont-DisplayLastUserName,把键值改成1
9)、系统账号/共享列表 Win2000的默认安装允许任何用户通过空 用户得到系统所有账号/共享列表,这个本来是 为了方便局域网用户共享文件的,但是一个远程 用户也可以得到你的用户列表并使用暴力法破解 用户密码。可以通过更改注册表 Local_Machine\System\CurrentControlSet\Contr ol\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的默认安装是不开任何安全审核的!可以到本地安全策略->审核策略中打开相应的审核,推荐的审核是: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\CurrentCon trolSet\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。2)DWORD:TcpMaxConnectResponseRetransmissions:定义了对于连接请求回应包的重发次数。值为1,则SYN淹没攻击不会有效果,但是这样会造成连接请求失败几率的增高。SYN淹没攻击保护只有在该值>=2时才会被启用,默认值为3。 (上边两个值定义是否允许SYN淹没攻击保护,下面三个则定义了激活SYN淹没攻击保护的条件,满足其中之一,则系统自动激活SYN淹没攻击保护。) 3) DWORD:TcpMaxHalfOpen:定义能够处于SYN_RECEIVED状态的TCP连接的数目。默认值100。
4)TcpMaxHalfOpenRetried:定义在重新发送连接请求后,仍然处于SYN_RECEIVED状态的TCP连接的数目。默认值80。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(R) 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。