WindowsWeb服务器安全设置指南.docx

上传人:b****2 文档编号:3279281 上传时间:2023-05-05 格式:DOCX 页数:13 大小:28.37KB
下载 相关 举报
WindowsWeb服务器安全设置指南.docx_第1页
第1页 / 共13页
WindowsWeb服务器安全设置指南.docx_第2页
第2页 / 共13页
WindowsWeb服务器安全设置指南.docx_第3页
第3页 / 共13页
WindowsWeb服务器安全设置指南.docx_第4页
第4页 / 共13页
WindowsWeb服务器安全设置指南.docx_第5页
第5页 / 共13页
WindowsWeb服务器安全设置指南.docx_第6页
第6页 / 共13页
WindowsWeb服务器安全设置指南.docx_第7页
第7页 / 共13页
WindowsWeb服务器安全设置指南.docx_第8页
第8页 / 共13页
WindowsWeb服务器安全设置指南.docx_第9页
第9页 / 共13页
WindowsWeb服务器安全设置指南.docx_第10页
第10页 / 共13页
WindowsWeb服务器安全设置指南.docx_第11页
第11页 / 共13页
WindowsWeb服务器安全设置指南.docx_第12页
第12页 / 共13页
WindowsWeb服务器安全设置指南.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

WindowsWeb服务器安全设置指南.docx

《WindowsWeb服务器安全设置指南.docx》由会员分享,可在线阅读,更多相关《WindowsWeb服务器安全设置指南.docx(13页珍藏版)》请在冰点文库上搜索。

WindowsWeb服务器安全设置指南.docx

WindowsWeb服务器安全设置指南

一、安装补丁

  安装好Windows2003操作系统之后,在托管之前一定要完成补丁的安装,配置好网络后,最好安装上SP1,然后点击开始选择WindowsUpdate,安装所有的关键更新。

  二、安装杀毒软件

  目前的杀毒软件种类很多,其中瑞星、诺顿、卡巴斯基等都是很不错的选择。

不过,也不要指望杀毒软件能够杀掉所有的木马,因为ASP木马的特征是可以通过一定手段来避开杀毒软件的查杀。

  三、设置端口保护和防火墙

  Windows2003的端口屏蔽可以通过自身防火墙来解决,这样比较好,比筛选更有灵活性,桌面—>网上邻居—>属性—>本地连接—>属性—>高级—>Internet连接防火墙—>设置,把服务器上面要用到的服务端口选中,例如:

一台WEB服务器,要提供WEB(80)、FTP(21)服务及远程桌面管理(3389),在“FTP服务器”、“WEB服务器(HTTP)”、“远程桌面”前面打上对号,如果你要提供服务的端口不在里面,你也可以点击“添加”铵钮来添加,具体参数可以参照系统里面原有的参数。

然后点击确定。

  注意:

如果是远程管理这台服务器,请先确定远程管理的端口是否选中或添加。

  1、权限设置的原理

  1)WINDOWS用户,在WINNT系统中大多数时候把权限按用户(組)来划分。

在开始→程序→管理工具→计算机管理→本地用户和组,管理系统用户和用户组。

  2)NTFS权限设置,请记住分区的时候把所有的硬盘都分为NTFS分区,然后我们可以确定每个分区对每个用户开放的权限。

文件(夹)上右键→属性→安全,在这里管理NTFS文件(夹)权限。

  3)IIS匿名用户,每个IIS站点或者虚拟目录,都可以设置一个匿名访问用户(现在暂且把它叫“IIS匿名用户”),当用户访问你的网站的.ASP文件的时候,这个.ASP文件所具有的权限,就是这个“IIS匿名用户”所具有的权限。

  2、权限设置——磁盘权限

  系统盘及所有磁盘只给Administrators组和SYSTEM的完全控制权限

  系统盘\DocumentsandSettings目录只给Administrators组和SYSTEM的完全控制权限

  系统盘\DocumentsandSettings\AllUsers目录只给Administrators组和SYSTEM的完全控制权限

  系统盘\Inetpub目录及下面所有目录、文件只给Administrators组和SYSTEM的完全控制权限

  系统盘\Windows\System32\cacls.exe、cmd.exe、net.exe、net1.exe文件只给Administrators组和SYSTEM的完全控制权限

