⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 server安全入门.txt

📁 BBS的精华之处
💻 TXT
📖 第 1 页 / 共 2 页
字号:
Server安全入门 

发布日期: 2001-4-3  
 
作者:shotgun 
 
    目前,WIN2000 SERVER是比较流行的服务器操作系统之一,但是要想安全的配置微 
软的这个操作系统,却不是一件容易的事。本文试图对win2000 SERVER的安全配置 
进行初步的探讨。  
 
一、 定制自己的WIN2000 SERVER;  
1. 版本的选择:WIN2000有各种语言的版本,对于我们来说,可以选择英文版或 
简体中文版,我强烈建议:在语言不成为障碍的情况下,请一定使用英文版。要知 
道,微软的产品是以Bug & Patch而著称的,中文版的Bug远远多于英文版,而补丁 
一般还会迟至少半个月(也就是说一般微软公布了漏洞后你的机子还会有半个月处 
于无保护状况)  
2. 组件的定制:win2000在默认情况下会安装一些常用的组件,但是正是这个默 
认安装是极度危险的(米特尼科说过,他可以进入任何一台默认安装的服务器,我 
虽然不敢这么说,不过如果你的主机是WIN2000 SERVER的默认安装,我可以告诉你 
,你死定了)你应该确切的知道你需要哪些服务,而且仅仅安装你确实需要的服务 
,根据安全原则,最少的服务+最小的权限=最大的安全。典型的WEB服务器需要的 
最小组件选择是:只安装IIS的Com Files,IIS Snap-In,WWW Server组件。如果 
你确实需要安装其他组件,请慎重,特别是:Indexing Service, FrontPage 2000 
 Server Extensions, Internet Service Manager (HTML)这几个危险服务。  
3. 管理应用程序的选择  
选择一个好的远程管理软件是非常重要的事,这不仅仅是安全方面的要求,也是应 
用方面的需要。Win2000的Terminal Service是基于RDP(远程桌面协议)的远程控 
制软件,他的速度快,操作方便,比较适合用来进行常规操作。但是,Terminal  
Service也有其不足之处,由于它使用的是虚拟桌面,再加上微软编程的不严谨, 
当你使用Terminal Service进行安装软件或重起服务器等与真实桌面交互的操作时 
,往往会出现哭笑不得的现象,例如:使用Terminal Service重起微软的认证服务 
器(Compaq, IBM等)可能会直接关机。所以,为了安全起见,我建议你再配备一 
个远程控制软件作为辅助,和Terminal Service互补,象PcAnyWhere就是一个不错 
的选择。  
 
二、 正确安装WIN2000 SERVER  
1.分区和逻辑盘的分配,有一些朋友为了省事,将硬盘仅仅分为一个逻辑盘,所 
有的软件都装在C驱上,这是很不好的,建议最少建立两个分区,一个系统分区, 
一个应用程序分区,这是因为,微软的IIS经常会有泄漏源码/溢出的漏洞,如果把 
系统和IIS放在同一个驱动器会导致系统文件的泄漏甚至入侵者远程获取ADMIN。推 
荐的安全配置是建立三个逻辑驱动器,第一个大于2G,用来装系统和重要的日志文 
件,第二个放IIS,第三个放FTP,这样无论IIS或FTP出了安全漏洞都不会直接影响 
到系统目录和系统文件。要知道,IIS和FTP是对外服务的,比较容易出问题。而把 
IIS和FTP分开主要是为了防止入侵者上传程序并从IIS中运行。(这个可能会导致 
程序开发人员和编辑的苦恼,管他呢,反正你是管理员J)  
2.安装顺序的选择:不要觉得:顺序有什么重要?只要安装好了,怎么装都可以 
的。错!win2000在安装中有几个顺序是一定要注意的:  
首先,何时接入网络:Win2000在安装时有一个漏洞,在你输入Administrator密码 
后,系统就建立了ADMIN$的共享,但是并没有用你刚刚输入的密码来保护它,这种 
情况一直持续到你再次启动后,在此期间,任何人都可以通过ADMIN$进入你的机器 
;同时,只要安装一完成,各种服务就会自动运行,而这时的服务器是满身漏洞, 
非常容易进入的,因此,在完全安装并配置好win2000 SERVER之前,一定不要把主 
机接入网络。  
其次,补丁的安装:补丁的安装应该在所有应用程序安装完之后,因为补丁程序往 
往要替换/修改某些系统文件,如果先安装补丁再安装应用程序有可能导致补丁不 
能起到应有的效果,例如:IIS的HotFix就要求每次更改IIS的配置都需要安装(变 
不变态?)  
 
