Win2K Internet服务器安全构建指南.docx
- 文档编号:7257390
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:15
- 大小:352.20KB
Win2K Internet服务器安全构建指南.docx
《Win2K Internet服务器安全构建指南.docx》由会员分享,可在线阅读,更多相关《Win2K Internet服务器安全构建指南.docx(15页珍藏版)》请在冰豆网上搜索。
Win2KInternet服务器安全构建指南
Win2KInternet服务器安全构建指南(WIN2K篇)
Win2K操作系统的一个主要特色就是将IIS融入其内核之中,并提供一些用来配置和维护软件的向导工具,使构建一个Internet网站轻松易得。
但是,如果要创建一个安全可靠的Internet网站,实现“地面部分”-Win2K操作系统和“空中部分”-IIS的双重安全,还需要更加全面和深入的工作。
本文就对这些稳固工作中的地面部分-Win2K操作系统进行讨论,旨在帮助管理员一步步地实施网站安全构建工作。
一、安全思想先行
所谓兵马未发,粮草先行,在安装和配置一个Internet服务器之前,首先要从思想上对安全工作有个全局认识,至少应该考虑好以下几个方面的内容:
1、编制计划
编制安装计划的过程本身就可以作为一篇论文深加论述,这里只做概要介绍。
保护Internet服务器安全需要详尽的计划,这不是指在安装过程中弹出菜单时确定选择哪一个项目,而是要仔细确定系统的功能和目标,最终成为安装的路标、排除故障的向导、服务器安装及网络边界情况的基础文档。
如果需要安装计划编制方面的基础性方针资料,可以参考RFC手册之2196项“站点安全手册”,地址是:
http:
//www.faqs.org/rfcs/rfc2196.html。
2、设计策略
除了确定服务器将执行那些功能,还需要确定谁能访问服务器、在服务器上存储什么数据以及在出现各种情况时应该采取哪些措施。
这就是策略的制定。
实际上,策略定义了一个组织的服务器与接受它的服务和数据的Internet公众之间的交互作用细节。
真正安全的站点必须具有适当的策略。
关于策略的设计,同样请参考RFC手册之2196项“站点安全手册”。
3、访问控制
这方面是指对服务器的访问权,主要包括三类:
●物理访问控制:
指实际接触和操作服务器控制台的能力。
如果攻击者取得了物理访问权,就可以绕过许多安全措施,整个安全计划将出现一个大大的漏洞!
●系统访问控制:
确定哪些组或个人账号对系统拥有何种权限,例如备份和恢复数据、向Web服务器发布文档、管理账户或组。
●网络访问控制:
网络访问控制规定了内部网与Internet相互作用的权限,例如端口访问、数据读取、服务使用等等。
不仅仅要考虑到外部的入侵行为,还要设想到内部的敌人攻击。
为此,一般将服务器放于DMZ区域内。
一个DMZ(DemilitarizedZone)就是一个孤立的网络,可以把不信任的系统放在那里。
例如,我们希望任何人都能访问Web和Email服务器,所以它们就是不能信任的;将它们放在DMZ中特别关照,就可对来自内部和外部的访问都进行限制。
二、Win2K安装时要重点考虑的安全配置信息
安装Win2K时,直到配置网络协议时才需要考虑安全问题。
对于一个Internet网站,配置网络协议时一定要关闭一个很大的安全漏洞:
NetBIOS协议!
就是说,在“本地连接属性”窗口中,只选中“Microsoft网络客户端”和“Internet协议(TCP/IP)”两项:
选中“Microsoft网络客户端”的原因在于NTLM(NT/LAN管理器)安全支持供应(SecuritySupportProvider)组件是嵌入在操作系统中的,如果没有这个组件,IIS将无法运行。
你可能要问了:
“只配置这两个协议,需要其他的功能怎么办”?
解决方法很简单:
为服务器安装配置两个网卡,第一个用于Internet连接,其上只绑定那两个服务协议;第二个用于从本地网络访问服务器,根据需要添加其他的服务协议,例如“Microsoft网络的文件和打印机共享”等:
接下来,我们要设置TCP/Ip协议的属性内容。
除了确定网卡IP地址以及默认网关地址外,还需要点击“高级”按钮进入“WINS”选项卡设置“禁止TCP/IP上的NetBIOS”,以阻止网卡向Internet发送和接收NetBIOS信息:
NetBIOS是简单友好的机器名表达法,例如\\servername\shareresource。
如果打开这个功能,攻击者就可以使用端口扫描器等软件测试出具有端口137和139监听的机器,从而进一步使用其NetBIOS名尝试获取系统资源的访问权。
三、Win2K安装后要重点考虑的安全配置信息
操作系统安装完毕后,建议执行如下安全配置:
1、安装微软高级加密包(MicrosoftHighEncryptionPack),将服务器升级为128位加密。
默认状态下,服务器软件的加密状态处于较低级别,我们必须手工将其配置为128位加密。
而且,这项工作应该在创建帐号和组之前进行,这样就可以保证在服务器上创建的所有项目都是128位加密级别的。
2、安装最新的SP软件包和Hotfixes
微软的产品是老裁缝做的,不打补丁不漂亮的,所以管理员们要经常访问以下地址看看是否又有新补丁面世:
这个地址包含了大量关于Win2K的信息,对日常管理Win2K服务器非常有参考价值。
关于HotFixes有一点需要注意:
只在系统需要的时候才安装相应HotFix。
因为,并不是每个服务器都需要所有的HotFix,其中有一些hotfix修复的漏洞只存在于某些特定配置中。
3、对系统服务的启动方式重新进行规划
默认状态下,许多服务都随系统启动而启动。
但由于有些服务因为启动帐号身份的权限过大,有可能埋下安全隐患地雷,因此必须对所有服务的启动方式进行重新规划。
规划的原则应该是:
除非绝对必要,关闭该服务。
以下是我们认为应该处于“自动”启动状态的基本服务:
●DNSClient:
如果服务器需要主动与其它服务器进行通信,就需要这个服务。
许多Web服务器仅仅是对请求进行应答而自身并不发出请求,这时就不需要DNSClient了。
●EventLog:
事件日志,用于记录程序和Windows发送的事件消息。
事件日志包含对诊断问题有所帮助的信息,可以在“事件查看器”中查看报告。
●LogicalDiskManager:
逻辑磁盘管理器监视狗服务,用于管理本地磁盘驱动器和可移动设备。
●NetworkConnections:
管理“网络和拨号连接”文件夹中对象,在其中可以查看局域网和远程连接。
●ProtectedStorage:
提供对敏感数据(如私钥)的保护性存储,以便防止未授权的服务、过程或用户对其的非法访问。
●RemoteProcedureCall(RPC):
远程过程调用服务,用于在一个系统上使用程序执行远程系统上的指令或程序。
●SecurityAccountsManager(SAM):
安全帐号管理服务,用于维护本地用户帐户的安全信息。
●WindowsManagementInstrumentation(WMI):
Windows管理器,提供系统管理信息,如果没有它,就没有可访问的管理控制台来执行系统管理。
●WindowsManagementInstrumentationDriverExtensions:
Windows管理器驱动器扩展,也是MMC所要求的,用于与驱动程序间交换系统管理信息。
以下是我们认为应该处于“手动”启动状态的基本服务:
●LogicalDiskManagerAdministrativeService:
逻辑硬盘管理器管理服务,是磁盘管理请求的系统管理服务。
●IISAdminService:
IIS管理服务。
●WorldWideWebPublishingService:
WWW发布服务,用于向Web站点设置的特定端口(通常是80)发布Web内容。
4、强化SAM数据库的保护
SAM数据库就是系统账户数据库,其中的内容属于一等机密,再怎么保护也不为过。
默认状态下,SAM是用本地存储的启动关键字来加密的,这个关键字中包含一个杂乱信息代码,它在启动过程中被处理进而将账户数据库解密并存储在内存中,从而被系统访问。
加密关键字的默认存储地点可以用Win2K命令行工具syskey.exe来修改:
因此,为了保护SAM数据库的安全,管理员可以使用这个工具将杂乱信息代码转移到软盘上,并注意为这个软盘制作多个备份,放置到一个非常安全的地方。
如果这个软盘丢失或损坏,就无法重新启动服务器了,因为再没有其它办法可以对用户账户和口令数据库进行解密。
另外,我们还应该对SAM数据库添加口令复杂性的要求,这是通过启动“本地安全策略”工具并启用其中的“密码必须符合复杂性要求”来完成的:
5、确定Web站点的口令访问策略
访问Web站点的不同内容可能需要不同的口令,考虑到相应的行为并设计好对策将极大地减少许多安全隐患。
例如:
服务器是只作为公共信息站点使用吗?
它允许不同权限的用户访问受保护的数据吗?
站点要求用户向其提交数据吗?
......通常,我们可以对所有的Internet服务器都执行相同的基本安全配置,然后再根据具体服务类型,进一步做出特殊安全设置。
比如:
如果服务器只是为公司提供一个Web上的存在,那最好就只允许匿名访问,这样就避免了服务器与客户之间的口令传递,并降低了攻击者探测服务器口令的可能性。
6、消除空连接安全漏洞
在Win2K中存在一种可能性:
攻击者可以使用一个所谓的空帐号登录到系统、建立一个空对话,从而获取服务器上用户和组帐号情况列表以及服务器上的所有共享资源列表。
呵呵,空手套帐号啊!
让这个“空手”真正落空的方法是修改注册表相关项目,方法分别是:
●禁止空连接获取帐号信息:
修改的键值及取值是
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\LSA,REG_DWORD,1
注意:
有些服务可能要使用空连接在网络上完成与其它服务器和系统通信的任务,所以如果修改注册表后发现这些服务工作不正常了,那就再修改回来吧。
摸着石头过河吗!
●禁止空连接获取共享资源:
修改的键值及取值是
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanManServer\Parameters\RestrictNullSessAccess,REG_DWORD,1
当这个值设置为1时,空连接用户将不能访问任何共享;如果设置为0,那么空连接用户就可以连接到所有对Everyone组共享的程序或打印机上。
注意:
修改这个键值可能会影响空连接对NamedPipes(名字管道)的访问。
NamedPipes就是一个系统上的程序与另一个不同系统上的程序通讯的功能。
在Win2K中设置了许多namedpipes,例如Winreg以IPC机制允许在一个客户机器上运行Regedit并访问远程服务器的注册表文件,Netlogon通过一个namedpipe使用RPC连接来进行登录认证,SMB(ServerMessageBlocks)使用namedpipes进行网络上服务器之间的通讯。
注册表中有关于空连接可以使用的namedpipes列表,键值如下:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanManServer\Parameters\NullSessionPipes
我们可以根据需要对以上列表中的字符串进行去除,但同样请注意:
如果发现有些服务工作不正常,请再修改回来。
7、去除对其他操作系统的支持
Win2K可以很好地支持其他操作系统,允许例如OS/2和POSIX的应用程序向服务器发送请求以执行代码。
这种功能通常叫做Win2K的子系统。
Win2K的子系统一般情况下不会用到,但却是一个很大的安全漏洞,应该采取措施堵住它。
关闭这个漏洞的最简单方法是去掉这个子系统,使它们无法使用。
放心,这不会给Win2K服务器或IIS带来任何问题,因为它们是在Win32子系统中运行的。
禁止OS/2和POSIX要通过删除相关文件和改写相关注册表键值来完成,步骤如下:
●删除“\%systemroot%\system32\os2”文件夹及其中所有内容。
●删除“\HKLM\Software\Microsoft\OS/2SubsystemforNT”下面所有的子键。
●删除“\HKLM\System\CurrentControlSet\Control\SessionManager\Environment”中的值Os2LibPath。
●清除“\HKLM\System\CurrentControlSet\Control\SessionManager\Subsystems”中Optional的内容,但是保留值Optional的名字。
●删除“\HKLM\System\CurrentControlSet\Control\SessionManager\SubSystems”中的值Os/2和Posix。
●重新启动。
8、合理调整页面文件的设置
需要处理的另一个问题是页面文件(pagefile)在系统上的存放位置。
当应用程序或系统程序需要访问物理RAM时,Win2K使用页面文件作为应用程序代码的临时保存区。
因此,硬盘驱动器上必须有足够的空间供页面文件使用,否则就会导致系统崩溃。
避免出现这种情况的方法有:
●在系统上尽可能多安装RAM。
可用的物理RAM越多,系统运行的效率越高。
●将所有的操作系统文件放置在自己的分区。
这个分区中应该只包含操作系统文件和一个至少相当于物理RAM大小的页面文件。
当系统遭遇一个STOP错误时,这个页面文件允许系统创建一个crashdump文件。
●至少在另外一个分区上创建一个页面文件,其大小大约为物理RAM+11MB。
如果可能的话,将这个页面文件放置在一个单独的物理驱动器上,这样系统执行I/O操作就更加有效。
●配置系统服务和生成日志文件及扩展数据的应用程序,使它们写入的文件不在操作系统所在的驱动器上。
四、结语
以上详细论述了使用Win2K和IIS5构建安全Internet网站的Win2K操作系统安全配置指南部分,如果是严格按照这些步骤装扮了Win2K,就可以说基本上做到了从“地面部分”全力堵截入侵者的攻击。
要做到从“空中部分”拦截入侵,请看“Win2KInternet服务器安全构建指南(IIS篇)”。
Win2KInternet服务器安全构建指南(IIS篇)
Win2K操作系统的一个主要特色就是将IIS融入其内核之中,并提供一些用来配置和维护软件的向导工具,使构建一个Internet网站轻松易得。
但是,如果要创建一个安全可靠的Internet网站,实现“地面部分”-Win2K操作系统和“空中部分”-IIS的双重安全,还需要更加全面和深入的工作。
本文就对这些稳固工作中的空中部分-IIS进行讨论,帮助管理员一步步地实施网站安全构建工作。
一、TCP/IP方面要重点考虑的安全配置信息
Win2K提供了三种方式对进站连接进行访问控制,以下分别介绍。
1、TCP/IP安全配置
Win2K中的TCP/IP安全配置与WindowsNT4.0中的执行方式完全相同,配置方法非常基本也非常简单,根本原则就是“全部允许或只允许”:
“全部允许”表示放行来自所有端口的通讯数据,“只允许”表示除了特别列出端口外的通讯数据都拒绝。
TCP/IP筛选虽然简单,但过滤总比没有过滤好,建议管理员不要漏掉这个防线。
2、对路由和远程访问服务(RoutingandRemoteAccessService,RRAS)形式的进站连接设置访问控制列表
路由和远程访问服务(RRAS)能够配置出更加灵活复杂的信息包过滤器,尽管过滤方式是静态的,但它的过滤细节却很多,包括信息包方向、IP地址、各种协议类型。
3、IPSecPolicyFilters(IP安全策略过滤器)
IPSecPolicyFilters由IPSecPolicyAgent(IP安全策略代理)强制执行,是Win2K操作系统的新生功能。
它弥补了传统TCP/IP设计上的“随意信任”重大安全漏洞,可以实现更仔细更精确的TCP/IP安全。
可以说,IPSec是一个基于通讯分析的策略,它将通讯内容与设定好的规则进行比较以判断通讯是否与预期相吻合,然后据此允许或拒绝通讯的传输。
这些规则叫做过滤器列表,管理员可以围绕各种不同的安全认证协议来设计它们,协议包括:
●Internet密钥交换协议(InternetKeyExchangeProtocol,IKE):
一种使VPN节点之间达成安全通信的协议,其功能强大、设计灵活。
●认证IP数据包(AuthenticationHeader,AH):
也就是将数据包中的数据和一个变化的数字签字结合起来,使得接收者能够确认数据发送者的身份以及确认数据在传输过程中没有被纂改过。
●EncapsulationSecurityPayload(ESP):
指使用硬件对数据包中的数据进行加密,使象Sniffer类的网络监听软件无法得到任何有用信息。
二、配置安全的IIS5
1、单独设置IIS服务器
如果可能,IIS应该安装在一个单独的服务器上。
就是说,这个服务器不是任何域中的成员,不必与域控制器建立Netlogon信道,从而降低通过服务器之间连接而建立起来的空用户连接所带来的安全风险。
而且,由于系统之间不传递认证通讯信息,也就降低了登录口令被截获的可能。
2、禁止不需要的服务
另外,如果仅仅是单纯的Web服务器,那么最好禁止掉以下不需要的服务:
3、合理设置Web根文件夹
同前面论述的将操作系统与应用程序单独存放在不同的分区或磁盘驱动器一样,现在又要使用到隔离技术了。
建议将Web根文件夹wwwroot定位在操作系统分区以外的地方甚至是另外的物理磁盘驱动器上。
而且,当设置Web站点的虚拟目录或重定向文件夹时,也要保证这些目录不会被重定向到操作系统的启动分区,因为有些攻击能够危及访问文件夹所在分区上的其它文件夹。
还有一种安全处理方式就是把Web根文件夹设置到另一个服务器上,使IIS服务器成为一个只缓冲请求、应答请求的系统。
而且,经过这样处理后,整个服务器基本上是一个通用型的,其上没有存储任何内容,即使站点遭到攻击而瘫痪,也可以从磁带或其它备份中快速简单地恢复服务器。
4、为重要系统文件改头换面
操作系统中有许多非常重要的文件,它们就象“双刃剑”,既可以让管理员方便地执行维护工作,又可能被攻击者利用进行破坏活动。
为此,建议对这些文件进行删除、重命名或者为其设置NTFS权限,目的就是使攻击者再也找不到熟悉的面孔。
这些文件包括:
5、删除危险的IIS组件
默认安装后的有些IIS组件可能会造成安全威胁,应该从系统中去掉,所谓“多一个组件,不如少一个组件”。
以下是一些“黑名单”参考,请管理员酌情考虑:
●Internet服务管理器(HTML):
这是基于Web的IIS服务器管理页面,一般情况下不应通过Web进行管理,建议卸载它。
●样本页面和脚本:
这些样本中有些是专门为显示IIS的强大功能设计的,但同样可被用来从Internet上执行应用程序和浏览服务器,这不是好事情,建议删除。
●Win2K资源工具箱或IIS资源工具箱:
这些由专家编写的软件大概是现在最好的黑客工具了,其中有许多项目可以被攻击者利用从服务器上提取信息、进行破坏。
●SMTP和NNTP:
如果不打算使用服务器转发邮件和提供新闻组服务,就删除这些项目吧。
否则,别因为它们的漏洞带来新的不安全。
●Internet打印:
Internet打印是Win2K中的一个新特性,它提供了通过Internet将打印作业题交给打印机的方式。
但是由于网络上的打印机是通过一个Web页面进行访问并管理的,所以也就使系统增加了许多受到利用的可能。
6、改写注册表降低被攻击风险
DDoS攻击现在很流行,例如SYN使用巨量畸形TCP信息包向服务器发出请求,最终导致服务器不能正常工作。
改写注册表信息虽然不能完全制止这类攻击,但是可以降低其风险,所以,建议搜索并实施相关攻击的注册表改写对策。
降低SYN攻击的注册表改写对策是:
将HKLM\System\CurrentControlSet\Services\Tcpip\Parameters下的SynAttackProtect的值修改为2。
7、简化IIS5中的验证方法
Win2K和IIS5紧密结合的一点就体现在它们共享了验证的功能和方法,这包括:
匿名访问、基本验证(密码用明文送出)、Windows域服务器的简要验证、集成Windows验证等等。
对于大多数Web站点来说,有匿名访问或基本认证就足够了,或者干脆只保留匿名访问形式。
在有些地方,最简单的往往是最有效的!
8、为IIS5中的文件分类设置权限
除了在操作系统级别为IIS5的文件设置必要的权限外,还要在IIS管理器中为它们设置权限,以期做到双保险。
一般而言,对一个文件夹永远也不应同时设置写和执行权限,以防止攻击者向站点上传并执行恶意代码。
还有目录浏览功能也应禁止,预防攻击者把站点上的文件夹浏览个遍最后找到“不忠的坏分子”。
一个好的设置策略是:
为Web站点上不同类型的文件都建立目录,然后给它们分配适当权限。
例如:
●Scripts目录:
包含站点的所有脚本文件,如cgi、vbs、asp等等,为这个文件夹设置“纯脚本”执行许可权限。
●BIN目录:
包含站点上的二禁止执行文件,应该为这个文件夹设置“脚本和可执行程序”执行许可权限。
●Static目录:
包括所有静态文件,如HTM或HTML,为这个文件夹设置“读权限”
9、全力保护IISmetabase
IISMetabase保存着包括口令在内的几乎IIS配置各个方面的内容,而且这些信息都以明文形式存储,因此保护它至关重要。
建议采取如下措施:
●把HTTP和FTP根文件夹从%systemroot%下移走
●慎重考虑重新命名Metabase和移动Metabase位置
●安全设置确定Metabase位置的注册表关键字
●审核所有试图访问并编辑Metabase的失败日志
●删除文件%systemroot%\system32\inetserv\Iissync.exe
●为Metabase文件设置以下权限:
Administrators/完全控制,System/完全控制
完成IIS配置后对Metabase进行备份,这时会创建文件夹%systemroot%\system32\inetserv\MetaBack,备份文件就存储在其中。
对于这个地方,要采取如下措施进行保护:
●审核对\MetaBack文件夹的所有失败访问尝试
●为\MetaBack文件夹设置如下权限:
Administrators/完全控制,System/完全控制
最后,要保护能够编辑Metabase的工具,步骤是:
●移走文件夹\Inetpub\Adminscripts,这里包含着IIS的所有管理脚本
●将"\programfile"文件下的Metaedit.exe和Metautil.dll移到%systemroot%\system32\Inetserv文件夹下,并调整相应的开始菜单快捷方式。
●审核对\Adminscripts文件夹的所有失败访问尝试
●对执行.V
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Win2K Internet服务器安全构建指南 Internet 服务器 安全 构建 指南