四、禁用不必要的服务

  开始菜单—>管理工具—>服务

  PrintSpooler

  RemoteRegistry

  TCP/IPNetBIOSHelper

  Server

  以上是在WindowsServer2003系统上面默认启动的服务中禁用的,默认禁用的服务如没特别需要的话不要启动。

  1、改名或卸载不安全组件

  在阿江探针1.9里加入了不安全组件检测功能(其实这是参考7i24的代码写的,只是把界面改的友好了一点,检测方法和他是基本一样的),这个功能让很多站长吃惊不小,因为他发现他的服务器支持很多不安全组件。

  其实,只要做好了上面的权限设置,那么FSO、XML、strem都不再是不安全组件了,因为他们都没有跨出自己的文件夹或者站点的权限。

  最危险的组件是WSH和Shell,因为它可以运行你硬盘里的EXE等程序,比如它可以运行提升程序来提升SERV-U权限甚至用SERVU来运行更高权限的系统程序。

  2、谨慎决定是否卸载一个组件

  组件是为了应用而出现的,而不是为了不安全而出现的,所有的组件都有它的用处,所以在卸载一个组件之前,你必须确认这个组件是你的网站程序不需要的,或者即使去掉也不关大体的。

否则,你只能留着这个组件并在你的ASP程序本身上下工夫,防止别人进来,而不是防止别人进来后SHELL。

  比如,FSO和XML是非常常用的组件之一,很多程序会用到他们。

WSH组件会被一部分主机管理程序用到,也有的打包程序也会用到。

  五、卸载最不安全的组件

  最简单的办法是直接卸载后删除相应的程序文件。

将下面的代码保存为一个.BAT文件。

  regsvr32/uC:

\WINDOWS\System32\wshom.ocx

  delC:

\WINDOWS\System32\wshom.ocx

  regsvr32/uC:

\WINDOWS\system32\shell32.dll

  delC:

\WINDOWS\system32\shell32.dll

  然后运行一下,WScript.Shell,Shell.application,WScript.Network就会被卸载了。

可能会提示无法删除文件,不用管它,重启一下服务器,你会发现这三个都提示“×安全”了。

  需要注意的是组件的名称和Clsid都要改,并且要改彻底了。

下面以Shell.application为例来介绍方法。

  打开注册表编辑器,开始→运行→regedit回车,编辑→查找→填写Shell.application→查找下一个,用这个方法能找到两个注册表项:

{13709620-C279-11CE-A49E-444553540000}和Shell.application。

为了确保万无一失,把这两个注册表项导出来,保存为.reg文件。

  比如我们想做这样的更改:

把13709620-C279-11CE-A49E-444553540000改名为13709620-C279-11CE-A49E-444553540001,把Shell.application改名为Shell.application_ajiang。

  那么,就把刚才导出的.reg文件里的内容按上面的对应关系替换掉,然后把修改好的.reg文件导入到注册表中(双击即可),导入了改名后的注册表项之后,别忘记了删除原有的那两个项目。

这里需要注意一点,Clsid中只能是十个数字和ABCDEF六个字母。

  下面是修改后的代码,两个文件合到一起了:

  WindowsRegistryEditorVersion5.00

  [HKEY_CLASSES_ROOT\CLSID\{13709620-C279-11CE-A49E-444553540001}]

  @="ShellAutomationService"

  [HKEY_CLASSES_ROOT\CLSID\{13709620-C279-11CE-A49E-444553540001}\InProcServer32]

  @="C:

\\WINNT\\system32\\shell32.dll"

  "ThreadingModel"="Apartment"

  [HKEY_CLASSES_ROOT\CLSID\{13709620-C279-11CE-A49E-444553540001}\ProgID]

  @="Shell.Application_ajiang.1"

  [HKEY_CLASSES_ROOT\CLSID\{13709620-C279-11CE-A49E-444553540001}\TypeLib]

  @="{50a7e9b0-70ef-11d1-b75a-00a0c90564fe}"

  [HKEY_CLASSES_ROOT\CLSID\{13709620-C279-11CE-A49E-444553540001}\Version]

  @="1.1"

  [HKEY_CLASSES_ROOT\CLSID\{13709620-C279-11CE-A49E-444553540001}\VersionIndependentProgID]

  @="Shell.Application_ajiang"

  [HKEY_CLASSES_ROOT\Shell.Application_ajiang]

  @="ShellAutomationService"

  [HKEY_CLASSES_ROOT\Shell.Application_ajiang\CLSID]

  @="{13709620-C279-11CE-A49E-444553540001}"

  [HKEY_CLASSES_ROOT\Shell.Application_ajiang\CurVer]

  @="Shell.Application_ajiang.1"

