• 用Win 2003 server打造安全的个人Web服务器[转]


         Win2003 Server的安全性较之Win2K确实有了很大的提高,但是用Win2003 Server作为服务器是否就真的安全了?如何才能打造一个安全的个人Web服务器?下面我们简单介绍一下 

      一、Windows Server2003的安装 

      1、安装系统最少两需要个分区,分区格式都采用NTFS格式 

      2、在断开网络的情况安装好2003系统 

      3、安装IIS,仅安装必要的 IIS 组件(禁用不需要的如FTP 和 SMTP 服务)。默认情况下,IIS服务没有安装,在添加/删除Win组件中选择“应用程序服务器”,然后点击“详细信息”,双击Internet信息服务(iis),勾选以下选项: 

      Internet 信息服务管理器; 

      公用文件; 

      后台智能传输服务 (BITS) 服务器扩展; 

      万维网服务。 

      如果你使用 FrontPage 扩展的 Web 站点再勾选:FrontPage 2002 Server Extensions 

      4、安装MSSQL及其它所需要的软件然后进行Update。 

      5、使用Microsoft 提供的 MBSA(Microsoft Baseline Security Analyzer) 工具分析计算机的安全配置,并标识缺少的修补程序和更新。下载地址:见页末的链接 


      二、设置和管理账户 

      1、系统管理员账户最好少建,更改默认的管理员帐户名(Administrator)和描述,密码最好采用数字加大小写字母加数字的上档键组合,长度最好不少于14位。 

      2、新建一个名为Administrator的陷阱帐号,为其设置最小的权限,然后随便输入组合的最好不低于20位的密码 

      3、将Guest账户禁用并更改名称和描述,然后输入一个复杂的密码,当然现在也有一个DelGuest的工具,也许你也可以利用它来删除Guest账户,但我没有试过。 

      4、在运行中输入gpedit.msc回车,打开组策略编辑器,选择计算机配置-Windows设置-安全设置-账户策略-账户锁定策略,将账户设为“三次登陆无效”,“锁定时间为30分钟”,“复位锁定计数设为30分钟”。 

      5、在安全设置-本地策略-安全选项中将“不显示上次的用户名”设为启用 

      6、在安全设置-本地策略-用户权利分配中将“从网络访问此计算机”中只保留Internet来宾账户、启动IIS进程账户。如果你使用了Asp.net还要保留Aspnet账户。 

      7、创建一个User账户,运行系统,如果要运行特权命令使用Runas命令。 


      三、网络服务安全管理 

      1、禁止C$、D$、ADMIN$一类的缺省共享 

      打开注册表,HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/lanmanserver/parameters,在右边的窗口中新建Dword值,名称设为AutoShareServer值设为0 

      2、 解除NetBios与TCP/IP协议的绑定 

      右击网上邻居-属性-右击本地连接-属性-双击Internet协议-高级-Wins-禁用TCP/IP上的NETBIOS 

      3、关闭不需要的服务,以下为建议选项 

      Computer Browser:维护网络计算机更新,禁用 

      Distributed File System: 局域网管理共享文件,不需要禁用 

      Distributed linktracking client:用于局域网更新连接信息,不需要禁用 

      Error reporting service:禁止发送错误报告 

      Microsoft Serch:提供快速的单词搜索,不需要可禁用 

      NTLMSecuritysupportprovide:telnet服务和Microsoft Serch用的,不需要禁用 

      PrintSpooler:如果没有打印机可禁用 

      Remote Registry:禁止远程修改注册表 

      Remote Desktop Help Session Manager:禁止远程协助 


      四、打开相应的审核策略 

      在运行中输入gpedit.msc回车,打开组策略编辑器,选择计算机配置-Windows设置-安全设置-审核策略在创建审核项目时需要注意的是如果审核的项目太多,生成的事件也就越多,那么要想发现严重的事件也越难当然如果审核的太少也会影响你发现严重的事件,你需要根据情况在这二者之间做出选择。 

      推荐的要审核的项目是: 

      登录事件   成功 失败 

      账户登录事件 成功 失败 

      系统事件   成功 失败 

      策略更改   成功 失败 

      对象访问   失败 

      目录服务访问 失败 

      特权使用   失败 


      五、其它安全相关设置 

      1、隐藏重要文件/目录 

      可以修改注册表实现完全隐藏:“HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/ Current-Version/Explorer/Advanced/Folder/Hi-dden/SHOWALL”,鼠标右击 “CheckedValue”,选择修改,把数值由1改为0 

      2、启动系统自带的Internet连接防火墙,在设置服务选项中勾选Web服务器。 

      3、防止SYN洪水攻击 

      HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters 

      新建DWORD值,名为SynAttackProtect,值为2 

      4. 禁止响应ICMP路由通告报文 

      HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters/Interfaces/interface 

      新建DWORD值,名为PerformRouterDiscovery 值为0 

      5. 防止ICMP重定向报文的攻击 

      HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters 

      将EnableICMPRedirects 值设为0 

      6. 不支持IGMP协议 

      HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters 

      新建DWORD值,名为IGMPLevel 值为0 

      7、禁用DCOM: 

      运行中输入 Dcomcnfg.exe。 回车, 单击“控制台根节点”下的“组件服务”。 打开“计算机”子文件夹。 

      对于本地计算机,请以右键单击“我的电脑”,然后选择“属性”。选择“默认属性”选项卡。 

      清除“在这台计算机上启用分布式 COM”复选框。 

      注:3-6项内容我采用的是Server2000设置,没有测试过对2003是否起作用。但有一点可以肯定我用了一段的时间没有发现其它副面的影响。 


      六、配置 IIS 服务: 

      1、不使用默认的Web站点,如果使用也要将 将IIS目录与系统磁盘分开。 

      2、删除IIS默认创建的Inetpub目录(在安装系统的盘上)。 

      3、删除系统盘下的虚拟目录,如:_vti_bin、IISSamples、Scripts、IIShelp、IISAdmin、IIShelp、MSADC。 

      4、删除不必要的IIS扩展名映射。 

      右键单击“默认Web站点→属性→主目录→配置”,打开应用程序窗口,去掉不必要的应用程序映射。主要为.shtml, .shtm, .stm 

      5、更改IIS日志的路径 

      右键单击“默认Web站点→属性-网站-在启用日志记录下点击属性 

      6、如果使用的是2000可以使用iislockdown来保护IIS,在2003运行的IE6.0的版本不需要。 

      7、使用UrlScan 

      UrlScan是一个ISAPI筛选器,它对传入的HTTP数据包进行分析并可以拒绝任何可疑的通信量。目前最新的版本是2.5,如果是2000Server需要先安装1.0或2.0的版本。下载地址见页未的链接 

      如果没有特殊的要求采用UrlScan默认配置就可以了。 

      但如果你在服务器运行ASP.NET程序,并要进行调试你需打开要%WINDIR%/System32/Inetsrv/URLscan 

      文件夹中的URLScan.ini 文件,然后在UserAllowVerbs节添加debug谓词,注意此节是区分大小写的。 

      如果你的网页是.asp网页你需要在DenyExtensions删除.asp相关的内容。 

      如果你的网页使用了非ASCII代码,你需要在Option节中将AllowHighBitCharacters的值设为1 

      在对URLScan.ini 文件做了更改后,你需要重启IIS服务才能生效,快速方法运行中输入iisreset 

      如果你在配置后出现什么问题,你可以通过添加/删除程序删除UrlScan。 

      8、利用WIS (Web Injection Scanner)工具对整个网站进行SQL Injection 脆弱性扫描. 

      下载地址:[http://www.fanvb.net/websample/othersample.aspx]VB.NET爱好者[/url] 


      七、配置Sql服务器 

      1、System Administrators 角色最好不要超过两个 

      2、如果是在本机最好将身份验证配置为Win登陆 

      3、不要使用Sa账户,为其配置一个超级复杂的密码 

      4、删除以下的扩展存储过程格式为: 
      use master 
      sp_dropextendedproc ´扩展存储过程名´ 

      xp_cmdshell:是进入操作系统的最佳捷径,删除 

      访问注册表的存储过程,删除 
      Xp_regaddmultistring  Xp_regdeletekey  Xp_regdeletevalue  Xp_regenumvalues   
      Xp_regread      Xp_regwrite     Xp_regremovemultistring     

      OLE自动存储过程,不需要删除 
      Sp_OACreate   Sp_OADestroy    Sp_OAGetErrorInfo  Sp_OAGetProperty 
      Sp_OAMethod  Sp_OASetProperty  Sp_OAStop 

      5、隐藏 SQL Server、更改默认的1433端口 

      右击实例选属性-常规-网络配置中选择TCP/IP协议的属性,选择隐藏 SQL Server 实例,并改原默认的1433端口。 


      八、如果只做服务器,不进行其它操作,使用IPSec 

      1、管理工具—本地安全策略—右击IP安全策略—管理IP筛选器表和筛选器操作—在管理IP筛选器表选项下点击 

      添加—名称设为Web筛选器—点击添加—在描述中输入Web服务器—将源地址设为任何IP地址——将目标地址设为我的IP地址——协议类型设为Tcp——IP协议端口第一项设为从任意端口,第二项到此端口80——点击完成——点击确定。 

      2、再在管理IP筛选器表选项下点击 

      添加—名称设为所有入站筛选器—点击添加—在描述中输入所有入站筛选—将源地址设为任何IP地址——将目标地址设为我的IP地址——协议类型设为任意——点击下一步——完成——点击确定。 

      3、在管理筛选器操作选项下点击添加——下一步——名称中输入阻止——下一步——选择阻止——下一步——完成——关闭管理IP筛选器表和筛选器操作窗口 

      4、右击IP安全策略——创建IP安全策略——下一步——名称输入数据包筛选器——下一步——取消默认激活响应原则——下一步——完成 

      5、在打开的新IP安全策略属性窗口选择添加——下一步——不指定隧道——下一步——所有网络连接——下一步——在IP筛选器列表中选择新建的 Web筛选器——下一步——在筛选器操作中选择许可——下一步——完成——在IP筛选器列表中选择新建的阻止筛选器——下一步——在筛选器操作中选择阻止 ——下一步——完成——确定 

      6、在IP安全策略的右边窗口中右击新建的数据包筛选器,点击指派,不需要重启,IPSec就可生效. 


      九、建议 

      如果你按本文去操作,建议每做一项更改就测试一下服务器,如果有问题可以马上撤消更改。而如果更改的项数多,才发现出问题,那就很难判断问题是出在哪一步上了。 


      十、运行服务器记录当前的程序和开放的端口 

      1、将当前服务器的进程抓图或记录下来,将其保存,方便以后对照查看是否有不明的程序。 

      2、将当前开放的端口抓图或记录下来,保存,方便以后对照查看是否开放了不明的端口。当然如果你能分辨每一个进程,和端口这一步可以省略。

  • 相关阅读:
    Python学习9——异常
    提取微信小游戏代码
    linux 命令记录
    cpp 线程传递参数
    c++ primer 记录1
    你不知道的js
    js中的对象 函数 原型
    C++ 获取时间
    linux 常见命令
    git 的基本命令
  • 原文地址:https://www.cnblogs.com/gxlinhai/p/1379762.html
Copyright © 2020-2023  润新知