一、 版本的选择 笔者强烈建议:在语言不成为障碍的情况下,请一定使用英文版。要知道,微软的产品是以“漏洞加补丁(Bug & Patch)”而著称的,中文版的Bug远远多于英文版,而补丁一般还会迟至少半个月(也就是说一般微软公布了漏洞后你的服务器还会有半个月处于无保护状态)。
二、 组件的定制 WIN2K在默认情况下会安装一些常用的组件,但是正是这个默认安装是非常危险的,根据安全原则“最少的服务+最小的权限=最大的安全” ,只安装确实需要的服务即可。这里特别提醒注意的是:“Indexing Service”、“FrontPage 2000 Server Extensions”、“ Internet Service Manager”这几个危险服务。
三、 管理应用程序的选择 选择一个好的远程管理软件是非常重要的事,这不仅仅是安全方面的要求,也是应用方面的需要。WIN2K的Terminal Service是基于RDP(远程桌面协议)的远程控制软件,它的速度快,操作方便,比较适合用来进行常规操作。但是,Terminal Service也有其不足之处,由于它使用的是虚拟桌面,再加上微软编程的不严谨,当你使用Terminal Service进行安装软件或重启服务器等与真实桌面交互的操作时,往往会出现哭笑不得的现象,例如:使用Terminal Service重启微软的认证服务器(Compaq, IBM等)可能会直接关机。所以,为了安全起见,建议再配备一个远程控制软件作为辅助,和Terminal Service互补,如PcAnyWhere就是一个不错的选择。
四、 分区和逻辑盘的分配 至少建立两个分区,一个系统分区,一个应用程序分区。这是因为,微软的IIS(Internet Ihformation Server)经常会有漏洞,如果把系统和IIS放在同一个驱动器会导致系统文件的泄漏,甚至让入侵者远程获取管理权。
推荐建立三个逻辑驱动器,第一个用来装系统和重要的日志文件;第二个放IIS;第三个放FTP,这样无论IIS或FTP出了安全漏洞都不会直接影响到系统目录和系统文件。
五、 安装顺序的选择 不要觉得只要能装上系统,就算完事了,其实WIN2K的安装顺序是非常重要的。
首先,要注意接入网络的时间。WIN2K在安装时有一个漏洞,就是在输入Administrator的密码后,系统会建立“$ADMIN”的共享,但是并没有用刚输入的密码来保护它,这种情况一直会持续到计算机再次启动。在此期间,任何人都可以通过“$ADMIN”进入系统;同时,只要安装一完成,各种服务就会自动运行,而这时的服务器还到处是漏洞,非常容易从外部侵入。因此,在完全安装并配置好WIN2K Server之前,一定不要把主机接入网络。
其次,注意补丁的安装。补丁应该在所有应用程序安装完之后再安装,因为补丁程序往往要替换或修改某些系统文件,如果先安装补丁的话可能无法起到应有的效果。
即使正确地安装了WIN2K Server,系统也有很多漏洞,还需要进一步进行细致的配置。
一、 端口
端口是计算机和外部网络相连的逻辑接口,也是计算机的第一道屏障,端口配置正确与否直接影响到主机的安全。
二、 IIS
IIS是微软的组件中问题最多的一个,平均两三个月就要出一个漏洞,而微软的IIS默认安装又实在不敢恭维,所以IIS的配置是我们的重点。
首先,删除C盘下的Inetpub目录,在D盘建一个Inetpub,在IIS管理器中将主目录指向D:Inetpub。
其次,把IIS安装时默认的scripts等虚拟目录也一概删除,如果你需要什么权限的目录可以以后再建(特别注意写权限和执行程序的权限)。
然后是应用程序的配置。在IIS管理器中把无用映射都统统删除(当然必须保留如ASP、ASA等)。在IIS管理器中“主机→属性→WWW服务编辑→主目录配置→应用程序映射”,然后开始一个个删吧。接着再在应用程序调试书签内,将“脚本错误消息”改为“发送文本”。点击“确定”退出时别忘了让虚拟站点继承刚才设定好的属性。
最后,为了保险起见,可以使用IIS的备份功能,将刚刚的设定全部备份下来,这样就可以随时恢复IIS的安全配置。还有,如果怕IIS负荷过高导致服务器死机,也可以在性能中打开CPU限制,如将IIS的最大CPU使用率限制在70%。
三、 账号安全
首先,WIN2K的默认安装允许任何用户通过空用户得到系统所有账号和共享列表,这本来是为了方便局域网用户共享资源和文件的,但是,同时任何一个远程用户也可以通过同样的方法得到你的用户列表,并可能使用暴力法破解用户密码给整个网络带来破坏。很多人都只知道更改注册表Local_MachineSystemCurrentControlSetControlLSA-RestrictAnonymous = 1来禁止空用户连接,实际上WIN2K的本地安全策略里(如果是域服务器就是在域服务器安全和域安全策略里)就有这样的选项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”这个值只有WIN2K才支持,需要注意的是,如果使用了这个值,就不能再共享资源了,所以还是推荐把数值设为“1”比较好。
四、 安全日志
这里需要注意:WIN2K的默认安装是不开任何安全审核的!那么就应该到“本地安全策略→审核策略”中打开相应的审核,这里需要说明的是,审核项目如果太少的话,你万一想查看的时候发现没有记录那就一点办法都没有,但是审核项目如果太多,不仅会占用大量的系统资源,而且你也可能根本没空去全部看完,这样就失去了审核的意义。推荐的审核如下:
“账户管理”、“登录事件”、“策略更改”、“系统事件”、“账户登录事件”需要把“成功”和“失败”都打开;“对象访问”、“特权使用”、“目录服务访问”就只打开“失败”。
与之相关的还有,在“账户策略→密码策略”中设定:“密码复杂性要求启用”,“密码长度最小值6位”,“强制密码历史5次”,“最长存留期 30天”;在“账户策略→账户锁定策略”中设定:“账户锁定3次错误登录”,“锁定时间20分钟”,“复位锁定计数20分钟”等。
Terminal Service的安全日志默认也是不启用的,可以在“Terminal Service Configration(远程服务配置)→权限→高级”中配置安全审核,一般来说只要记录登录、注销事件就可以了。
五、 目录和文件权限
为了控制好服务器上用户的权限,同时也为了预防以后可能的入侵和溢出,还必须非常小心地设置目录和文件的访问权限。NT的访问权限分为:读取、写入、读取及执行、修改、列目录、完全控制。在默认的情况下,大多数的文件夹对所有用户(Everyone这个组)是完全敞开的(Full Control),你需要根据应用的需要进行权限重设。在进行权限控制时,请记住以下几个原则:
1. 权限是累计的,如果一个用户同时属于两个组,那么他就有了这两个组所允许的所有权限。
2. 拒绝的权限要比允许的权限高(拒绝策略会先执行)。如果一个用户属于一个被拒绝访问某个资源的组,那么不管其他的权限设置给他开放了多少权限,他也一定不能访问这个资源。
3. 文件权限比文件夹权限高。
4. 利用用户组来进行权限控制是一个成熟的系统管理员必须具有的优良习惯。
5. 只给用户真正需要的权限,权限的最小化原则是安全的重要保障。
6. 预防ICMP攻击:ICMP的风暴攻击和碎片攻击也是NT主机比较头疼的攻击方法,其实应付的方法也很简单,WIN2K自带一个Routing & Remote Access工具,这个工具初具路由器的雏形。在这个工具中,我们可以轻易地定义输入输出包过滤器。如设定输入ICMP代码255丢弃就表示丢弃所有的外来ICMP报文。
要注意
实际上,安全和应用在很多时候是矛盾的,因此,你需要在其中找到平衡点,毕竟服务器是给用户用的,如果安全原则妨碍了系统应用,那么这个安全原则也不是一个好的原则。
网络安全是一项系统工程,它不仅有空间的跨度,还有时间的跨度。很多朋友(包括部分系统管理员)认为进行了安全配置的主机就是安全的,其实这里有个误区,我们只能说一台主机在一定的情况下一定的时间内是安全的,随着网络结构的变化、新的漏洞的发现、管理员和用户的操作,主机的安全状况是随时随地变化着的,只有让安全意识和安全制度贯穿整个过程才能做到真正的安全。