六、防止列出用户组和系统进程

  在阿江ASP探针1.9中结合7i24的方法利用getobject("WINNT")获得了系统用户和系统进程的列表,这个列表可能会被黑客利用,我们应当隐藏起来,方法是:

  开始→程序→管理工具→服务,找到Workstation,停止它,禁用它。

  1、防止Serv-U权限提升

  其实,注销了Shell组件之后,侵入者运行提升工具的可能性就很小了,但是prel等别的脚本语言也有shell能力,为防万一,还是设置一下为好。

  用Ultraedit打开ServUDaemon.exe查找Ascii:

LocalAdministrator,和#l@$ak#.lk;0@P,修改成等长度的其它字符就可以了,ServUAdmin.exe也一样处理。

  另外注意设置Serv-U所在的文件夹的权限,不要让IIS匿名用户有读取的权限,否则人家下走你修改过的文件,照样可以分析出你的管理员名和密码。

  2、利用ASP漏洞攻击的常见方法及防范

  一般情况下,黑客总是瞄准论坛等程序,因为这些程序都有上传功能,他们很容易的就可以上传ASP木马,即使设置了权限,木马也可以控制当前站点的所有文件了。

另外,有了木马就然后用木马上传提升工具来获得更高的权限,我们关闭shell组件的目的很大程度上就是为了防止攻击者运行提升工具。

  如果论坛管理员关闭了上传功能,则黑客会想办法获得超管密码,比如,如果你用动网论坛并且数据库忘记了改名,人家就可以直接下载你的数据库了,然后距离找到论坛管理员密码就不远了。

  作为管理员,我们首先要检查我们的ASP程序,做好必要的设置,防止网站被黑客进入。

另外就是防止攻击者使用一个被黑的网站来控制整个服务器,因为如果你的服务器上还为朋友开了站点,你可能无法确定你的朋友会把他上传的论坛做好安全设置。

这就用到了前面所说的那一大堆东西,做了那些权限设置和防提升之后,黑客就算是进入了一个站点,也无法破坏这个网站以外的东西。

基于Windows平台下IIS运行的网站总给人一种感觉就是脆弱。

早期的IIS确实存在很多问题,不过我个人认为自从WindowsServer2003发布后,IIS6及WindowsServer2003新的安全特性、更加完善的管理功能和系统的稳定性都有很大的增强。

虽然从WindowsServer2003上可以看到微软不准备再发展ASP,特别是不再对Access数据库的完好支持,但是面对它的那些优势迫使我不得不舍弃Windows2000Server。

况且我也不需要运行太多的ASP+Access,因为我的程序都是PHP+MySQL(说实话我不喜欢微软的ASP和ASPNET),而且我确实信赖WindowsServer2003!

  服务器、网站,看到这些词大家都会想到什么,不只是性能更加关注的是它的安全问题。

很多人都无法做到非常完美的安全加固,因为大部分的资料都来源互联网,而互联网的资料总不是那么详尽,毕竟每个服务器的应用环境及运行程序不同。

  我从事互联网这个行业只有2年时间,其间遇到了很多问题,我所管理的服务器部分是开放式(PUBLIC)的,它是向互联网的用户敞开的,所以我所面临的问题就更加的多!

安全性首当其要,其次是系统的稳定性,最后才是性能。

要知道服务器上存在很多格式各样的应用程序,有些程序本身就有缺陷,轻者造成服务器当机,严重的会危及到服务器的整个数据安全。

  举个例子,有一台运行着300多个网站的Windows2000Server,一段时间里它经常Down机,发现内存泄漏特别快,几分钟时间内存使用立刻飙升到900M甚至高达1.2G,这个时候通过远程是无法访问服务器了,但是服务器系统本身却还在运行着。

这个问题着实让我头疼了很长一段时间,因为如果要排查故障就要从这些网站入手,而网站的数量阻碍了我的解决进度。

后来通过Filemon监控文件读取来缩小排查范围,之后对可疑网站进行隔离,最终找到故障点并解决。

要知道一段小小的代码就可以让运行IIS5的Windows2000Server挂掉!

而在WindowsServer2003下,应用程序的级别低中高级变更为了程序池,这样我们就可以对一个池进行设置对内存和CPU进行保护。