三、 安全配置WIN2000 SERVER  
即使正确的安装了WIN2000 SERVER,系统还是有很多的漏洞,还需要进一步进行细 
致地配置。  
1.端口:端口是计算机和外部网络相连的逻辑接口,也是计算机的第一道屏障, 
端口配置正确与否直接影响到主机的安全,一般来说,仅打开你需要使用的端口会 
比较安全,配置的方法是在网卡属性-TCP/IP-高级-选项-TCP/IP筛选中启用 
TCP/IP筛选,不过对于win2000的端口过滤来说,有一个不好的特性:只能规定开 
哪些端口,不能规定关闭哪些端口,这样对于需要开大量端口的用户就比较痛苦。 
  
2.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%。  
 
 
3.账号安全:  
Win2000的账号安全是另一个重点,首先,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中才支持的,需要注意的是,如果你一旦使用了这个值,你的 
共享估计就全部完蛋了,所以我推荐你还是设为1比较好。  
 
好了,入侵者现在没有办法拿到我们的用户列表,我们的账户安全了……慢着,至 
少还有一个账户是可以跑密码的,这就是系统内建的administrator,怎么办?我 
改改改,在计算机管理->用户账号中右击administrator然后改名,改成什么随便 
你,只要能记得就行了。  
不对不对,我都已经改了用户名了,怎么还是有人跑我管理员的密码?幸好我的密 
码够长,但是这也不是办法呀?嗯,那肯定是在本地或者Terminal Service的登录 
界面看到的,好吧,我们再来把 
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\winlogon 
项中的Don’t Display Last User Name串数据改成1,这样系统不会自动显示上次 
的登录用户名。  
将服务器注册表HKEY_LOCAL_ MACHINE\SOFTWARE\Microsoft\  
WindowsNT\CurrentVersion\Winlogon项中的Don't Display Last User Name串数 
据修改为1,隐藏上次登陆控制台的用户名。(哇,世界清静了)  
    
5.安全日志:我遇到过这样的情况,一台主机被别人入侵了,系统管理员请我去 
追查凶手,我登录进去一看:安全日志是空的,倒,请记住:Win2000的默认安装 
是不开任何安全审核的!那么请你到本地安全策略->审核策略中打开相应的审核, 
推荐的审核是:  
账户管理 成功 失败  
登录事件 成功 失败  
对象访问 失败  
策略更改 成功 失败  
特权使用 失败  
系统事件 成功 失败  
目录服务访问 失败  
账户登录事件 成功 失败  
审核项目少的缺点是万一你想看发现没有记录那就一点都没辙;审核项目太多不仅 
会占用系统资源而且会导致你根本没空去看,这样就失去了审核的意义。  
 
与之相关的是:  
在账户策略->密码策略中设定:  
密码复杂性要求 启用  
密码长度最小值 6位  
强制密码历史 5次  
最长存留期 30天  
在账户策略->账户锁定策略中设定:  
账户锁定 3次错误登录  
锁定时间 20分钟  
复位锁定计数 20分钟  
 
同样,Terminal Service的安全日志默认也是不开的,我们可以在Terminal  
Service Configration(远程服务配置)-权限-高级中配置安全审核,一般来说只 
要记录登录、注销事件就可以了。  
 
 
7.目录和文件权限:  
为了控制好服务器上用户的权限,同时也为了预防以后可能的入侵和溢出,我们还 
必须非常小心地设置目录和文件的访问权限,NT的访问权限分为:读取、写入、读 
取及执行、修改、列目录、完全控制。在默认的情况下,大多数的文件夹对所有用 
户(Everyone这个组)是完全敞开的(Full Control),你需要根据应用的需要进 
行权限重设。  
在进行权限控制时,请记住以下几个原则:  
1>限是累计的:如果一个用户同时属于两个组,那么他就有了这两个组所允许的所 
有权限;  
2>拒绝的权限要比允许的权限高(拒绝策略会先执行)如果一个用户属于一个被拒 
绝访问某个资源的组,那么不管其他的权限设置给他开放了多少权限,他也一定不 
能访问这个资源。所以请非常小心地使用拒绝,任何一个不当的拒绝都有可能造成 
系统无法正常运行;  
3>文件权限比文件夹权限高(这个不用解释了吧?)  
4>利用用户组来进行权限控制是一个成熟的系统管理员必须具有的优良习惯之一; 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -