一直以来,很少在网络上看到关于windows服务器管理的全方面的文章,即使是在windows网络安全设置方面,虽然网络上有着不少的关于这个方面的话题,但是这些文章当中并没有完全彻底的贯彻“最少的服务+最小的权限=最大的安全”这一原则,笔者由于前段时间工作于一家虚拟主机提供商,因工作需要对此进行了深入的探索。本文所有的环境均是在windows 2000 adv server上测试,因此部分内容可能不适合于windows 2003系统,但是大部分内容是通用的。这里我们以虚拟主机为例来探讨。
第一部分 服务器安全设置
安装之前的准备工作
很多时候,一部分的安全问题在你将windows安装光盘放入光驱中的时候就已产生,所以,在安装之前我们必须做好一些必要的准备工作。主要包括安装源和物理介质的安全检查以及服务器的安全规划。这部分内容主要包括以下几个方面:1. 确保你的安装光盘没有任何问题,这里所说的是指光盘内容没有经过第三方加以修改和光盘没有遭到物理损坏。对于刻录的安装光盘请确认你的源文件安全可靠,尽量使用集成了SP4的安装光盘,以减少后面打补丁的工作量。2. 确保你的硬盘没有任何问题,请尽量使用新硬盘,对于使用过的硬盘应先进行低级格式化。无论新旧硬盘需要确认硬盘本身没有遭受到病毒感染。3. 规划好系统安装过程与服务器的所需要的程序、服务等并准备好这些安装程序且确保这些安装程序没有任何问题,尽量使用官方提供的安装程序。规划好硬盘的分区以及各分区的功用。分区方案建议分四个分区,将系统存放在C盘,应用程序放在D盘,备份文件和一些重要的日志等放在E盘,用户站点等放在F盘中,尽可能少的向系统盘写入非系统文件以减少系统备份的工作量,至于各分区的容量视情况而定。不要安装任何多余的程序或组件,遵循“最少的服务+最小的权限=最大的安全”原则。4.完成之后以上工作,对bios进行所需的相关设置,便可以进行安装了,如需要做raid,则需要在安装前完成raid的设置工作。安装时磁盘格式请务必使用NTFS格式,安装过程中请更改windows安装目录,避免使用默认的winnt目录,安装过程中的密码设置可在此处先简单设置一个熟悉的密码[此处不推荐使用空密码]。
安装过程中的安全问题
安装过程中需要注意的问题有以下几个方面:1.磁盘的分区容量视情况而定,磁盘格式务必要使用NTFS格式,在安装过程中请更改windows安装目录,避免使用默认的winnt目录作为系统目录,安装过程中的密码设置可在此处简单设置一个密码,尽量不要使用空密码,尽管此时没有连接到网络,但是一些物理安全问题仍然要重视。2.安装过程中对于组件的安装只安装必须的组件,对于不需要的组件或者所需要的组件中多余的部分一概舍弃不进行安装。例如WEB服务器的IIS组件我们只安装Internet服务管理器、world wide web服务器、公用文件三部分即可。对于这些组件、程序的安装一定要遵循“最少的服务+最小的权限=最大的安全”原则。3.其他安装过程根据需要进行相关的设置即可,安装完毕之后重新启动系统,安装完驱动程序后重新启动系统,接下来将安装所有必须的软件部分如winrar等。[如果部分应用软件需要到网络上下载请先做完后面的一些安全设置] 4.安装软件所必须注意的问题:对于所有的软件安装在规划的软件安装盘下,软件安装目录尽量不要用默认的Program Files目录,可以建立一个其他名称的目录放置应用程序。
安装后的服务器安全设置
安装好操作系统之后,不要急于连上网络,此时的系统安全是十分脆弱的,需要首先进行一些基本的设置。1.设置相关安全策略: 打开“本地安全策略”,推荐设置如下:密码策略设置为:启用密码必须符合复杂性要求,设置密码最小长度值为8,密码最长驻留期30天,最短0天,强制保留密码历史为5个记住的密码。帐户锁定策略设置为:复位帐户锁定计数器设置为30分钟之后,帐户锁定时间为60分钟,帐户锁定阈值为3次无效登陆。 审核策略设置为:策略更改(成功、失败);登陆事件(成功、失败);对象访问(失败);目录服务访问(失败);特权使用(失败);系统事件(成功、失败);帐户登陆事件(成功、失败);帐户管理(成功、失败)。 用户权利指派中将拒绝从网络访问这台计算机中添加guest帐号。 安全选项中需要设置的有:登陆屏幕不显示上次登陆的用户名对匿名连接的额外限制更改为“不允许枚举SAM帐号和密码”防止用户安装打印机驱动禁止未签名驱动程序、非驱动程序的安装,禁止在未登陆前关机设置只有本地登陆的用户才能访问CD-ROM和软盘2. 重新命名administrator用户,按照密码策略修改密码。[下文为阐述方便,仍将改名后的administrator称为administrator]。可以另创建一个管理员用户,日常管理使用只其中一个,备用帐号只作为忘记密码或者系统被入侵管理帐号密码被更改时应急之用。禁用或删除掉guest帐号(手工或工具均可,推荐删除guest)。3.设置相关服务=========================================================================默认安装之后需要更改的服务设置有以下:必须禁用的服务:以下服务危险性较大,必须禁用[先停止服务再将属性设置为已禁用]。
禁用Remote Registry服务 [说明:禁止远程连接注册表]禁用task schedule服务 [说明:禁止自动运行程序]禁用server服务 [说明:禁止默认共享]禁用Telnet服务 [说明:禁止telnet远程登陆]禁用workstation服务 [说明:防止一些漏洞和系统敏感信息获取]
推荐设置的服务:以下服务一般并不需要用到,推荐关闭并将启动方式设为手动和禁止:
服务名称 适用情况说明Alerter [不需要管理警报] ClipBook [不需要查看远程剪贴簿的剪贴页面]Fax Service [不需要发送或接收传真]Indexing Service [不提供远程文件索引和快速访问或者没有连上局域网]Internet Connection Sharing [不需要共享连接网络] IPSEC Policy Agent [如连接要windows域该服务需要开启]Messager [未连接到Windows 2000的域并且不需要管理警报]Net Logon [不需要让局域网的其他用户登陆]NetMeeting Remote Desktop Sharing [不需要使用NetMeeting远程管理计算机]Network DDE [提高安全性]Network DDE DSDM [提高安全性]TCP/IP NetBIOS Helper Service [服务器不需要开启共享]RunAs Service [不需要在某一用户态下用另外一用户执行程序]Wireless Configuration [不需要无线网络]QoS RSVP [不需要使用依赖于QoS的程序] Remote Access Auto Connection Manager [不需要让程序读取网络信息时自动连接到网络]Routing and Remote Access [机器不做路由之用]Smart Card [没有智能卡阅读器和智能卡] Smart Card Helper [没有旧式智能卡阅读器和智能卡]Uninterruptible Power Supply [没有使用UPS或者UPS不支持双向传输信号]Utility Manager [不从一个窗口中启动和配置辅助工具]
经过以上设置之后,对服务进行复查,一般开放的服务为以下几个:Automatic UpdatesCOM+ Event SystemEvent LogIPSEC Policy AgentLogical Disk ManagerPlug and PlayProtected StorageRemote Access Connection ManagerRemote Procedure Call (RPC)Removable StorageSecurity Accounts ManagerSystem Event NotificationTelephonyWindows Management InstrumentationWindows Management Instrumentation Driver Extensions
其他服务根据需要决定是否开放,如web服务需要开放的服务:IIS AdminWorld Wide Web
4.修改部分注册表项目[注意修改前要备份,修改完成后重新启动计算机]:
关闭 NTFS 8.3 名称生成:NTFS 可以自动生成 8.3 个名称以与 16 位应用程序实现反向兼容。由于 16 位应用程序不应该在安全 Web 服务器上使用,因此可以安全关闭 8.3 名称生成。还应该注意,对此进行设置还存在性能上的优势。关闭8.3文件名:HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlFileSystem将NtfsDisable8dot3NameCreation设置为1
删除OS/2和POSIX子系统:删除HKEY_LOCAL_MACHINESOFTWAREMicrosoftOS/2 Subsystem for NT分支;删除HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerEnvironment中的Os2LibPath项;删除HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerSubSystems中的Os2和Posix项。然后删除winntsystem32下的os2文件夹。
抵御DDOS攻击设置:
抵御DDOS攻击的注册表修改可以直接导入下面的注册表文件,直接导入之后重新启动系统即可生效。相关修改如下:Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters]"ForwardBroadcasts"=dword:00000000"IPEnableRouter"=dword:00000000"Domain"="""SearchList"="""UseDomainNameDevolution"=dword:00000001"EnableICMPRedirect"=dword:00000001"DeadGWDetectDefault"=dword:00000001"DontAddDefaultGatewayDefault"=dword:00000000"EnableSecurityFilters"=dword:00000000"AllowUnqualifiedQuery"=dword:00000000"PrioritizeRecordData"=dword:00000001"ReservedPorts"=hex(7):31,00,34,00,33,00,33,00,2d,00,31,00,34,00,33,00,34,00,00,00,00,00"DisableTaskOffload"=dword:00000001"DefaultTTL"=dword:00000040"TcpRecvSegmentSize"=dword:000005b4"GlobalMaxTcpWindowSize"=dword:00002000"TcpWindowSize"=dword:00002000"EnablePMTUDiscovery"=dword:00000000"EnablePMTUBHDetect"=dword:00000001"SackOpts"=dword:00000001"Tcp1323Opts"=dword:00000003"SynAttackProtect"=dword:00000002"TcpMaxConnectResponseRetransmissions"=dword:00000001"TcpMaxPortsExhausted"=dword:00000005"TcpMaxHalfOpen"=dword:000001f4"TcpMaxHalfOpenRetried"=dword:00000190"KeepAliveTime"=dword:00007530"TcpTimedWaitDelay"=dword:0000001e
4.重新启动服务器后检查各种服务运行是否正常,简单设置各磁盘权限,将C盘设置为administrator和system完全控制,D、E、F盘设置为administrator完全控制,并且重置所有子对象的权限。5.安装防火墙和杀毒软件,可使用macfee的杀毒软件和防火墙。6.更改日志文件默认保存目录,将应用程序日志、系统日志、安全日志更改到E:event目录[需要修改注册表以更改],调整日志文件大小,将该目录只允许system有写入权限和administrator完全控制权限。7.设置网络连接,在属性里只保留TCP/IP协议,禁用TCP/IP上的netbios。[最彻底的禁用netbios的方法是在“设备管理器”中显示隐藏的设备,在“非即插即用设备”中禁用netbios。]8.重新启动系统,设置IE的安全等级为高,连接网络,打好所有可用补丁,升级杀毒软件。重新启动计算机。9.安装完成所有应用软件。如PHP、ActivePerl、Serv-U、mysql、pcanywhere等,PHP、ActivePerl和mysql请不要安装在默认的php、usr、mysql目录下,其他程序可默认安装在Program Files下,但不要采用默认目录。安装相关所需要的组件(如jmail、动易组件等)和相关系统维护工具。10.安装完所有的应用程序之后,重新启动服务器,调试所有的应用程序都工作正常之后,再根据需要对应用程序进行相关的安全设置,相关设置见第二章。11.设置完成之后重新启动计算机,确定应用程序均工作正常。然后进行权限设置[以下以web服务器权限设置为例],这是笔者反复实验所得到的最小的权限设置:
C盘根目录 给system和administrator用户完全控制权限,将权限继承下去C:Program filescommon filessystem 给users组读取、列目录、执行权限C:WINNTTemp 给users组读取、写入权限C:winntsystem32inetsrv下的除MetaBase.bin外所有文件(不包含目录)给users组列目录、读取、执行权限C:winntsystem32下的所有非exe、com、msc文件(注意是文件,不包含目录) 给users组读取和执行权限再给c:winntsystem32dllhost.exe 给users读取和执行权限如果有PHP给C:WINNTphp.ini 给users读取权限还需要给PHP、MYSQL目录 给users读取、列目录、执行权限 这样设置之后只有c:winnttemp目录有写入权限了,如果你还有更高的要求,可更改环境变量将tmp和temp将c:winnttemp更改为其他盘下的目录,权限设置成一样,然后重新启动删除掉c;winnttemp。然后去除部分危险命令的system权限以防止缓冲区溢出等安全问题引发的安全问题。首先可以将cacls设置为拒绝任何人访问,然后取消下列命令的system访问权限:At cmd cscript ftp net net1 netstat runas telnet tftp tlntadmn wscript12.以上设置完成之后,设置TCP/IP筛选,TCP只开放80,20,21,25,110,5631,1433,3306,4001-4003[根据各人主机情况按需要开放],这些端口分别对应于:80:web服务 20:FTP主动模式 21:FTP服务 25:SMTP[mail服务] 110:POP3[mail服务] 5631:远程管理[pcanywhere] 4001-4003:FTP被动模式[需要在serv-u中将被动模式设置成该端口范围] 1433:MSSQL服务 3306:MySQL服务13.设置IP策略,IP策略的相关设置为: 允许的策略为: 允许所有IP连接本服务器策略设置和TCP/IP筛选一致,这里不做阐述。除此之外可开放本机对外的ICMP协议。 拒绝的策略为: 禁止任何IP与本服务器的除TCP、UDP外的所有协议,禁止本机与任何IP的除TCP、UDP、ICMP的所有协议。另外需要禁止任何IP对本机的TCP135、137、138、139、445、3389端口的访问,禁止UDP69端口的访问。14.给一些黑客常用的文件类型更改掉打开的方式,在“文件类型”中将bat,vbs,vbe,reg文件类型修改成默认使用notepad打开。设置使用Windows传统风格的桌面和文件夹。如还有其他应用程序,安装完成之后给予对应权限。15.所有工作均完成之后,重新启动计算机,设置macfee的病毒策略和防火墙策略,这里以web服务器和winwebmail邮件服务器为例进行设置。
Web服务器的设置为:端口阻挡设置为:除默认设置外,勾选以下几条:禁止从玩维网下载,禁止FTP出站通讯。文件、共享和文件夹保护设置为:阻挡对所有共享资源的读写访问[除非有其他需要开放的设置],要阻挡的文件和文件夹可全部勾选,必须注意,在后期更新系统补丁或安装软件等工作时必须先将此处的相关保护取消。缓冲区溢出保护设置为:启用缓冲区溢出保护。有害程序策略设置为:全部勾选。
邮件服务器的设置为:设置 WinWebMail 的杀毒产品名称为“McAfee VirusScan for Win32”并指定有效的执行程序路径。请将执行程序路径指向: 系统盘符:Program FilesCommon FilesNetwork Associates 目录或其子目录下的 SCAN.EXE 文件。
注意1:必须使用缺省的执行程序文件名。使用 McAfee 时就必须指向 SCAN.EXE 文件,而不能使用其他文件(如:SCAN32.EXE),否则不但无法查毒,并且会影响邮件系统的正常工作。 注意2:SCAN.EXE 文件并不在其安装目录下!
禁用 VirusScan 的电子邮件扫描功能。在 VirusScan 扫描属性下“所有进程 | 检测”中的“排除磁盘、文件和文件夹”内,点击“排除”按钮,在其“设置排除”中添加一个排除设置将安装 WinWebMail 的目录以及所有子目录都设为排除。必须要设置排除,否则有可能出现邮件计数错误,从而造成邮箱满的假象。在 McAfee 控制台中有“访问保护”项中必须在其规则中不要选中“禁止大量发送邮件的蠕虫病毒发送邮件”项。否则会引起“Service unavailable”错误。
至于防火墙策略和TCP/IP筛选和IP策略相近,这里不多说,只是在程序访问规则中将需要访问网络的程序要进行相关设置。
§1.2 专用服务器的安全设置
WEB服务器安全设置
IIS的相关设置:删除默认建立的站点的虚拟目录,停止默认web站点,删除对应的文件目录c:inetpub,配置所有站点的公共设置,设置好相关的连接数限制,带宽设置以及性能设置等其他设置。配置应用程序映射,删除所有不必要的应用程序扩展,只保留asp,php,cgi,pl,aspx应用程序扩展。对于php和cgi,推荐使用isapi方式解析,用exe解析对安全和性能有所影响。用户程序调试设置发送文本错误信息给客户。对于数据库,尽量采用mdb后缀,不需要更改为asp,可在IIS中设置一个mdb的扩展映射,将这个映射使用一个无关的dll文件如C:WINNTsystem32inetsrvssinc.dll来防止数据库被下载。设置IIS的日志保存目录,调整日志记录信息。设置为发送文本错误信息。修改403错误页面,将其转向到其他页,可防止一些扫描器的探测。另外为隐藏系统信息,防止telnet到80端口所泄露的系统版本信息可修改IIS的banner信息,可以使用winhex手工修改或者使用相关软件如banneredit修改。对于用户站点所在的目录,在此说明一下,用户的FTP根目录下对应三个文件佳,wwwroot,database,logfiles,分别存放站点文件,数据库备份和该站点的日志。如果一旦发生入侵事件可对该用户站点所在目录设置具体的权限,图片所在的目录只给予列目录的权限,程序所在目录如果不需要生成文件(如生成html的程序)不给予写入权限。因为是虚拟主机平常对脚本安全没办法做到细致入微的地步,更多的只能在方法用户从脚本提升权限:
ASP的安全设置:设置过权限和服务之后,防范asp木马还需要做以下工作,在cmd窗口运行以下命令:regsvr32/u C:WINNTSystem32wshom.ocx del C:WINNTSystem32wshom.ocxregsvr32/u C:WINNTsystem32shell32.dlldel C:WINNTsystem32shell32.dll即可将WScript.Shell, Shell.application, WScript.Network组件卸载,可有效防止asp木马通过wscript或shell.application执行命令以及使用木马查看一些系统敏感信息。另法:可取消以上文件的users用户的权限,重新启动IIS即可生效。但不推荐该方法。另外,对于FSO由于用户程序需要使用,服务器上可以不注销掉该组件,这里只提一下FSO的防范,但并不需要在自动开通空间的虚拟商服务器上使用,只适合于手工开通的站点。可以针对需要FSO和不需要FSO的站点设置两个组,对于需要FSO的用户组给予c:winntsystem32scrrun.dll文件的执行权限,不需要的不给权限。重新启动服务器即可生效。对于这样的设置结合上面的权限设置,你会发现海阳木马已经在这里失去了作用!
PHP的安全设置:默认安装的php需要有以下几个注意的问题:C:winntphp.ini只给予users读权限即可。在php.ini里需要做如下设置:Safe_mode=onregister_globals = Offallow_url_fopen = Offdisplay_errors = Off magic_quotes_gpc = On [默认是on,但需检查一遍]open_basedir =web目录disable_functions =passthru,exec,shell_exec,system,phpinfo,get_cfg_var,popen,chmod 默认设置com.allow_dcom = true修改为false[修改前要取消掉前面的;]
MySQL安全设置:如果服务器上启用MySQL数据库,MySQL数据库需要注意的安全设置为:删除mysql中的所有默认用户,只保留本地root帐户,为root用户加上一个复杂的密码。赋予普通用户updatedeletealertcreatedrop权限的时候,并限定到特定的数据库,尤其要避免普通客户拥有对mysql数据库操作的权限。检查mysql.user表,取消不必要用户的shutdown_priv,reload_priv,process_priv和File_priv权限,这些权限可能泄漏更多的服务器信息包括非mysql的其它信息出去。可以为mysql设置一个启动用户,该用户只对mysql目录有权限。设置安装目录的data数据库的权限(此目录存放了mysql数据库的数据信息)。对于mysql安装目录给users加上读取、列目录和执行权限。
Serv-u安全问题:安装程序尽量采用最新版本,避免采用默认安装目录,设置好serv-u目录所在的权限,设置一个复杂的管理员密码。修改serv-u的banner信息,设置被动模式端口范围(4001—4003)在本地服务器中设置中做好相关安全设置:包括检查匿名密码,禁用反超时调度,拦截“FTP bounce”攻击和FXP,对于在30秒内连接超过3次的用户拦截10分钟。域中的设置为:要求复杂密码,目录只使用小写字母,高级中设置取消允许使用MDTM命令更改文件的日期。更改serv-u的启动用户:在系统中新建一个用户,设置一个复杂点的密码,不属于任何组。将servu的安装目录给予该用户完全控制权限。建立一个FTP根目录,需要给予这个用户该目录完全控制权限,因为所有的ftp用户上传,删除,更改文件都是继承了该用户的权限,否则无法操作文件。另外需要给该目录以上的上级目录给该用户的读取权限,否则会在连接的时候出现530 Not logged in, home directory does not exist。比如在测试的时候ftp根目录为d:soft,必须给d盘该用户的读取权限,为了安全取消d盘其他文件夹的继承权限。而一般的使用默认的system启动就没有这些问题,因为system一般都拥有这些权限的。
数据库服务器的安全设置
对于专用的MSSQL数据库服务器,按照上文所讲的设置TCP/IP筛选和IP策略,对外只开放1433和5631端口。对于MSSQL首先需要为sa设置一个强壮的密码,使用混合身份验证,加强数据库日志的记录,审核数据库登陆事件的”成功和失败”.删除一些不需要的和危险的OLE自动存储过程(会造成企业管理器中部分功能不能使用),这些过程包括如下:Sp_OACreate Sp_OADestroy Sp_OAGetErrorInfo Sp_OAGetProperty Sp_OAMethod Sp_OASetProperty Sp_OAStop去掉不需要的注册表访问过程,包括有:Xp_regaddmultistring Xp_regdeletekey Xp_regdeletevalue Xp_regenumvalues Xp_regread Xp_regremovemultistring Xp_regwrite去掉其他系统存储过程,如果认为还有威胁,当然要小心Drop这些过程,可以在测试机器上测试,保证正常的系统能完成工作,这些过程包括:xp_cmdshell xp_dirtree xp_dropwebtask sp_addsrvrolememberxp_makewebtask xp_runwebtask xp_subdirs sp_addloginsp_addextendedproc在实例属性中选择TCP/IP协议的属性。选择隐藏 SQL Server 实例可防止对1434端口的探测,可修改默认使用的1433端口。除去数据库的guest账户把未经认可的使用者据之在外。 例外情况是master和 tempdb 数据库,因为对他们guest帐户是必需的。另外注意设置好各个数据库用户的权限,对于这些用户只给予所在数据库的一些权限。在程序中不要用sa用户去连接任何数据库。网络上有建议大家使用协议加密的,千万不要这么做,否则你只能重装MSSQL了。
第二部分 入侵检测和数据备份
§1.1 入侵检测工作
作为服务器的日常管理,入侵检测是一项非常重要的工作,在平常的检测过程中,主要包含日常的服务器安全例行检查和遭到入侵时的入侵检查,也就是分为在入侵进行时的安全检查和在入侵前后的安全检查。系统的安全性遵循木桶原理,木桶原理指的是:一个木桶由许多块木板组成,如果组成木桶的这些木板长短不一,那么这个木桶的最大容量不取决于长的木板,而取决于最短的那块木板。应用到安全方面也就是说系统的安全性取决于系统中最脆弱的地方,这些地方是日常的安全检测的重点所在。
日常的安全检测
日常安全检测主要针对系统的安全性,工作主要按照以下步骤进行:1.查看服务器状态: 打开进程管理器,查看服务器性能,观察CPU和内存使用状况。查看是否有CPU和内存占用过高等异常情况。2.检查当前进程情况 切换“任务管理器”到进程,查找有无可疑的应用程序或后台进程在运行。用进程管理器查看进程时里面会有一项taskmgr,这个是进程管理器自身的进程。如果正在运行windows更新会有一项wuauclt.exe进程。对于拿不准的进程或者说不知道是服务器上哪个应用程序开启的进程,可以在网络上搜索一下该进程名加以确定[进程知识库:http://www.dofile.com/]。通常的后门如果有进程的话,一般会取一个与系统进程类似的名称,如svch0st.exe,此时要仔细辨别[通常迷惑手段是变字母o为数字0,变字母l为数字1]3.检查系统帐号 打开计算机管理,展开本地用户和组选项,查看组选项,查看administrators组是否添加有新帐号,检查是否有克隆帐号。4.查看当前端口开放情况 使用activeport,查看当前的端口连接情况,尤其是注意与外部连接着的端口情况,看是否有未经允许的端口与外界在通信。如有,立即关闭该端口并记录下该端口对应的程序并记录,将该程序转移到其他目录下存放以便后来分析。打开计算机管理==》软件环境==》正在运行任务[在此处可以查看进程管理器中看不到的隐藏进程],查看当前运行的程序,如果有不明程序,记录下该程序的位置,打开任务管理器结束该进程,对于采用了守护进程的后门等程序可尝试结束进程树,如仍然无法结束,在注册表中搜索该程序名,删除掉相关键值,切换到安全模式下删除掉相关的程序文件。5.检查系统服务 运行services.msc,检查处于已启动状态的服务,查看是否有新加的未知服务并确定服务的用途。对于不清楚的服务打开该服务的属性,查看该服务所对应的可执行文件是什么,如果确定该文件是系统内的正常使用的文件,可粗略放过。查看是否有其他正常开放服务依存在该服务上,如果有,可以粗略的放过。如果无法确定该执行文件是否是系统内正常文件并且没有其他正常开放服务依存在该服务上,可暂时停止掉该服务,然后测试下各种应用是否正常。对于一些后门由于采用了hook系统API技术,添加的服务项目在服务管理器中是无法看到的,这时需要打开注册表中的HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices项进行查找,通过查看各服务的名称、对应的执行文件来确定是否是后门、木马程序等。6.查看相关日志 运行eventvwr.msc,粗略检查系统中的相关日志记录。在查看时在对应的日志记录上点右键选“属性”,在“筛选器”中设置一个日志筛选器,只选择错误、警告,查看日志的来源和具体描述信息。对于出现的错误如能在服务器常见故障排除中找到解决办法则依照该办法处理该问题,如果无解决办法则记录下该问题,详细记录下事件来源、ID号和具体描述信息,以便找到问题解决的办法。7.检查系统文件 主要检查系统盘的exe和dll文件,建议系统安装完毕之后用dir *.exe /s >1.txt将C盘所有的exe文件列表保存下来,然后每次检查的时候再用该命令生成一份当时的列表,用fc比较两个文件,同样如此针对dll文件做相关检查。需要注意的是打补丁或者安装软件后重新生成一次原始列表。检查相关系统文件是否被替换或系统中是否被安装了木马后门等恶意程序。必要时可运行一次杀毒程序对系统盘进行一次扫描处理。8.检查安全策略是否更改 打开本地连接的属性,查看“常规”中是否只勾选了“TCP/IP协议”,打开“TCP/IP”协议设置,点“高级”==》“选项”,查看“IP安全机制”是否是设定的IP策略,查看“TCP/IP”筛选允许的端口有没有被更改。打开“管理工具”=》“本地安全策略”,查看目前使用的IP安全策略是否发生更改。9.检查目录权限 重点查看系统目录和重要的应用程序权限是否被更改。需要查看的目录有c:;c:winnt; C:winntsystem32;c:winntsystem32inetsrv;c:winntsystem32inetsrvdata;c:documents and Settings;然后再检查serv-u安装目录,查看这些目录的权限是否做过变动。检查system32下的一些重要文件是否更改过权限,包括:cmd,net,ftp,tftp,cacls等文件。10.检查启动项 主要检查当前的开机自启动程序。可以使用AReporter来检查开机自启动的程序。
发现入侵时的应对措施
对于即时发现的入侵事件,以下情况针对系统已遭受到破坏情况下的处理,系统未遭受到破坏或暂时无法察觉到破坏先按照上述的检查步骤检查一遍后再酌情考虑以下措施。系统遭受到破坏后应立即采取以下措施:视情况严重决定处理的方式,是通过远程处理还是通过实地处理。如情况严重建议采用实地处理。如采用实地处理,在发现入侵的第一时间通知机房关闭服务器,待处理人员赶到机房时断开网线,再进入系统进行检查。如采用远程处理,如情况严重第一时间停止所有应用服务,更改IP策略为只允许远程管理端口进行连接然后重新启动服务器,重新启动之后再远程连接上去进行处理,重启前先用AReporter检查开机自启动的程序。然后再进行安全检查。
以下处理措施针对用户站点被入侵但未危及系统的情况,如果用户要求加强自己站点的安全性,可按如下方式加固用户站点的安全: 站点根目录----只给administrator读取权限,权限继承下去。wwwroot ------给web用户读取、写入权限。高级里面有删除子文件夹和文件权限logfiles------给system写入权限。database------给web用户读取、写入权限。高级里面没有删除子文件夹和文件权限
如需要进一步修改,可针对用户站点的特性对于普通文件存放目录如html、js、图片文件夹只给读取权限,对asp等脚本文件给予上表中的权限。另外查看该用户站点对应的安全日志,找出漏洞原因,协助用户修补程序漏洞。
§1.2 数据备份和数据恢复
数据备份工作大致如下:1. 每月备份一次系统数据。2. 备份系统后的两周单独备份一次应用程序数据,主要包括IIS、serv-u、数据库等数据。3. 确保备份数据的安全,并分类放置这些数据备份。因基本上采用的都是全备份方法,对于数据的保留周期可以只保留该次备份和上次备份数据两份即可。
数据恢复工作:1.系统崩溃或遇到其他不可恢复系统正常状态情况时,先对上次系统备份后发生的一些更改事件如应用程序、安全策略等的设置做好备份,恢复完系统后再恢复这些更改。2.应用程序等出错采用最近一次的备份数据恢复相关内容。
第三部分 服务器性能优化
§3.1 服务器性能优化
系统性能优化整理系统空间: 删除系统备份文件,删除驱动备份,刪除不用的輸入法,刪除系统的帮助文件,卸载不常用的组件。最小化C盘文件。性能优化:删除多余的开机自动运行程序;减少预读取,减少进度条等待时间;让系统自动关闭停止响应的程序;禁用错误报告,但在发生严重错误时通知;关闭自动更新,改为手动更新计算机;启用硬件和DirectX加速;禁用关机事件跟踪;禁用配置服务器向导; 减少开机磁盘扫描等待时间;将处理器计划和内存使用都调到应用程序上;调整虚拟内存;内存优化;修改cpu的二级缓存;修改磁盘缓存。
IIS性能优化1、调整IIS高速缓存HKEY_LOCAL_MACHINE SystemCurrentControlSetServicesInetInfoParametersMemoryCacheSize MemoryCacheSize的范围是从0道4GB,缺省值为3072000(3MB)。一般来说此值最小应设为服务器内存的10%。IIS通过高速缓存系统句柄、目录列表以及其他常用数据的值来提高系统的性能。这个参数指明了分配给高速缓存的内存大小。如果该值为0,那就意味着“不进行任何高速缓存”。在这种情况下系统的性能可能会降低。如果你的服务器网络通讯繁忙,并且有足够的内存空间,可以考虑增大该值。必须注意的是修改注册表后,需要重新启动才能使新值生效。
2.不要关闭系统服务: “Protected Storage”
3.对访问流量进行限制A.对站点访问人数进行限制B.站点带宽限制。保持HTTP连接。C.进程限制, 输入CPU的耗用百分比
4.提高IIS的处理效率应用程序设置”处的“应用程序保护”下拉按钮,从弹出的下拉列表中,选中“低(IIS进程)”选项,IIS服务器处理程序的效率可以提高20%左右。但此设置会带来严重的安全问题,不值得推荐。
5.将IIS服务器设置为独立的服务器 A.提高硬件配置来优化IIS性能硬盘:硬盘空间被NT和IIS服务以如下两种方式使用:一种是简单地存储数据;另一种是作为虚拟内存使用。如果使用Ultra2的SCSI硬盘,可以显著提高IIS的性能B.可以把NT服务器的页交换文件分布到多个物理磁盘上,注意是多个“物理磁盘”,分布在多个分区上是无效的。另外,不要将页交换文件放在与WIndows NT引导区相同的分区中C.使用磁盘镜像或磁盘带区集可以提高磁盘的读取性能D.最好把所有的数据都储存在一个单独的分区里。然后定期运行磁盘碎片整理程序以保证在存储Web服务器数据的分区中没有碎片。使用NTFS有助于减少碎片。推荐使用Norton的Speeddisk,可以很快的整理NTFS分区。
6.起用HTTP压缩 HTTP压缩是在Web服务器和浏览器间传输压缩文本内容的方法。HTTP压缩采用通用的压缩算法如gzip等压缩HTML、JavaScript或CSS文件。可使用pipeboost进行设置。
7.起用资源回收 使用IIS5Recycle定时回收进程资源。
§3.2 服务器常见故障排除
1. ASP“请求的资源正在使用中”的解决办法:该问题一般与杀毒软件有关,在服务器上安装个人版杀毒软件所致。出现这种错误可以通过卸载杀毒软件解决,也可尝试重新注册vbscript.dll和jscript.dll来解决,在命令行下运行:regsvr32 vbscript.dll 和regsvr32 jscript.dll即可。
2.ASP500错误解决办法:首先确定该问题是否是单一站点存在还是所有站点存在,如果是单一站点存在该问题,则是网站程序的问题,可打开该站点的错误提示,把IE的“显示友好HTTP错误”信息取消,查看具体错误信息,然后对应修改相关程序。如是所有站点存在该问题,并且HTML页面没有出现该问题,相关日志出现“服务器无法加载应用程序‘/LM/W3SVC/1/ROOT‘。错误是 ‘不支持此接口‘”。那十有八九是服务器系统中的ASP相关组件出现了问题,重新启动IIS服务,尝试是否可以解决该问题,无法解决重新启动系统尝试是否可解决该问题,如无法解决可重新修复一下ASP组件:首先删除com组件中的关于IIS的三个东西,需要先将属性里的高级中“禁止删除”的勾选取消。命令行中,输入“cd winntsystem32inetsrv”字符串命令,单击回车键后,再执行“rundll32 wamreg.dll,CreateIISPackage”命令,接着再依次执行“regsvr32 asptxn.dll”命令、“iisreset”命令,最后重新启动一下计算机操作系统,这样IIS服务器就能重新正确响应ASP脚本页面了。
3. IIS出现105错误:在系统日志中“服务器无法注册管理工具发现信息。管理工具可能无法看到此服务器” 来源:w3svc ID:105解决办法:在网络连接中重新安装netbios协议即可,安装完成之后取消掉勾选。
4.MySQL服务无法启动【错误代码1067】的解决方法启动MySQL服务时都会在中途报错!内容为:在 本地计算机 无法启动MySQL服务 错误1067:进程意外中止。解决方法:查找Windows目录下的my.ini文件,编辑内容(如果没有该文件,则新建一个),至少包含basedir,datadir这两个基本的配置。 [mysqld] # set basedir to installation path, e.g., c:/mysql # 设置为MYSQL的安装目录 basedir=D:/www/WebServer/MySQL # set datadir to location of data directory, # e.g., c:/mysql/data or d:/mydata/data # 设置为MYSQL的数据目录 datadir=D:/www/WebServer/MySQL/data注意,我在更改系统的temp目录之后没有对更改后的目录给予system用户的权限也出现过该问题。
5.DllHotst进程消耗cpu 100%的问题服务器正常CPU消耗应该在75%以下,而且CPU消耗应该是上下起伏的,出现这种问题的服务器,CPU会突然一直处100%的水平,而且不会下降。查看任务管理器,可以发现是DLLHOST.EXE消耗了所有的CPU空闲时间,管理员在这种情况下,只好重新启动IIS服务,奇怪的是,重新启动IIS服务后一切正常,但可能过了一段时间后,问题又再次出现了。 直接原因: 有一个或多个ACCESS数据库在多次读写过程中损坏, MDAC系统在写入这个损坏的ACCESS文件时,ASP线程处于BLOCK状态,结果其他线程只能等待,IIS被死锁了,全部的CPU时间都消耗在DLLHOST中。 解决办法:把数据库下载到本地,然后用ACCESS打开,进行修复操作。再上传到网站。如果还不行,只有新建一个ACCESS数据库,再从原来的数据库中导入所有表和记录。然后把新数据库上传到服务器上。
6.Windows installer出错: 在安装软件的时候出现“不能访问windows installer 服务。可能你在安全模式下运行 windows ,或者windows installer 没有正确的安装。请和你的支持人员联系以获得帮助” 如果试图重新安装InstMsiW.exe,提示:“指定的服务已存在”。 解决办法: 关于installer的错误,可能还有其他错误提示,可尝试以下解决办法: 首先确认是否是权限方面的问题,提示信息会提供相关信息,如果是权限问题,给予winnt目录everyone权限即可[安装完把权限改回来即可]。如果提示的是上述信息,可以尝试以下解决方法:运行“msiexec /unregserver”卸载Windows Installer服务,如果无法卸载可使用SRVINSTW进行卸载,然后下载windows installer的安装程序[地址:http://www.newhua.com/cfan/200410/instmsiw.exe],用winrar解压该文件,在解压缩出来的文件夹里面找到msi.inf文件,右键单击选择“安装”,重新启动系统后运行“msiexec /regserver”重新注册Windows Installer服务。
第四部分 服务器管理
§4.1 服务器日常管理安排
服务器管理工作必须规范严谨,尤其在不是只有一位管理员的时候,日常管理工作包括:1.服务器的定时重启。每台服务器保证每周重新启动一次。重新启动之后要进行复查,确认服务器已经启动了,确认服务器上的各项服务均恢复正常。对于没有启动起来或服务未能及时恢复的情况要采取相应措施。前者可请求托管商的相关工作人员帮忙手工重新启动,必要时可要求让连接上显示器确认是否已启动起来;后者需要远程登陆上服务器进行原因查找并根据原因尝试恢复服务。 2.服务器的安全、性能检查,每服务器至少保证每周登陆两次粗略检查两次。每次检查的结果要求进行登记在册。如需要使用一些工具进行检查,可直接在e:tools中查找到相关工具。对于临时需要从网络上找的工具,首先将IE的安全级别调整到高,然后在网络上进行查找,不要去任何不明站点下载,尽量选择如华军、天空等大型网站进行下载,下载后确保当前杀毒软件已升级到最新版本,升级完毕后对下载的软件进行一次杀毒,确认正常后方能使用。对于下载的新工具对以后维护需要使用的话,将该工具保存到e:tools下,并在该目录中的readme.txt文件中做好相应记录,记录该工具的名称,功能,使用方法。并且在该文件夹中的rar文件夹中保留一份该工具的winrar压缩文件备份,设置解压密码。3.服务器的数据备份工作,每服务器至少保证每月备份一次系统数据,系统备份采用ghost方式,对于ghost文件固定存放在e:ghost文件目录下,文件名以备份的日期命名,如0824.gho,每服务器至少保证每两周备份一次应用程序数据,每服务器至少保证每月备份一次用户数据,备份的数据固定存放在e:databak文件夹,针对各种数据再建立对应的子文件夹,如serv-u用户数据放在该文件夹下的servu文件夹下,iis站点数据存放在该文件夹下的iis文件夹下。4.服务器的监控工作,每天正常工作期间必须保证监视所有服务器状态,一旦发现服务停止要及时采取相应措施。对于发现服务停止,首先检查该服务器上同类型的服务是否中断,如所有同类型的服务都已中断及时登陆服务器查看相关原因并针对该原因尝试重新开启对应服务。5.服务器的相关日志操作,每服务器保证每月对相关日志进行一次清理,清理前对应的各项日志如应用程序日志、安全日志、系统日志等都应选择“保存日志”。所有的日志文件统一保存在e:logs下,应用程序日志保存在e:logsapp中,系统程序日志保存在e:logssys中,安全日志保存在e:logssec中。对于另外其他一些应用程序的日志,也按照这个方式进行处理,如ftp的日志保存在e:logsftp中。所有的备份日志文件都以备份的日期命名,如20050824.evt。对于不是单文件形式的日志,在对应的记录位置下建立一个以日期命名的文件夹,将这些文件存放在该文件夹中。6.服务器的补丁修补、应用程序更新工作,对于新出的漏洞补丁,应用程序方面的安全更新一定要在发现的第一时间给每服务器打上应用程序的补丁。7.服务器的隐患检查工作,主要包括安全隐患、性能等方面。每服务器必须保证每月重点的单独检查一次。每次的检查结果必须做好记录。8.不定时的相关工作,每服务器由于应用软件更改或其他某原因需要安装新的应用程序或卸载应用程序等操作必须知会所有管理员。9.定期的管理密码更改工作,每服务器保证至少每两个月更改一次密码,对于SQL服务器由于如果SQL采用混合验证更改系统管理员密码会影响数据库的使用则不予修改。
相关建议:对每服务器设立一个服务器管理记载,管理员每次登陆系统都应该在此中进行详细的记录,共需要记录以下几项:登入时间,退出时间,登入时服务器状态[包含不明进程记录,端口连接状态,系统帐号状态,内存/CPU状态],详细操作情况记录[详细记录下管理员登陆系统后的每一步操作]。无论是远程登陆操作还是物理接触操作都要进行记录,然后将这些记录按照各服务器归档,按时间顺序整理好文档。对于数据备份、服务器定时重启等操作建议将服务器分组,例如分成四组,每月的周六晚备份一组服务器的数据,每周的某一天定时去重启一组的服务器,这样对于工作的开展比较方便,这些属于固定性的工作。另外有些工作可以同步进行,如每月一次的数据备份、安全检查和管理员密码修改工作,先进行数据备份,然后进行安全检查,再修改密码。对于需要的即时操作如服务器补丁程序的安装、服务器不定时的故障维护等工作,这些属于即时性的工作,但是原则上即时性的工作不能影响固定工作的安排。
§4.2 管理员日常注意事项
在服务器管理过程中,管理员需要注意以下事项:1.对自己的每一次操作应做好详细记录,具体见上述建议,以便于后来检查。2.努力提高自身水平,加强学习。