它的这一特性让我减轻了很多的工作量并且系统也稳定了很多。

  另外严重的就是安全性的问题了,无论任何文章都有一个宗旨就是尽量在服务器少开放端口,并开放必要的服务,禁止安装与服务器无关的应用程序。

在Windows2000Server中,目录权限都是Everyone,很多服务都是以SYSTEM权限来运行的,如Serv-UFTP这款出色的FTP服务器平台曾经害苦了不少人,它的溢出漏洞可以使入侵者轻松的获取系统完全控制权,如果做到呢?

就是因为Serv-UFTP服务使用SYSTEM权限来运行,SYSTEM的权利比Administrator的权利可大的多,

窗体顶端

窗体底端

注册表SAM项它是可以直接访问和修改的,这样入侵者便利用这一特性轻松在注册表中克隆一个超级管理员账号并获取对系统的完全控制权限。

  我的目标:

加固WEB服务器系统,使之提高并完善其稳定性及安全性。

  系统环境:

WindowsServer2003EnterpriseEditionWithServicePack1(以下简称W2k3SP1),WEB平台为IIS6,FTP平台为Serv-UFTPServer

  安装配置操作系统

  安装操作系统,在安装前先要先去调整服务器的BIOS设置,关闭不需要的I/O,这样节省资源又可以避免一些硬件驱动问题。

务必断开服务器与网络的连接,在系统没有完成安全配置前不要将它接入网络。

在安装过程中如果网卡是PNP类型的,那么应当为其网络属性只配置允许使用TCP/IP协议,并关闭在TCP/IP上的NETBIOS,为了提供更安全的保证,应该启用TCP/IP筛选,并不开放任何TCP端口。

完成操作系统的安装后,首次启动W2K3SP1,会弹出安全警告界面,主要是让你立刻在线升级系统更新补丁,并配置自动更新功能,这个人性化的功能是W2K3SP1所独有的,在没有关闭这个警告窗口前,系统是一个安全运行的状态,这时我们应当尽快完成系统的在线更新。

  修改Administrator和Guest这两个账号的密码使其口令变的复杂,并通过组策略工具为这两个敏感账号更名。

修改位置在组策略中ComputerConfiguration-WindowsSettings-SecuritySetting-LocalPolicies-SecurityOptions下,这样做可以避免入侵者马上发动对此账号的密码穷举攻击。

  服务器通常都是通过远程进行管理的,所以我使用系统自带的组件“远程桌面”来对系统进行远程管理。

之所以选择它,因为它是系统自带的组件缺省安装只需要去启用它就可以使用,支持驱动器映射、剪切板映射等应用,并且只要客户端是WindowsXPPRO都会自带连接组件非常方便,最主要还有一点它是免费的。

当然第三方优秀的软件也有如:

PCAnyWhere,使用它可以解决RemoteDesktop无法在本地环境模式下工作的缺点。

为了防止入侵者轻易地发现此服务并使用穷举攻击手段,可以修改远程桌面的监听端口:

  1.运行Regedt32并转到此项:

  HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TerminalServer\

  WinStations\RDP-Tcp

  注意:

上面的注册表项是一个路径;它已换行以便于阅读。

  2.找到“PortNumber”子项,您会看到值00000D3D,它是3389的十六进制表示形式。

使用十六进制数值修改此端口号,并保存新值。

  要更改终端服务器上某个特定连接的端口,请按照下列步骤操作:

运行Regedt32并转到此项:

  HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TerminalServer\

  WinStations\connection

  注意:

上面的注册表项是一个路径;它已换行以便于阅读。

  3.找到“PortNumber”子项,您会看到值00000D3D,它是3389的十六进制表示形式。

使用十六进制数值修改此端口号,并保存新值。

  注意:

由于在终端服务器4.0版中尚未完全实现备用端口功能,因此只是“在合理的限度内尽量”提供支持,如果出现任何问题,Microsoft可能要求您将端口重设为3389。

  原文来源:

微软知识库KB187623。

当然为了达到更加安全的访问,还可以采用IPSec来保护远程桌面的连接访问。

  禁用不必要的服务不但可以降低服务器的资源占用减轻负担,而且可以增强安全性。

下面列出了可以禁用的服务:

  ApplicationExperienceLookupService

  AutomaticUpdates

  BITS

  ComputerBrowser

  DHCPClient

  ErrorReportingService

  HelpandSupport

  NetworkLocationAwareness

  PrintSpooler

  RemoteRegistry

  SecondaryLogon

  Server

  Smartcard

  TCP/IPNetBIOSHelper

  Workstation

  WindowsAudio

  WindowsTime

  WirelessConfiguration

  打开服务器本地计算机策略(gpedit.msc),参考以下选择和修改对服务器进行加固:

  1.设置帐号锁定阀值为5次无效登录,锁定时间为30分钟;

  2.从通过网络访问此计算机中删除Everyone组;

  3.在用户权利指派下,从通过网络访问此计算机中删除PowerUsers和BackupOperators;

  4.为交互登录启动消息文本。

  5.启用不允许匿名访问SAM帐号和共享;

  6.启用不允许为网络验证存储凭据或Passport;

  7.启用在下一次密码变更时不存储LANMAN哈希值;

  8.启用清除虚拟内存页面文件;

  9.禁止IIS匿名用户在本地登录;

  10.启用交互登录:

不显示上次的用户名;

  11.从文件共享中删除允许匿名登录的DFS$和COMCFG;

  12.禁用活动桌面。

  强化TCP协议:

  WindowsRegistryEditorVersion5.00

  [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]

  "SynAttackProtect"=dword:

00000001

  "EnablePMTUDiscovery"=dword:

00000000

  "NoNameReleaseOnDemand"=dword:

00000001

  "EnableDeadGWDetect"=dword:

00000000

  "KeepAliveTime"=dword:

00300000

  "PerformRouterDiscovery"=dword:

00000000

  "TcpMaxConnectResponseRetransmissions"=dword:

00000003

  "TcpMaxHalfOpen"=dword:

00000100

  "TcpMaxHalfOpenRetried"=dword:

00000080

  "TcpMaxPortsExhausted"=dword:

00000005

  安装和配置IIS

  进入Windows组件安装,找到应用程序服务器,进入详细信息,勾选ASP.NET后,IIS必须的组件就会被自动选择,如果你的服务器需要运行ASP脚本,那么还需要进入Internet信息服务(IIS)-万维网服务下勾选ActiveServerPages。

完成安装后,应当在其他逻辑分区上单独建立一个目录用来存储WEB网站程序及数据。

  一台WEB服务器上都运行着多个网站,他们之间可能互不相干,所以为了起到隔离和提高安全性,需要建立一个匿名WEB用户组,为每一个站点创建一个匿名访问账号,将这些匿名账号添加到之前建立的匿名WEB用户组中,并在本地计算机策略中禁止此组有本地登录权限。

  最后优化IIS6应用程序池设置:

  1.禁用缺省应用程序池的空闲超时;

  2.禁用缓存ISAPI扩展;

  3.将应用程序池标识从NetworlService改为LocalService;

  4.禁用快速失败保护;

  5.将关机时间限制从90秒改为10秒;

  6.内存回收下最大使用的内存改为300M;

  注:

应根据当前服务器运营的业务进行评估并对某些网站配置应用程序池,这样可以降低当机率,并且也保证网站的可访问率,同时在出现故障时可以方便的排查。

  安装和配置Serv-UFTPServer

  这里之所以要将Serv-UFTPServer作为部署案例,是因为Serv-U使用者之多,操作及管理方便。

并且从Serv-U的配置上大家应该能够理解到我开头说提到的服务运行权限。

Serv-U的安装不再复述,很多人在安装后就开始直接使用,自从Serv-U的溢出漏洞出现使我开始重新认识和思考关于服务的运行权限问题,通常Serv-U是以SYSTEM权限来运行服务的,这样的好处是我们可以轻松的访问系统任何一个角落,包括注册表(在Serv-U溢出后,可以直接访问注册表中账号存储设定的关键项SAM),但是后果也是非常可怕的,所以分析了目前的服务器情况,为了方便起见我创建了一个具有管理员身份的账号来运行Serv-U,这样做是为了不需要重复的去设置目录权限,同时解决低级权限所可能造成的兼容性问题。

但是为了保证这个账号的安全,需要禁止它具有远程桌面访问权利,禁止有本地登录的权利。

  TCP/IP端口筛选vsIPSec策略

  在确定我们所要开放的服务之后就要去配置端口,是使用TCP/IP筛选还是IPSec?

其实我很少用到IPSec,因为它是IP安全设置,除了我要禁止一个用户来访问我或配置一个特定的连接访问我几乎不去用IPSec。

也去是因为我太懒了,只会记得要开放什么端口。

  在我看来,TCP/IP端口筛选和IPSec是相辅相成的,普通的应用

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2