<?xml version="1.0" encoding="UTF-8"?>
  <feed xmlns="http://www.w3.org/2005/Atom">
  <title type="html"><![CDATA[柠檬居IT技术网 - Server]]></title>
  <subtitle type="html"><![CDATA[分享最前卫最时尚的技术！- http://www.nmju.net]]></subtitle>
  <id>http://www.nmju.net/</id>
  <link rel="alternate" type="text/html" href="http://www.nmju.net/" /> 
  <link rel="self" type="application/atom+xml" href="http://www.nmju.net/atom.asp" /> 
  <generator uri="http://www.pjhome.net/" version="2.8">PJBlog3</generator> 
  <updated>2009-06-14T19:40:48+08:00</updated>

  <entry>
	  <title type="html"><![CDATA[IIS服务器管理资源的几个方法和工具]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.nmju.net/</uri>
		 <email>luckcf@gmail.com</email>
	  </author>
	  <category term="" scheme="http://www.nmju.net/default.asp?cateID=14" label="Server" /> 
	  <updated>2009-06-14T19:40:48+08:00</updated>
	  <published>2009-06-14T19:40:48+08:00</published>
		  <summary type="html"><![CDATA[<p>这个命题，对于单独的网站拥有者，或者来说，针对单独的网站应用程序池来说，作用不是太大，但大多数玩web服务器的，拥有的可不止是一个网站一个应用程序池，特别对于iis6来说，应用程序池的分离管理，极大的提高了iis的应用效果。</p>
<p><strong>解决w3wp.exe内存占用问题</strong></p>
<p>在IIS6下，经常出现w3wp的内存占用不能及时释放，从而导致服务器响应速度很慢。<br />
研究了一下，可以考虑做以下配置：<br />
1、在IIS中对每个网站进行单独的应用程序池配置。即互相之间不影响。<br />
2、设置应用程序池的回收时间，默认为1720小时，可以根据情况修改。同时，设置同时运行的w3wp进程数目为1。再设置当内存或者cpu占用超过多少，就自动回收内存<br />
一般来说，这样就可以解决了。但仍然会出现个别网站因为程序问题，不能正确释放。</p>
<p>那么，<strong>怎么样才能找到是哪一个网站的？</strong><br />
1、在任务管理器中增加显示pid字段。就可以看到占用内存或者cpu最高的进程pid<br />
2、在命令提示符下运行<strong>iisapp -a</strong>。注意，第一次运行，会提示没有js支持，点击确定。然后再次运行就可以了。这样就可以看到pid对应的应用程序池<br />
3、到iis中察看该应用程序池对应的网站，就ok了</p>
<p>　　很多管理员，特别是做虚 拟主机可能到遇到过<strong>IIS cpu100%</strong>占用，但又不知道哪些网站资源占用多，下面介绍一个方法可以查看每个web站点的资源使用情况<br />
&nbsp;<br />
　　<strong>这个方法平时不推荐使用，只是在出现问题的时候使用</strong><br />
&nbsp;<br />
　　1，把每个站点设为独立进程<br />
&nbsp;<br />
　　打开IIS 站点属性 -- 主目录 -- 应用程序保护改成 高<br />
&nbsp;<br />
　　打开任务管理器 查看进程 你就会看到多出一些dllhost.exe进程 和他们的资源使用情况 这些就是每个web点点的进程，但现在好不知道 哪个web站点使用那个进程<br />
&nbsp;<br />
　　2，对应web站点的dllhost.exe进程<br />
&nbsp;<br />
　　打开组建管理--- 组件服务 -- 计算机 -- 我的电脑 -- com+ 应用程序<br />
&nbsp;<br />
　　在这里，我们可以看到类似IIS-{domain.com//Root}这样的，不设为独立进程就看不到，这个就是IIS里的web站点，选择工具栏上的状态查看<br />
&nbsp;<br />
　　你就会看到类似这样的<br />
&nbsp;<br />
　　名称运行PID<br />
&nbsp;<br />
　　IIS-{down.789game.com//Root}是1688<br />
&nbsp;<br />
　　其中 PID 就是任务管理里的 dllhost.exe得 pid值<br />
&nbsp;<br />
　　好了现在知道每个web站点使用的dllhost.exe进程了，而在任务管理器又可以知道dllhost.exe占用的资源，那你应该知道那个网站占用资源不正常了吧!</p>
<p><strong>使用IIS Request Viewer查看当前IIS连接</strong></p>
<p>如果有自己的服务器，如果想查看当前IIS连接情况：例如有多少个请求，每个请求的动作，请求的Url，请求的IP等信息，使用微软的IIS Diagnostics Toolkit无疑是非常好的选择，利用它的IIS Request Viewer，查看当前连接以及连接状态，一目了然，非常方便好用。</p>
<p>&nbsp;<img alt="" onload="ResizeImage(this,520)" src="http://www.linwan.net.cn/upload/iisrequestvieweriis_6.gif" /></p>
<p>不过要特别注意，在第一次使用IIS Request Viewer功能时，极有可能会弹出来一个错误窗口</p>
<p>&nbsp;<img alt="" onload="ResizeImage(this,520)" src="http://www.linwan.net.cn/upload/iisrequestvieweriis_62.gif" /></p>
<p>---------------------------<br />
Warning<br />
---------------------------<br />
OpenTraceLogFile() failed (Win32 error:-2147024735 - 指定的路径无效。)<br />
---------------------------<br />
确定 取消<br />
---------------------------</p>
<p>被这个问题郁闷了很久，今天终于找到解决方法了：</p>
<p>在&ldquo;我的电脑&rdquo;属性里面的&ldquo;环境变量&rdquo;设置里面，设置Temp目录为一个较短的目录，例如c:\temp，就不会有这个错误。</p>
<p>IIS Diagnostics Toolkit for 32-bit systems</p>
<p>在2003server版本下安装后，执行程序在：C:\Program Files\IIS Resources\TraceDiag 目录下reqviewer.exe</p>
<p>有人分析说，使用一段时间后,感觉还不如直接对IIS LOG进行当天的分析，因为HTTP变化很快的,或者用TCPView看也是一个方法</p>
<p><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=9bfa49bc-376b-4a54-95aa-73c9156706e7&amp;amp;DisplayLang=en">Download the iisdiag.msi package now</a>&nbsp; <strong>IIS Request Viewer</strong><a href="http://www.linwan.net.cn/upload/iisdiag.rar">本站下载</a></p>
<p><strong>利用性能管理器查看IIS站点流量。</strong></p>
<p>先打开perfmon.msc，点一下加号，选web server，左边选一个要查看的性能，右边选站点</p>
<p><strong>IIS监控--自动重启脚本工具IISWatcher IIS自动重启vbs脚本</strong></p>
<p>功能：可以在IIS意外终止时自动重启IIS，无须登陆系统，无人职守<br />
条件：<br />
1.服务器安装过Windows Script 5.6，可以正常运行.vbs脚本。<br />
2.确保系统服务WindowsManagement Instrumentation 正常启动。<br />
将以下代码复制为 fu.vbs，放至系统盘WINNT/System32/下，注意重命名时要和&ldquo;cscript //h:cscript&amp;&amp;cscript fu.vbs&rdquo; 中的fu.vbs保持一至，否则计划任务启动时报找不到文件的错误。<br />
然后做计划任务，让其在系统启动时运行监控<br />
vbs代码：<br />
程序代码<br />
strFullName = WScript.FullName<br />
strWshHost = Right(strFullName, 11)<br />
'WScript.Echo &quot;Default script host: &quot; &amp; strWshHost<br />
If strWshHost = &quot;WScript.exe&quot; Then<br />
Set objShell = CreateObject(&quot;WScript.Shell&quot;)<br />
objShell.Run _<br />
&quot;%comspec% /k &quot;&quot;cscript //h:cscript&amp;&amp;cscript fu.vbs&quot;&quot;&quot;, _<br />
MAXIMIZE_WINDOW<br />
If Err.Number&nbsp; 0 Then<br />
WScript.Echo &quot;Error 0x&quot; &amp; hex(Err.Number) &amp; &quot; occurred. &quot; &amp; _<br />
Err.Description &amp; &quot;. &quot; &amp; VbCrLf &amp; _<br />
&quot;Could not temporarily change the default script host to Cscript.&quot;<br />
Err.Clear<br />
WScript.Quit<br />
End If<br />
WScript.Quit<br />
End If<br />
'----上面这段代码是强制到cscript命令行，一般要在cmd命令行下输入cscript *.vbs,如果直接执行vbs会用wscript打开，这样只会弹个对话框，我不喜欢，有不想每次都cscript，所以要写点额外的代码，双击后会调用一个wscript执行csript，然后再消灭自己，幸好微软的网站上提供了这个代码------------------------------------<br />
strComputer = &quot;.&quot;<br />
Set objWMIService = GetObject(&quot;winmgmts:&quot; _<br />
&amp; &quot;{impersonationLevel= impersonate, (Security)}!\\&quot; &amp; strComputer &amp; &quot;\root\cimv2&quot;)<br />
Set colMonitoredEvents = objWMIService.ExecNotificationQuery _<br />
(&quot;Select * from __instancecreationevent where TargetInstance isa'Win32_NTLogEvent' and TargetInstance.EventCode = '7031' &quot;)<br />
Wscript.Echo &quot;开始监视iis于 &quot;&amp;now<br />
Do<br />
Set objLatestEvent = colMonitoredEvents.NextEvent<br />
Wscript.Echo &quot;重新启动iis &quot;&amp;now<br />
Set objShell = CreateObject(&quot;WScript.Shell&quot;)<br />
objShell.Run &quot;%COMSPEC% /c IISRESET.EXE&quot;,,1<br />
'------核心程序<br />
whichfile=(&quot;iisresetlog.htm&quot;)<br />
set fso=createobject(&quot;Scripting.FileSystemObject&quot;)<br />
if Not fso.FileExists(whichfile) then<br />
iomode=2 : create=true<br />
'Set MyFile = fso.CreateTextFile(whichfile,True)<br />
else<br />
iomode=8 : create=false<br />
'Set MyFile = fso.CreateTextFile(whichfile)<br />
end if<br />
set MyFile = fso.OpenTextFile(whichfile,iomode,create)<br />
'MyFile.writeLine(&quot;事件发生于 &quot;&amp;now&amp;&quot; 重启iis成功&quot;&amp;vbctrf)<br />
if create=true then<br />
MyFile.WriteLine &quot;&quot;<br />
MyFile.WriteLine &quot;&quot;<br />
MyFile.WriteLine &quot;&quot;<br />
MyFile.WriteLine &quot;&quot;<br />
MyFile.WriteLine &quot;&quot;<br />
MyFile.WriteLine &quot;&quot;<br />
end if<br />
MyFile.WriteLine &quot; iis重启时间: &quot; &amp;now&amp; &quot;&quot;<br />
'MyFile.WriteLine &quot; 是否成功: 是 &quot;<br />
MyFile.WriteLine &quot;<br />
&quot;<br />
MyFile.WriteLine &quot; &quot;<br />
MyFile.Close<br />
set fso=nothing<br />
Loop<br />
'-----用fso记录iis 重启日志。<br />
注意：TargetInstance.EventCode = '7031' 这段代码控制了在什么情况下重启IIS，7031是系统的事件 ID代号，即当系统日志出现7031这样的事件时重启IIS。<br />
下面是系统7031事件描述：IIS Admin Service 服务意外地终止，这种情况已经出现了 1 次。以下的修正操作将在 1 毫秒内运行: 运行配置的故障恢复程序。<br />
同样的道理，可以根据不同的事件ID触发此脚本，修改objShell.Run &quot;%COMSPEC% /c IISRESET.EXE&quot;,,1 这一行代码，可以执行任何win32所支持的程序，即可以根据任意事件触发执行任意的程序，那样用途更广了。<br />
另：<br />
%comspec%打开一个命令行窗口。%comspec% 是一个指向当前命令行外壳的环境变量。通过使用 %comspec%，您不必担心命令行外壳是 cmd.exe 还是 command.exe；%comspec% 会自动选择正确的一个。<br />
/k 在调用 Dir 命令后，确保窗口始终保持打开。这就是 /k 参数的用处。如果我们想要确保命令窗口会在 Dir 命令调用完成后被自动关闭，应该将 /k (keep) 修改为 /c (close)。</p>
<p><strong>砺青IIS监控器IISWatcher v2.1&nbsp;</strong> <a target="_blank" href="http://www.linwan.net.cn/upload/IISWatcher2.1.rar">IISWatcher2.1.rar下载</a></p>
<p>适用于虚拟主机提供商用于排查个别有问题的网站，最大特点是可以监控每一个WEB站点的资源使用状态，包括:CPU使用率，总的CPU时间，内存，最大内存，线程数，模块数等</p>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.nmju.net/article.asp?id=140" /> 
	  <id>http://www.nmju.net/default.asp?id=140</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[维护好你的WEB服务器]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.nmju.net/</uri>
		 <email>luckcf@gmail.com</email>
	  </author>
	  <category term="" scheme="http://www.nmju.net/default.asp?cateID=14" label="Server" /> 
	  <updated>2009-05-15T10:09:08+08:00</updated>
	  <published>2009-05-15T10:09:08+08:00</published>
		  <summary type="html"><![CDATA[经济关系，我管理的服务器上面放了IIS,SQL2000,SQL2005。该服务器上面放了很多网站，所以一天运行下来，单数据库进程占用内存的量就高达2G，以前到也没怎么在意，最近发现服务器访问变慢了，虽然不能排除其他的原因，不过我就目前最容易发现的占用内存的问题进行了处理。<br/><br/>我的办法就是采用WIN的计划任务功能，让系统定时的重启那几个关键的服务，从而来保证服务器的稳定。<br/><br/><br/>重启2000数据库<br/>------------------------------------------------<br/>at&nbsp;&nbsp; 3:00&nbsp;&nbsp; /every:m,t,w,th,f,s,su&nbsp;&nbsp; &#34;&#34;net stop MSSQL$SQL2000&#34;&#34;&nbsp;&nbsp; <br/>at&nbsp;&nbsp; 3:01&nbsp;&nbsp; /every:m,t,w,th,f,s,su&nbsp;&nbsp; &#34;&#34;net start MSSQL$SQL2000&#34;&#34;&nbsp;&nbsp; <br/><br/>重启2005数据库，由于上面摆放了数据库自动备份机制，所以需要先停止代理服务<br/>-----------------------------------------------<br/>at&nbsp;&nbsp; 3:02&nbsp;&nbsp; /every:m,t,w,th,f,s,su&nbsp;&nbsp; &#34;&#34;net stop SQLAgent$SQL2005&#34;&#34;&nbsp;&nbsp; <br/>at&nbsp;&nbsp; 3:02&nbsp;&nbsp; /every:m,t,w,th,f,s,su&nbsp;&nbsp; &#34;&#34;net stop MSSQL$SQL2005&#34;&#34;&nbsp;&nbsp; <br/>at&nbsp;&nbsp; 3:03&nbsp;&nbsp; /every:m,t,w,th,f,s,su&nbsp;&nbsp; &#34;&#34;net start MSSQL$SQL2005&#34;&#34;&nbsp;&nbsp; <br/>at&nbsp;&nbsp; 3:04&nbsp;&nbsp; /every:m,t,w,th,f,s,su&nbsp;&nbsp; &#34;&#34;net start SQLAgent$SQL2005 &#34;&#34;&nbsp;&nbsp; <br/><br/>重启IIS服务<br/>-----------------------------------------------<br/>at 3:05&nbsp;&nbsp;/every:m,t,w,th,f,s,su&nbsp;&nbsp;%systemroot%\system32\iisreset /restart<br/><br/><br/>由于是今天刚部属，所以效果还不晓得。不过这样至少可以缓解下服务器压力，避免服务器崩溃的发生<br/><br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.nmju.net/article.asp?id=137" /> 
	  <id>http://www.nmju.net/default.asp?id=137</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[IIS安全工具－ URLScan【有效防止注入式攻击】（2.应用）]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.nmju.net/</uri>
		 <email>luckcf@gmail.com</email>
	  </author>
	  <category term="" scheme="http://www.nmju.net/default.asp?cateID=14" label="Server" /> 
	  <updated>2008-12-12T09:25:43+08:00</updated>
	  <published>2008-12-12T09:25:43+08:00</published>
		  <summary type="html"><![CDATA[<br/>URLScan 的所有配置都是通过 URLScan.ini 文件执行的，此文件位于 %WINDIR%\System32\Inetsrv\URLscan 文件夹中。要配置 URLScan，请在文本编辑器（如记事本）中打开此文件，进行相应的更改，然后保存此文件。 <br/><br/>打开urlscan.ini<br/><br/>搜索RuleList= 然后加在这里<br/><br/>RuleList=SQL Injection<br/>[SQL Injection]<br/>AppliesTo=.asp,.aspx<br/>DenyDataSection=SQL Injection Strings<br/>ScanUrl=1<br/>ScanAllRaw=0<br/>ScanQueryString=1<br/>ScanHeaders=<br/>DenyUnescapedPercent=1 <br/><br/>[SQL Injection Strings]<br/>--<br/>%3b ; a semicolon<br/>/*<br/>@ ; also catches @@<br/>char ; also catches nchar and varchar<br/>alt&#101;r<br/>begin<br/>cast<br/>convert<br/>cr&#101;ate<br/>cursor<br/>declare<br/>del&#101;te<br/>dro&#112;<br/>end<br/>exec ; also catches execute<br/>fetch<br/>ins&#101;rt<br/>kill<br/>open<br/>sel&#101;ct<br/>sys ; also catches sysobjects and syscolumns<br/>table<br/>up&#100;ate<br/><br/><br/>----------------------------------------------------------------<br/><strong>有时候如果出现网站无法正常的话就把上面这一段替换这样</strong><br/><br/>RuleList=SQL Injection<br/><br/><br/>[SQL Injection Strings]<br/>--<br/>%3b ; a semicolon<br/>/*<br/>@ ; also catches @@<br/>char ; also catches nchar and varchar<br/>alt&#101;r<br/>begin<br/>cast<br/>convert<br/>cr&#101;ate<br/>cursor<br/>declare<br/>del&#101;te<br/>dro&#112;<br/>end<br/>exec ; also catches execute<br/>fetch<br/>ins&#101;rt<br/>kill<br/>open<br/>sel&#101;ct<br/>sys ; also catches sysobjects and syscolumns<br/>table<br/>up&#100;ate<br/><br/>[SQL Injection]<br/>AppliesTo=.asp,.aspx<br/>DenyDataSection=SQL Injection Strings<br/>ScanUrl=1<br/>ScanAllRaw=0<br/>ScanQueryString=1<br/>ScanHeaders=<br/>DenyUnescapedPercent=1 <br/><br/>----------------------------------------------------<br/><strong>如果不需要使用URLSCAN的时候，可以在IIS的ISAPI筛选器中把响应的项目删除即可</strong><br/><br/>----------------------------------------------------<br/><a target="_blank" href="http://www.nmju.net//UserFiles/urlscan.rar" rel="external">软件下载</a>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.nmju.net/article.asp?id=125" /> 
	  <id>http://www.nmju.net/default.asp?id=125</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[IIS安全工具－ URLScan【有效防止注入式攻击】（1.解释含义）]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.nmju.net/</uri>
		 <email>luckcf@gmail.com</email>
	  </author>
	  <category term="" scheme="http://www.nmju.net/default.asp?cateID=14" label="Server" /> 
	  <updated>2008-12-12T09:21:50+08:00</updated>
	  <published>2008-12-12T09:21:50+08:00</published>
		  <summary type="html"><![CDATA[昨天去做了个应急，用到了URLScan，感觉还不错。<br/>微软出品，文件不大109k，适用于IIS4及以上版本～<br/>安装配置起来更是简单～，推荐大家不妨用来试试～ hoho<br/>安装 URLScan<br/>要安装 URLScan，请访问下面的 Microsoft Developer Network (MSDN) 网站： <br/><a href="http://msdn2.microsoft.com/en-us/library/aa302368.aspx" target="_blank" rel="external">http://msdn2.microsoft.com/en-us/library/aa302368.aspx</a><br/><br/>修改 URLScan.ini 文件<br/>URLScan 的所有配置都是通过 URLScan.ini 文件执行的，此文件位于 %WINDIR%\System32\Inetsrv\URLscan 文件夹中。要配置 URLScan，请在文本编辑器（如记事本）中打开此文件，进行相应的更改，然后保存此文件。<br/><br/>注意：要使更改生效，必须重新启动 Internet 信息服务 (IIS)。一种快速的实现方法是在命令提示符处运行 IISRESET。<br/><br/>URLScan.ini 文件包含以下几节： <br/>•&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[Options]：此节描述常规 URLScan 选项。<br/>•&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[AllowVerbs] 和 [DenyVerbs]：此节定义 URLScan 允许的谓词（又称作 HTTP 方法）。<br/>•&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[DenyHeaders]：此节列出 HTTP 请求中不允许的 HTTP 标头。如果 HTTP 请求中包含此节中列出的 HTTP 标头之一，URLScan 将拒绝该请求。<br/>•&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[AllowExtensions] 和 [DenyExtensions]：此节定义 URLScan 允许的文件扩展名。<br/>•&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[DenyURLSequences]：此节列出 HTTP 请求中不允许的字符串。URLScan 拒绝那些包含此节中出现的字符串的 HTTP 请求。<br/><br/><br/><br/>配置 URLScan 用于依赖于 IIS 的应用程序<br/>Exchange、FPSE 和 Microsoft Visual Studio .NET 这类应用程序的正常运行依赖于 IIS。如果没有正确配置 URLScan，这些应用程序可能会停止正常运行。<br/><br/><strong>下面是一些配置细节，感兴趣的可以研究一下</strong><br/>[Options] 节<br/>在 [Options] 节中，可以配置许多 URLScan 选项。此节中的每一行都具有以下格式： <br/>OptionName=OptionValue<br/>可用选项及其默认值如下所示： <br/>•&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UseAllowVerbs=1<br/><br/>默认情况下，此选项设置为 1。如果将此选项设置为 1，则 URLScan 仅允许那些使用 [AllowVerbs] 节中列出的谓词的 HTTP 请求。URLScan 禁止任何不使用这些谓词的请求。如果将此选项设置为 0，则 URLScan 忽略 [AllowVerbs] 节，相反仅禁止那些使用 [DenyVerbs] 节中列出的谓词的请求。<br/>•&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UseAllowExtensions=0<br/><br/>默认情况下，此选项设置为 0。如果将此选项设置为 0，则 URLScan 禁止对 [DenyExtensions] 节中列出的文件扩展名的请求，但允许对任何其他文件扩展名的请求。如果将此选项设置为 1，则 URLScan 仅允许对带 [AllowExtensions] 节中列出的扩展名的文件的请求，而禁止对任何其他文件的请求。<br/>•&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NormalizeUrlBeforeScan=1<br/><br/>IIS 收到用 URL 编码的请求。这表示某些字符可能被替换为百分号 (%) 后跟特定的数字。例如，%20 对应于一个空格，因此，对 <a href="http://myserver/My%20Dir/My%20File.htm" target="_blank" rel="external">http://myserver/My%20Dir/My%20File.htm</a> 的请求与对 <a href="http://myserver/My" target="_blank" rel="external">http://myserver/My</a> Dir/My File.htm 的请求是相同的。标准化就是对 URL 编码请求进行解码的过程。默认情况下，此选项设置为 1。如果将 NormalizeUrlBeforeScan 选项设置为 1，则 URLScan 分析已解码的请求。如果将此选项设置为 0，则 URLScan 分析未解码的请求。将此选项设置为 0 会影响 URLScan 禁止某种攻击的能力。<br/>•&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;VerifyNormalization=1<br/><br/>由于百分号 (%) 本身可以是 URL 编码的，所以攻击者可以向服务器提交一个精心制作的、基本上是双重编码的请求。如果发生这种情况，IIS 可能会接受本应视作无效而拒绝的请求。默认情况下，此选项设置为 1。如果将 VerifyNormalization 选项设置为 1，则 URLScan 将对 URL 执行两次标准化。如果第一次标准化后的 URL 与第二次标准化后的 URL 不同，URLScan 将拒绝该请求。这样就可以防止那些依赖双重编码请求的攻击。<br/>•&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AllowHighBitCharacters=0<br/><br/>默认情况下，此选项设置为 0。如果将此选项设置为 0，则 URLScan 拒绝任何包含非 ASCII 字符的请求。这样可以防止某些类型的攻击，但同时可能也会禁止对某些合法文件的请求，如带有非英文名的文件。<br/>•&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AllowDotInPath=0<br/><br/>默认情况下，此选项设置为 0。如果将此选项设置为 0，则 URLScan 拒绝所有包含多个句点 (.) 的请求。这样可以防止通过将安全的文件扩展名放入 URL 的路径信息或查询字符串部分，以达到伪装请求中的危险文件扩展名的企图。例如，如果将此选项设置为 1，则 URLScan 可能允许对 <a href="http://servername/BadFile.exe/SafeFile.htm" target="_blank" rel="external">http://servername/BadFile.exe/SafeFile.htm</a> 的请求，因为它认为这是对 HTML 页的请求，但实际上这是一个对可执行 (.exe) 文件的请求，而该文件的名称在 PATH_INFO 区域中显示为 HTML 页的名称。如果将此选项设置为 0，URLScan 可能还会拒绝对包含句点的目录的请求。<br/>•&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RemoveServerHeader=0<br/><br/>默认情况下，Web 服务器返回一个标头，其中指出了 Web 服务器在所有响应中运行的 Web 服务器软件。这会增加服务器遭受攻击的可能性，因为攻击者可以确定服务器正在运行 IIS，于是便攻击已知的 IIS 问题，而不是试图使用为其他 Web 服务器设计的攻击手段来攻击 IIS 服务器。默认情况下，此选项设置为 0。如果将 RemoveServerHeader 选项设置为 1，可以防止您的服务器发送将其标识为 IIS 服务器的标头。如果将 RemoveServerHeader 设置为 0，则仍发送此标头。<br/>•&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Alt&#101;rnateServerName=（默认情况下不指定）<br/><br/>如果将 RemoveServerHeader 设置为 0，可以在 Alt&#101;rnateServerName 选项中指定一个字符串以指定将在服务器标头中传回的内容。如果将 RemoveServerHeader 设置为 1，则此选项将被忽略。<br/>•&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EnableLogging=1<br/><br/>默认情况下，URLScan 在 %WINDIR%\System32\Inetsrv\URLScan 中保留所有被禁止的请求的完整日志。如果不希望保留此日志，可将 EnableLogging 设置为 0。<br/>•&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PerProcessLogging=0<br/><br/>默认情况下，此选项设置为 0。如果将此选项设置为 1，URLScan 将为承载 URLScan.dll 的每个进程创建一个单独的日志。如果将此选项设置为 0，所有进程将记录到同一个文件中。<br/>•&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PerDayLogging=1<br/><br/>默认情况下，此选项设置为 1。如果将该值设置为 1，则 URLScan 每天创建一个新的日志文件。每个日志文件的名称都是 Urlscan.MMDDYY.log，其中 MMDDYY 是日志文件的日期。如果将该值设置为 0，则所有日志记录都保存在同一个文件中，与日期无关。<br/>•&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AllowLateScanning=0<br/><br/>默认情况下，此选项设置为 0。如果将此选项设置为 0，则 URLScan 作为高优先级筛选器运行，这表示它先于服务器上安装的所有其他 Internet 服务器应用程序编程接口 (ISAPI) 筛选器执行。如果将此选项设置为 1，则 URLScan 作为低优先级筛选器运行，以便其他筛选器可以在 URLScan 进行任何分析之前修改 URL。FrontPage Server Extensions (FPSE) 要求将此选项设置为 1。<br/>•&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RejectResponseUrl=（默认情况下不指定）<br/><br/>此选项指定在 URLScan 禁止请求时运行的文件的虚拟路径。这允许您自定义针对被禁止的请求发送给客户机的响应。必须将 RejectResponseUrl 指定为相应文件的虚拟路径，如 /Path/To/RejectResponseHandler.asp。可以指定 URLScan 通常禁止的文件，如 Active Server Pages (ASP) 页。还可以从该页指定以下服务器变量： <br/>•&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HTTP_URLSCAN_STATUS_HEADER：此变量指定请求被禁止的原因。<br/>•&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HTTP_URLSCAN_ORIGINAL_VERB：此变量指定被禁止的请求中的原始谓词（例如 GET、POST、HEAD 或 DEBUG）。<br/>•&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HTTP_URLSCAN_ORIGINAL_URL：此变量指定被禁止的请求中的原始 URL。<br/>如果将 RejectResponseUrl 设置为特殊值 /~*，则 URLScan 使用“仅日志记录”模式。这允许 IIS 为所有请求提供服务，但它会在 URLScan 日志中为所有通常被禁止的请求添加相应的项。这在需要测试 URLScan.ini 文件时很有用。<br/><br/>如果没有指定 RejectResponseUrl 的值，则 URLScan 使用默认值 /&lt;Rejected-By-UrlScan&gt;。<br/>•&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UseFastPathReject=0<br/><br/>默认情况下，此选项设置为 0。如果将此选项设置为 1，则 URLScan 忽略 RejectResponseUrl 设置并立即向浏览器返回 404 错误信息。这比处理 RejectResponseUrl 要快，但它允许的日志记录选项没有那么多。如果将此选项设置为 0，则 URLScan 使用 RejectResponseUrl 设置来处理请求。<br/>[AllowVerbs] 节和 [DenyVerbs] 节<br/>[AllowVerbs] 节和 [DenyVerbs] 节定义 URLScan 允许的 HTTP 谓词（又称作方法）。常用的 HTTP 谓词包括 GET、POST、HEAD 和 PUT。其他应用程序（如 FPSE 和 Web 分布式创作和版本控制 (WebDAV)）使用更多的谓词。<br/><br/>[AllowVerbs] 节和 [DenyVerbs] 节的语法相同。它们由 HTTP 谓词列表组成，每个谓词占一行。<br/><br/>URLScan 根据 [Options] 节中 UseAllowVerbs 选项的值来决定使用哪一节。默认情况下，此选项设置为 1。如果将 UseAllowVerbs 设置为 1，则 URLScan 仅允许那些使用 [AllowVerbs] 节中列出的谓词的请求。不使用任何这些谓词的请求将被拒绝。在这种情况下，[DenyVerbs] 节被忽略。<br/><br/>如果将 UseAllowVerbs 设置为 0，则 URLScan 拒绝那些使用 [DenyVerbs] 节中明确列出的谓词的请求。允许任何使用未在此节中出现的谓词的请求。在这种情况下，URLScan 忽略 [AllowVerbs] 节。<br/><br/><br/>[DenyHeaders] 节<br/>当客户机向 Web 服务器请求页面时，它通常会发送一些包含有关此请求的其他信息的 HTTP 标头。常见的 HTTP 标头包括： <br/>•&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Host:<br/><br/>此标头包含 Web 服务器的名称。<br/>•&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Accept:<br/><br/>此标头定义客户机可以处理的文件类型。<br/>•&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;User-Agent:<br/><br/>此标头包含请求页面的浏览器的名称。<br/>•&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Authorization:<br/><br/>此标头定义客户机支持的身份验证方法。<br/>客户机可能会向服务器发送其他标头以指定其他信息。<br/><br/>在 [DenyHeaders] 节中，您定义 URLScan 将拒绝的 HTTP 标头。如果 URLScan 收到的请求中包含此节中列出的任何标头，它将拒绝该请求。此节由 HTTP 标头列表组成，每个标头占一行。标头名后面必须跟一个冒号 (:)（例如 Header-Name:）。<br/><br/><br/>[AllowExtensions] 节和 [DenyExtensions] 节<br/>大多数文件都有一个标识其文件类型的文件扩展名。例如，Word 文档的文件名一般以 .doc 结束，HTML 文件名一般以 .htm 或 .html 结束，纯文本文件名一般以 .txt 结束。[AllowExtensions] 节和 [DenyExtensions] 节允许您定义 URLScan 将禁止的扩展名。例如，您可以配置 URLScan 以拒绝对 .exe 文件的请求，防止 Web 用户在您的系统上执行应用程序。<br/><br/>[AllowExtensions] 节和 [DenyExtensions] 节的语法相同。它们由文件扩展名列表组成，每个扩展名占一行。扩展名以句点 (.) 开头（例如 .ext）。<br/><br/>URLScan 根据 [Options] 节中 UseAllowExtensions 的值来决定使用哪一节。默认情况下，此选项设置为 0。如果将 UseAllowExtensions 设置为 0，则 URLScan 仅拒绝对 [DenyExtensions] 节中列出的文件扩展名的请求。允许此节中未列出的任何文件扩展名。[AllowExtensions] 节被忽略。<br/><br/>如果将 UseAllowExtensions 设置为 1，则 URLScan 拒绝对 [AllowExtensions] 节中未明确列出的任何文件扩展名的请求。仅允许对此节中列出的文件扩展名的请求。[DenyExtensions] 节被忽略。<br/><br/><br/>[DenyUrlSequences] 节<br/>可以配置 URLScan 以禁止那些 URL 中包含某些字符序列的请求。例如，可以禁止那些包含两个连续句点 (..) 的请求，利用目录遍历漏洞的攻击中经常采用这种手段。要指定一个想要禁止的字符序列，请将此序列单独放在 [DenyUrlSequences] 节中的一行上。<br/><br/>请注意，添加字符序列可能会对 Microsoft Exchange 的 Outlook Web Access (OWA) 产生负面影响。当您从 OWA 打开一个邮件时，该邮件的主题行包含在服务器所请求的 URL 中。由于 URLScan.ini 文件禁止任何包含百分号 (%) 和连字符 (&amp;) 的请求，因此，当用户尝试打开主题行为“Sales increase by 100%”或“Bob &amp; Sue are coming to town”的邮件时，会收到 404 错误信息。要解决此问题，可以从 [DenyUrlSequences] 节中删除这些序列。请注意，这样做会降低安全性，因为它有可能允许危险的请求到达服务器。<br/><br/>----------------------------------------------------<br/><a target="_blank" href="http://www.nmju.net//UserFiles/urlscan.rar" rel="external">软件下载</a>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.nmju.net/article.asp?id=124" /> 
	  <id>http://www.nmju.net/default.asp?id=124</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[Windows Server2003 防木马权限设置IIS服务器安全配置整理]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.nmju.net/</uri>
		 <email>luckcf@gmail.com</email>
	  </author>
	  <category term="" scheme="http://www.nmju.net/default.asp?cateID=14" label="Server" /> 
	  <updated>2008-11-04T19:05:41+08:00</updated>
	  <published>2008-11-04T19:05:41+08:00</published>
		  <summary type="html"><![CDATA[参考了网络上很多关于WIN2003的安全设置以及自己动手做了一些实践，综合了这些安全设置文章整理而成，希望对大家有所帮助，另外里面有不足之处还请大家多多指点，然后给补上，谢谢！<br/><br/>一、系统的安装　　 <br/>１、按照Windows2003安装光盘的提示安装，默认情况下2003没有把IIS6.0安装在系统里面。<br/>２、IIS6.0的安装<br/>开始菜单—&gt;控制面板—&gt;添加或删除程序—&gt;添加/删除Windows组件<br/>应用程序 ———ASP.NET（可选）<br/>|——启用网络 COM+ 访问（必选）<br/>|——Internet 信息服务(IIS)———Internet 信息服务管理器（必选）　<br/>|——公用文件（必选）<br/>|——万维网服务———Active Server pages（必选）<br/>|——Internet 数据连接器（可选） <br/>|——WebDAV 发布（可选）<br/>|——万维网服务（必选）<br/>|——在服务器端的包含文件（可选）<br/>然后点击确定—&gt;下一步安装。（具体见本文附件1）<br/><br/>３、系统补丁的更新<br/>点击开始菜单—&gt;所有程序—&gt;Windows Up&#100;ate<br/>按照提示进行补丁的安装。<br/><br/>４、备份系统<br/>用GHOST备份系统。<br/><br/>５、安装常用的软件<br/>例如：杀毒软件、解压缩软件等；安装完毕后,配置杀毒软件,扫描系统漏洞,安装之后用GHOST再次备份系统。<br/><br/>6、先关闭不需要的端口 开启防火墙 导入IPSEC策略<br/>在” 网络连接”里，把不需要的协议和服务都删掉，这里只安装了基本的Internet协议（TCP/IP），由于要控制带宽流量服务，额外安装了Qos数据包 计划程序。在高级tcp/ip设置里--&#34;NetBIOS&#34;设置&#34;禁用tcp/IP上的NetBIOS（S）&#34;。在高级选项里，使用&#34;Internet连 接防火墙&#34;，这是windows 2003 自带的防火墙，在2000系统里没有的功能，虽然没什么功能，但可以屏蔽端口，这样已经基本达到了一个IPSec的功能。<br/><br/>修改3389远程连接端口<br/>修改注册表. <br/>开始--运行--regedit <br/>依次展开 HKEY_LOCAL_MACHINE/SYSTEM/CURRENTCONTROLSET/CONTROL/ <br/>TERMINAL SERVER/WDS/RDPWD/TDS/TCP <br/>右边键值中 PortNumber 改为你想用的端口号.注意使用十进制(例 10000 ) <br/><br/>HKEY_LOCAL_MACHINE/SYSTEM/CURRENTCONTROLSET/CONTROL/TERMINAL SERVER/ <br/>WINSTATIONS/RDP-TCP/ <br/>右边键值中 PortNumber 改为你想用的端口号.注意使用十进制(例 10000 ) <br/>注意：别忘了在WINDOWS2003自带的防火墙给+上10000端口<br/>修改完毕.重新启动服务器.设置生效.<br/><br/>二、用户安全设置 <br/>1、禁用Guest账号 <br/>在计算机管理的用户里面把Guest账号禁用。为了保险起见，最好给Guest加一个复杂的密码。你可以打开记事本，在里面输入一串包含特殊字符、数字、字母的长字符串，然后把它作为Guest用户的密码拷进去。 <br/>2、限制不必要的用户 <br/>去掉所有的Duplicate User用户、测试用户、共享用户等等。用户组策略设置相应权限，并且经常检查系统的用户，删除已经不再使用的用户。这些用户很多时候都是黑客们入侵系统的突破口。 <br/>3、把系统Administrator账号改名 <br/>大家都知道，Windows 2003 的Administrator用户是不能被停用的，这意味着别人可以一遍又一遍地尝试这个用户的密码。尽量把它伪装成普通用户，比如改成Guesycludx。 <br/>4、创建一个陷阱用户 <br/>什么是陷阱用户?即创建一个名为“Administrator”的本地用户，把它的权限设置成最低，什么事也干不了的那种，并且加上一个超过10位的超级复杂密码。这样可以让那些 Hacker们忙上一段时间，借此发现它们的入侵企图。 <br/>5、把共享文件的权限从Everyone组改成授权用户 <br/>任何时候都不要把共享文件的用户设置成“Everyone”组，包括打印共享，默认的属性就是“Everyone”组的，一定不要忘了改。 <br/>6、开启用户策略 <br/>使用用户策略，分别设置复位用户锁定计数器时间为20分钟，用户锁定时间为20分钟，用户锁定阈值为3次。 （该项为可选）<br/>7、不让系统显示上次登录的用户名 <br/>默 认情况下，登录对话框中会显示上次登录的用户名。这使得别人可以很容易地得到系统的一些用户名，进而做密码猜测。修改注册表可以不让对话框里显示上次登录 的用户名。方法为：打开注册表编辑器并找到注册表“HKLM\Software\Microsoft\Windows T\CurrentVersion\Winlogon\Dont-DisplayLastUserName”，把REG_SZ的键值改成1。 <br/>密码安全设置 <br/>1、使用安全密码 <br/>一些公司的管理员创建账号的时候往往用公司名、计算机名做用户名，然后又把这些用户的密码设置得太简单，比如“welcome”等等。因此，要注意密码的复杂性，还要记住经常改密码。 <br/>2、设置屏幕保护密码 <br/>这是一个很简单也很有必要的操作。设置屏幕保护密码也是防止内部人员破坏服务器的一个屏障。 <br/>3、开启密码策略 <br/>注意应用密码策略，如启用密码复杂性要求，设置密码长度最小值为6位 ，设置强制密码历史为5次，时间为42天。 <br/>4、考虑使用智能卡来代替密码 <br/>对于密码，总是使安全管理员进退两难，密码设置简单容易受到黑客的攻击，密码设置复杂又容易忘记。如果条件允许，用智能卡来代替复杂的密码是一个很好的解决方法。<br/>三、系统权限的设置<br/>１、磁盘权限<br/>系统盘及所有磁盘只给 Administrators 组和 SYSTEM 的完全控制权限<br/>系统盘\Documents and Settings 目录只给 Administrators 组和 SYSTEM 的完全控制权限<br/>系统盘\Documents and Settings\All Users 目录只给 Administrators 组和 SYSTEM 的完全控制权限<br/>系统盘\Windows\System32\cacls.exe、cmd.exe、net.exe、net1.exe、ftp.exe、 tftp.exe、telnet.exe 、 netstat.exe、regedit.exe、at.exe、attrib.exe、format.com、del文件只给 Administrators 组和SYSTEM 的完全 控制权限 <br/>另将&lt;systemroot&gt;\System32\cmd.exe、format.com、ftp.exe转移到其他目录或更名 <br/>Documents and Settings下所有些目录都设置只给adinistrators权限。并且要一个一个目录查看，包括下面的所有子目录。<br/>删除c:\inetpub目录<br/><br/>２、本地安全策略设置<br/>开始菜单—&gt;管理工具—&gt;本地安全策略<br/>A、本地策略——&gt;审核策略 <br/>审核策略更改　　　成功　失败　　<br/>审核登录事件　　　成功　失败<br/>审核对象访问　　　　　　失败<br/>审核过程跟踪　　　无审核<br/>审核目录服务访问　　　　失败<br/>审核特权使用　　　　　　失败<br/>审核系统事件　　　成功　失败<br/>审核账户登录事件　成功　失败<br/>审核账户管理　　　成功　失败<br/><br/>B、本地策略——&gt;用户权限分配<br/>关闭系统：只有Administrators组、其它全部删除。 <br/>通过终端服务允许登陆：只加入Administrators,Remote Desktop Users组，其他全部删除<br/><br/>C、本地策略——&gt;安全选项<br/>交互式登陆：不显示上次的用户名　　　　　　　启用<br/>网络访问：不允许SAM帐户和共享的匿名枚举　 启用<br/>网络访问：不允许为网络身份验证储存凭证　　　启用<br/>网络访问：可匿名访问的共享　　　　　　　　　全部删除<br/>网络访问：可匿名访问的命　　　　　　　　　　全部删除<br/>网络访问：可远程访问的注册表路径　　　　　　全部删除 <br/>网络访问：可远程访问的注册表路径和子路径　　全部删除 <br/>帐户：重命名来宾帐户　　　　　　　　　　　　重命名一个帐户 <br/>帐户：重命名系统管理员帐户　　　　　　　　　重命名一个帐户<br/><br/>３、禁用不必要的服务 开始-运行-services.msc<br/>TCP/IPNetBIOS Helper提供 TCP/IP 服务上的 NetBIOS 和网络上客户端的 NetBIOS 名称解析的支持而使用户能够共享<br/>文件、打印和登录到网络<br/>Server支持此计算机通过网络的文件、打印、和命名管道共享<br/>Computer Browser 维护网络上计算机的最新列表以及提供这个列表 <br/>Task scheduler 允许程序在指定时间运行 <br/>Messenger 传输客户端和服务器之间的 NET SEND 和 警报器服务消息 <br/>Distributed File System: 局域网管理共享文件，不需要可禁用 <br/>Distributed linktracking client：用于局域网更新连接信息，不需要可禁用 <br/>Error reporting service：禁止发送错误报告 <br/>Microsoft Serch：提供快速的单词搜索，不需要可禁用 <br/>NTLMSecuritysupportprovide：telnet服务和Microsoft Serch用的，不需要可禁用 <br/>PrintSpooler：如果没有打印机可禁用 <br/>Remote Registry：禁止远程修改注册表 <br/>Remote Desktop Help Session Manager：禁止远程协助 <br/>Workstation 关闭的话远程NET命令列不出用户组<br/>以上是在Windows Server 2003 系统上面默认启动的服务中禁用的，默认禁用的服务如没特别需要的话不要启动。<br/><br/>４、修改注册表<br/>修改注册表，让系统更强壮<br/>1、隐藏重要文件/目录可以修改注册表实现完全隐藏<br/>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\ Current-Version\Explorer\Advanced\Folder\Hi-dden\SHOWALL”，鼠标右击 “CheckedValue”，选择修改，把数值由1改为0 <br/><br/>2、防止SYN洪水攻击 <br/>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters <br/>新建DWORD值，名为SynAttackProtect，值为2 <br/>新建EnablePMTUDiscovery REG_DWORD 0 <br/>新建NoNameReleaseOnDemand REG_DWORD 1 <br/>新建EnableDeadGWDetect REG_DWORD 0 <br/>新建KeepAliveTime REG_DWORD 300,000 <br/>新建PerformRouterDiscovery REG_DWORD 0 <br/>新建EnableICMPRedirects REG_DWORD 0<br/><br/>3. 禁止响应ICMP路由通告报文 <br/>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\interface <br/>新建DWORD值，名为PerformRouterDiscovery 值为0 <br/><br/>4. 防止ICMP重定向报文的攻击 <br/>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters <br/>将EnableICMPRedirects 值设为0 <br/><br/>5. 不支持IGMP协议 <br/>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters <br/>新建DWORD值，名为IGMPLevel 值为0<br/>6、禁止IPC空连接：<br/>cracker可以利用net use命令建立空连接，进而入侵，还有net view，nbtstat这些都是基于空连接的，禁止空连接就好了。<br/>Local_Machine\System\CurrentControlSet\Control\LSA-RestrictAnonymous 把这个值改成”1”即可。<br/><br/>7、更改TTL值<br/>cracker可以根据ping回的TTL值来大致判断你的操作系统，如： <br/>TTL=107(WINNT); <br/>TTL=108(win2000); <br/>TTL=127或128(win9x); <br/>TTL=240或241(linux); <br/>TTL=252(solaris); <br/>TTL=240(Irix); <br/>实 际上你可以自己改的：HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\ Parameters：DefaultTTL REG_DWORD 0-0xff(0-255 十进制,默认值128)改成一个莫名其妙的数字如258，起码让那些小菜鸟晕上半天，就此放弃入侵你也不一定哦<br/><br/>8. 删除默认共享<br/>有人问过我一开机就共享所有盘，改回来以后，重启又变成了共享是怎么回事，这是2K为管理而设置的默认共享，HKEY_LOCAL_MACHINE\ SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters： AutoShareServer类型是REG_DWORD把值改为0即可<br/><br/>9. 禁止建立空连接 <br/>默认情况下，任何用户通过通过空连接连上服务器，进而枚举出帐号，猜测密码。我们可以通过修改注册表来禁止建立空连接： <br/>Local_Machine\System\CurrentControlSet\Control\LSA-RestrictAnonymous 的值改成”1”即可。<br/><br/>10、建立一个记事本，填上以下代码。保存为*.bat并加到启动项目中<br/>net share c$ /del<br/>net share d$ /del<br/>net share e$ /del<br/>net share f$ /del<br/>net share ipc$ /del<br/>net share admin$ /del<br/><br/>5、IIS站点设置：<br/>1、将IIS目录＆数据与系统磁盘分开，保存在专用磁盘空间内。<br/>2、启用父级路径 <br/>3、在IIS管理器中删除必须之外的任何没有用到的映射（保留asp等必要映射即可）<br/>4、在IIS中将HTTP404 Object Not Found出错页面通过URL重定向到一个定制HTM文件<br/>5、Web站点权限设定（建议）<br/>读 允许<br/>写 不允许<br/>脚本源访问 不允许<br/>目录浏览 建议关闭<br/>日志访问 建议关闭<br/>索引资源 建议关闭<br/>执行 推荐选择 “仅限于脚本” <br/>6、 建议使用W3C扩充日志文件格式，每天记录客户IP地址，用户名，服务器端口，方法，URI字根，HTTP状态，用户代理，而且每天均要审查日志。（最好 不要使用缺省的目录，建议更换一个记日志的路径，同时设置日志的访问权限，只允许管理员和system为Full Control）。 <br/>7、程序安全:<br/>1) 涉及用户名与口令的程序最好封装在服务器端，尽量少的在ASP文件里出现，涉及到与数据库连接地用户名与口令应给予最小的权限;<br/>2) 需要经过验证的ASP页面，可跟踪上一个页面的文件名，只有从上一页面转进来的会话才能读取这个页面。<br/>3) 防止ASP主页.inc文件泄露问题;<br/>4) 防止UE等编辑器生成some.asp.bak文件泄露问题。<br/><br/>6、IIS权限设置的思路<br/>?要为每个独立的要保护的个体（比如一个网站或者一个虚拟目录）创建一个系统用户，让这个站点在系统中具有惟一的可以设置权限的身份。 <br/>?在IIS的【站点属性或者虚拟目录属性→目录安全性→匿名访问和验证控制→编辑→匿名访问→编辑】填写刚刚创建的那个用户名。 <br/>?设置所有的分区禁止这个用户访问，而刚才这个站点的主目录对应的那个文件夹设置允许这个用户访问（要去掉继承父权限，并且要加上超管组和SYSTEM组）。<br/><br/>7、卸载最不安全的组件<br/>最简单的办法是直接卸载后删除相应的程序文件。将下面的代码保存为一个.BAT文件，( 以下均以 WIN2000 为例，如果使用2003，则系统文件夹应该是 C:\WINDOWS\ )<br/>regsvr32/u C:\WINDOWS\System32\wshom.ocx<br/>del C:\WINDOWS\System32\wshom.ocx<br/>regsvr32/u C:\WINDOWS\system32\shell32.dll<br/>del C:\WINNT\WINDOWS\shell32.dll<br/><br/>然后运行一下，WScript.Shell, Shell.application, WScript.Network就会被卸载了。可能会提示无法删除文件，不用管它，重启一下服务器，你会发现这三个都提示“×安全”了。<br/>去<a href="http://www.ajiang.net/products/aspcheck/" target="_blank" rel="external">http://www.ajiang.net/products/aspcheck/</a>下载阿江的探针查看相关安全设置情况参考了网络上很多关于WIN2003的安全设置以及自己动手做了一些实践，综合了这些安全设置文章整理而成，希望对大家有所帮助，另外里面有不足之处还请大家多多指点，然后给补上，谢谢！<br/><br/>一、系统的安装　　 <br/>１、按照Windows2003安装光盘的提示安装，默认情况下2003没有把IIS6.0安装在系统里面。<br/>２、IIS6.0的安装<br/>开始菜单—&gt;控制面板—&gt;添加或删除程序—&gt;添加/删除Windows组件<br/>应用程序 ———ASP.NET（可选）<br/>|——启用网络 COM+ 访问（必选）<br/>|——Internet 信息服务(IIS)———Internet 信息服务管理器（必选）　<br/>|——公用文件（必选）<br/>|——万维网服务———Active Server pages（必选）<br/>|——Internet 数据连接器（可选） <br/>|——WebDAV 发布（可选）<br/>|——万维网服务（必选）<br/>|——在服务器端的包含文件（可选）<br/>然后点击确定—&gt;下一步安装。（具体见本文附件1）<br/><br/>３、系统补丁的更新<br/>点击开始菜单—&gt;所有程序—&gt;Windows Up&#100;ate<br/>按照提示进行补丁的安装。<br/><br/>４、备份系统<br/>用GHOST备份系统。<br/><br/>５、安装常用的软件<br/>例如：杀毒软件、解压缩软件等；安装完毕后,配置杀毒软件,扫描系统漏洞,安装之后用GHOST再次备份系统。<br/><br/>6、先关闭不需要的端口 开启防火墙 导入IPSEC策略<br/>在” 网络连接”里，把不需要的协议和服务都删掉，这里只安装了基本的Internet协议（TCP/IP），由于要控制带宽流量服务，额外安装了Qos数据包 计划程序。在高级tcp/ip设置里--&#34;NetBIOS&#34;设置&#34;禁用tcp/IP上的NetBIOS（S）&#34;。在高级选项里，使用&#34;Internet连 接防火墙&#34;，这是windows 2003 自带的防火墙，在2000系统里没有的功能，虽然没什么功能，但可以屏蔽端口，这样已经基本达到了一个IPSec的功能。<br/><br/>修改3389远程连接端口<br/>修改注册表. <br/>开始--运行--regedit <br/>依次展开 HKEY_LOCAL_MACHINE/SYSTEM/CURRENTCONTROLSET/CONTROL/ <br/>TERMINAL SERVER/WDS/RDPWD/TDS/TCP <br/>右边键值中 PortNumber 改为你想用的端口号.注意使用十进制(例 10000 ) <br/><br/>HKEY_LOCAL_MACHINE/SYSTEM/CURRENTCONTROLSET/CONTROL/TERMINAL SERVER/ <br/>WINSTATIONS/RDP-TCP/ <br/>右边键值中 PortNumber 改为你想用的端口号.注意使用十进制(例 10000 ) <br/>注意：别忘了在WINDOWS2003自带的防火墙给+上10000端口<br/>修改完毕.重新启动服务器.设置生效.<br/><br/>二、用户安全设置 <br/>1、禁用Guest账号 <br/>在计算机管理的用户里面把Guest账号禁用。为了保险起见，最好给Guest加一个复杂的密码。你可以打开记事本，在里面输入一串包含特殊字符、数字、字母的长字符串，然后把它作为Guest用户的密码拷进去。 <br/>2、限制不必要的用户 <br/>去掉所有的Duplicate User用户、测试用户、共享用户等等。用户组策略设置相应权限，并且经常检查系统的用户，删除已经不再使用的用户。这些用户很多时候都是黑客们入侵系统的突破口。 <br/>3、把系统Administrator账号改名 <br/>大家都知道，Windows 2003 的Administrator用户是不能被停用的，这意味着别人可以一遍又一遍地尝试这个用户的密码。尽量把它伪装成普通用户，比如改成Guesycludx。 <br/>4、创建一个陷阱用户 <br/>什么是陷阱用户?即创建一个名为“Administrator”的本地用户，把它的权限设置成最低，什么事也干不了的那种，并且加上一个超过10位的超级复杂密码。这样可以让那些 Hacker们忙上一段时间，借此发现它们的入侵企图。 <br/>5、把共享文件的权限从Everyone组改成授权用户 <br/>任何时候都不要把共享文件的用户设置成“Everyone”组，包括打印共享，默认的属性就是“Everyone”组的，一定不要忘了改。 <br/>6、开启用户策略 <br/>使用用户策略，分别设置复位用户锁定计数器时间为20分钟，用户锁定时间为20分钟，用户锁定阈值为3次。 （该项为可选）<br/>7、不让系统显示上次登录的用户名 <br/>默 认情况下，登录对话框中会显示上次登录的用户名。这使得别人可以很容易地得到系统的一些用户名，进而做密码猜测。修改注册表可以不让对话框里显示上次登录 的用户名。方法为：打开注册表编辑器并找到注册表“HKLM\Software\Microsoft\Windows T\CurrentVersion\Winlogon\Dont-DisplayLastUserName”，把REG_SZ的键值改成1。 <br/>密码安全设置 <br/>1、使用安全密码 <br/>一些公司的管理员创建账号的时候往往用公司名、计算机名做用户名，然后又把这些用户的密码设置得太简单，比如“welcome”等等。因此，要注意密码的复杂性，还要记住经常改密码。 <br/>2、设置屏幕保护密码 <br/>这是一个很简单也很有必要的操作。设置屏幕保护密码也是防止内部人员破坏服务器的一个屏障。 <br/>3、开启密码策略 <br/>注意应用密码策略，如启用密码复杂性要求，设置密码长度最小值为6位 ，设置强制密码历史为5次，时间为42天。 <br/>4、考虑使用智能卡来代替密码 <br/>对于密码，总是使安全管理员进退两难，密码设置简单容易受到黑客的攻击，密码设置复杂又容易忘记。如果条件允许，用智能卡来代替复杂的密码是一个很好的解决方法。<br/>三、系统权限的设置<br/>１、磁盘权限<br/>系统盘及所有磁盘只给 Administrators 组和 SYSTEM 的完全控制权限<br/>系统盘\Documents and Settings 目录只给 Administrators 组和 SYSTEM 的完全控制权限<br/>系统盘\Documents and Settings\All Users 目录只给 Administrators 组和 SYSTEM 的完全控制权限<br/>系统盘\Windows\System32\cacls.exe、cmd.exe、net.exe、net1.exe、ftp.exe、 tftp.exe、telnet.exe 、 netstat.exe、regedit.exe、at.exe、attrib.exe、format.com、del文件只给 Administrators 组和SYSTEM 的完全 控制权限 <br/>另将&lt;systemroot&gt;\System32\cmd.exe、format.com、ftp.exe转移到其他目录或更名 <br/>Documents and Settings下所有些目录都设置只给adinistrators权限。并且要一个一个目录查看，包括下面的所有子目录。<br/>删除c:\inetpub目录<br/><br/>２、本地安全策略设置<br/>开始菜单—&gt;管理工具—&gt;本地安全策略<br/>A、本地策略——&gt;审核策略 <br/>审核策略更改　　　成功　失败　　<br/>审核登录事件　　　成功　失败<br/>审核对象访问　　　　　　失败<br/>审核过程跟踪　　　无审核<br/>审核目录服务访问　　　　失败<br/>审核特权使用　　　　　　失败<br/>审核系统事件　　　成功　失败<br/>审核账户登录事件　成功　失败<br/>审核账户管理　　　成功　失败<br/><br/>B、本地策略——&gt;用户权限分配<br/>关闭系统：只有Administrators组、其它全部删除。 <br/>通过终端服务允许登陆：只加入Administrators,Remote Desktop Users组，其他全部删除<br/><br/>C、本地策略——&gt;安全选项<br/>交互式登陆：不显示上次的用户名　　　　　　　启用<br/>网络访问：不允许SAM帐户和共享的匿名枚举　 启用<br/>网络访问：不允许为网络身份验证储存凭证　　　启用<br/>网络访问：可匿名访问的共享　　　　　　　　　全部删除<br/>网络访问：可匿名访问的命　　　　　　　　　　全部删除<br/>网络访问：可远程访问的注册表路径　　　　　　全部删除 <br/>网络访问：可远程访问的注册表路径和子路径　　全部删除 <br/>帐户：重命名来宾帐户　　　　　　　　　　　　重命名一个帐户 <br/>帐户：重命名系统管理员帐户　　　　　　　　　重命名一个帐户<br/><br/>３、禁用不必要的服务 开始-运行-services.msc<br/>TCP/IPNetBIOS Helper提供 TCP/IP 服务上的 NetBIOS 和网络上客户端的 NetBIOS 名称解析的支持而使用户能够共享<br/>文件、打印和登录到网络<br/>Server支持此计算机通过网络的文件、打印、和命名管道共享<br/>Computer Browser 维护网络上计算机的最新列表以及提供这个列表 <br/>Task scheduler 允许程序在指定时间运行 <br/>Messenger 传输客户端和服务器之间的 NET SEND 和 警报器服务消息 <br/>Distributed File System: 局域网管理共享文件，不需要可禁用 <br/>Distributed linktracking client：用于局域网更新连接信息，不需要可禁用 <br/>Error reporting service：禁止发送错误报告 <br/>Microsoft Serch：提供快速的单词搜索，不需要可禁用 <br/>NTLMSecuritysupportprovide：telnet服务和Microsoft Serch用的，不需要可禁用 <br/>PrintSpooler：如果没有打印机可禁用 <br/>Remote Registry：禁止远程修改注册表 <br/>Remote Desktop Help Session Manager：禁止远程协助 <br/>Workstation 关闭的话远程NET命令列不出用户组<br/>以上是在Windows Server 2003 系统上面默认启动的服务中禁用的，默认禁用的服务如没特别需要的话不要启动。<br/><br/>４、修改注册表<br/>修改注册表，让系统更强壮<br/>1、隐藏重要文件/目录可以修改注册表实现完全隐藏<br/>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\ Current-Version\Explorer\Advanced\Folder\Hi-dden\SHOWALL”，鼠标右击 “CheckedValue”，选择修改，把数值由1改为0 <br/><br/>2、防止SYN洪水攻击 <br/>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters <br/>新建DWORD值，名为SynAttackProtect，值为2 <br/>新建EnablePMTUDiscovery REG_DWORD 0 <br/>新建NoNameReleaseOnDemand REG_DWORD 1 <br/>新建EnableDeadGWDetect REG_DWORD 0 <br/>新建KeepAliveTime REG_DWORD 300,000 <br/>新建PerformRouterDiscovery REG_DWORD 0 <br/>新建EnableICMPRedirects REG_DWORD 0<br/><br/>3. 禁止响应ICMP路由通告报文 <br/>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\interface <br/>新建DWORD值，名为PerformRouterDiscovery 值为0 <br/><br/>4. 防止ICMP重定向报文的攻击 <br/>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters <br/>将EnableICMPRedirects 值设为0 <br/><br/>5. 不支持IGMP协议 <br/>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters <br/>新建DWORD值，名为IGMPLevel 值为0<br/>6、禁止IPC空连接：<br/>cracker可以利用net use命令建立空连接，进而入侵，还有net view，nbtstat这些都是基于空连接的，禁止空连接就好了。<br/>Local_Machine\System\CurrentControlSet\Control\LSA-RestrictAnonymous 把这个值改成”1”即可。<br/><br/>7、更改TTL值<br/>cracker可以根据ping回的TTL值来大致判断你的操作系统，如： <br/>TTL=107(WINNT); <br/>TTL=108(win2000); <br/>TTL=127或128(win9x); <br/>TTL=240或241(linux); <br/>TTL=252(solaris); <br/>TTL=240(Irix); <br/>实 际上你可以自己改的：HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\ Parameters：DefaultTTL REG_DWORD 0-0xff(0-255 十进制,默认值128)改成一个莫名其妙的数字如258，起码让那些小菜鸟晕上半天，就此放弃入侵你也不一定哦<br/><br/>8. 删除默认共享<br/>有人问过我一开机就共享所有盘，改回来以后，重启又变成了共享是怎么回事，这是2K为管理而设置的默认共享，HKEY_LOCAL_MACHINE\ SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters： AutoShareServer类型是REG_DWORD把值改为0即可<br/><br/>9. 禁止建立空连接 <br/>默认情况下，任何用户通过通过空连接连上服务器，进而枚举出帐号，猜测密码。我们可以通过修改注册表来禁止建立空连接： <br/>Local_Machine\System\CurrentControlSet\Control\LSA-RestrictAnonymous 的值改成”1”即可。<br/><br/>10、建立一个记事本，填上以下代码。保存为*.bat并加到启动项目中<br/>net share c$ /del<br/>net share d$ /del<br/>net share e$ /del<br/>net share f$ /del<br/>net share ipc$ /del<br/>net share admin$ /del<br/><br/>5、IIS站点设置：<br/>1、将IIS目录＆数据与系统磁盘分开，保存在专用磁盘空间内。<br/>2、启用父级路径 <br/>3、在IIS管理器中删除必须之外的任何没有用到的映射（保留asp等必要映射即可）<br/>4、在IIS中将HTTP404 Object Not Found出错页面通过URL重定向到一个定制HTM文件<br/>5、Web站点权限设定（建议）<br/>读 允许<br/>写 不允许<br/>脚本源访问 不允许<br/>目录浏览 建议关闭<br/>日志访问 建议关闭<br/>索引资源 建议关闭<br/>执行 推荐选择 “仅限于脚本” <br/>6、 建议使用W3C扩充日志文件格式，每天记录客户IP地址，用户名，服务器端口，方法，URI字根，HTTP状态，用户代理，而且每天均要审查日志。（最好 不要使用缺省的目录，建议更换一个记日志的路径，同时设置日志的访问权限，只允许管理员和system为Full Control）。 <br/>7、程序安全:<br/>1) 涉及用户名与口令的程序最好封装在服务器端，尽量少的在ASP文件里出现，涉及到与数据库连接地用户名与口令应给予最小的权限;<br/>2) 需要经过验证的ASP页面，可跟踪上一个页面的文件名，只有从上一页面转进来的会话才能读取这个页面。<br/>3) 防止ASP主页.inc文件泄露问题;<br/>4) 防止UE等编辑器生成some.asp.bak文件泄露问题。<br/><br/>6、IIS权限设置的思路<br/>?要为每个独立的要保护的个体（比如一个网站或者一个虚拟目录）创建一个系统用户，让这个站点在系统中具有惟一的可以设置权限的身份。 <br/>?在IIS的【站点属性或者虚拟目录属性→目录安全性→匿名访问和验证控制→编辑→匿名访问→编辑】填写刚刚创建的那个用户名。 <br/>?设置所有的分区禁止这个用户访问，而刚才这个站点的主目录对应的那个文件夹设置允许这个用户访问（要去掉继承父权限，并且要加上超管组和SYSTEM组）。<br/><br/>7、卸载最不安全的组件<br/>最简单的办法是直接卸载后删除相应的程序文件。将下面的代码保存为一个.BAT文件，( 以下均以 WIN2000 为例，如果使用2003，则系统文件夹应该是 C:\WINDOWS\ )<br/>regsvr32/u C:\WINDOWS\System32\wshom.ocx<br/>del C:\WINDOWS\System32\wshom.ocx<br/>regsvr32/u C:\WINDOWS\system32\shell32.dll<br/>del C:\WINNT\WINDOWS\shell32.dll<br/><br/>然后运行一下，WScript.Shell, Shell.application, WScript.Network就会被卸载了。可能会提示无法删除文件，不用管它，重启一下服务器，你会发现这三个都提示“×安全”了。<br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.nmju.net/article.asp?id=115" /> 
	  <id>http://www.nmju.net/default.asp?id=115</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[IIS服务器管理资源的几个方法和工具]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.nmju.net/</uri>
		 <email>luckcf@gmail.com</email>
	  </author>
	  <category term="" scheme="http://www.nmju.net/default.asp?cateID=14" label="Server" /> 
	  <updated>2008-11-04T19:04:53+08:00</updated>
	  <published>2008-11-04T19:04:53+08:00</published>
		  <summary type="html"><![CDATA[<div id="all">
<div id="main" style="height: auto">
<div id="mainWrapper" style="margin: 0pt auto; width: 980px">
<div id="center" style="width: 690px">
<div id="center_0" style="display: inline">
<div id="single_news">
<div class="item_row_1" id="item_610480643">
<div class="item_body_left"><span style="display: inline; margin-left: 20px">
<div class="item_desc" id="item_desc_610480643" style="display: inline">这个命题，对于单独的网站拥有者，或者来说，针对单独的网站应用程序池来说，作用不是太大，但大多数玩web服务器的，拥有的可不止是一个网站一个应用程序池，特别对于iis6来说，应用程序池的分离管理，极大的提高了iis的应用效果。<!--add by zhuaxia-->
<p><strong>解决w3wp.exe内存占用问题</strong></p>
<!--add by zhuaxia-->
<p>在IIS6下，经常出现w3wp的内存占用不能及时释放，从而导致服务器响应速度很慢。<br />
研究了一下，可以考虑做以下配置：<br />
1、在IIS中对每个网站进行单独的应用程序池配置。即互相之间不影响。<br />
2、设置应用程序池的回收时间，默认为1720小时，可以根据情况修改。同时，设置同时运行的w3wp进程数目为1。再设置当内存或者cpu占用超过多少，就自动回收内存<br />
一般来说，这样就可以解决了。但仍然会出现个别网站因为程序问题，不能正确释放。</p>
<!--add by zhuaxia-->
<p>那么，<strong>怎么样才能找到是哪一个网站的？</strong><br />
1、在任务管理器中增加显示pid字段。就可以看到占用内存或者cpu最高的进程pid<br />
2、在命令提示符下运行<strong>iisapp -a</strong>。注意，第一次运行，会提示没有js支持，点击确定。然后再次运行就可以了。这样就可以看到pid对应的应用程序池<br />
3、到iis中察看该应用程序池对应的网站，就ok了</p>
<!--add2 by zhuaxia-->
<p>　　很多管理员，特别是做虚 拟主机可能到遇到过<strong>IIS cpu100%</strong>占用，但又不知道哪些网站资源占用多，下面介绍一个方法可以查看每个web站点的资源使用情况<br />
&nbsp;<br />
　　<strong>这个方法平时不推荐使用，只是在出现问题的时候使用</strong><br />
&nbsp;<br />
　　1，把每个站点设为独立进程<br />
&nbsp;<br />
　　打开IIS 站点属性 -- 主目录 -- 应用程序保护改成 高<br />
&nbsp;<br />
　　打开任务管理器 查看进程 你就会看到多出一些dllhost.exe进程 和他们的资源使用情况 这些就是每个web点点的进程，但现在好不知道 哪个web站点使用那个进程<br />
&nbsp;<br />
　　2，对应web站点的dllhost.exe进程<br />
&nbsp;<br />
　　打开组建管理--- 组件服务 -- 计算机 -- 我的电脑 -- com+ 应用程序<br />
&nbsp;<br />
　　在这里，我们可以看到类似IIS-{domain.com//Root}这样的，不设为独立进程就看不到，这个就是IIS里的web站点，选择工具栏上的状态查看<br />
&nbsp;<br />
　　你就会看到类似这样的<br />
&nbsp;<br />
　　名称运行PID<br />
&nbsp;<br />
　　IIS-{down.789game.com//Root}是1688<br />
&nbsp;<br />
　　其中 PID 就是任务管理里的 dllhost.exe得 pid值<br />
&nbsp;<br />
　　好了现在知道每个web站点使用的dllhost.exe进程了，而在任务管理器又可以知道dllhost.exe占用的资源，那你应该知道那个网站占用资源不正常了吧!</p>
<!--add by zhuaxia-->
<p><strong>使用IIS Request Viewer查看当前IIS连接</strong></p>
<!--add by zhuaxia-->
<p>如果有自己的服务器，如果想查看当前IIS连接情况：例如有多少个请求，每个请求的动作，请求的Url，请求的IP等信息，使用微软的IIS Diagnostics Toolkit无疑是非常好的选择，利用它的IIS Request Viewer，查看当前连接以及连接状态，一目了然，非常方便好用。</p>
<!--add by zhuaxia-->
<p>&nbsp;<img title="" alt="" onload="ResizeImage(this,520)" src="http://www.linwan.net.cn/upload/iisrequestvieweriis_6.gif" /></p>
<!--add by zhuaxia-->
<p>不过要特别注意，在第一次使用IIS Request Viewer功能时，极有可能会弹出来一个错误窗口</p>
<!--add by zhuaxia-->
<p>&nbsp;<img title="" alt="" onload="ResizeImage(this,520)" src="http://www.linwan.net.cn/upload/iisrequestvieweriis_62.gif" /></p>
<!--add by zhuaxia-->
<p>---------------------------<br />
Warning<br />
---------------------------<br />
OpenTraceLogFile() failed (Win32 error:-2147024735 - 指定的路径无效。)<br />
---------------------------<br />
确定 取消<br />
---------------------------</p>
<!--add by zhuaxia-->
<p>被这个问题郁闷了很久，今天终于找到解决方法了：</p>
<!--add by zhuaxia-->
<p>在&ldquo;我的电脑&rdquo;属性里面的&ldquo;环境变量&rdquo;设置里面，设置Temp目录为一个较短的目录，例如c:\temp，就不会有这个错误。</p>
<!--add by zhuaxia-->
<p>IIS Diagnostics Toolkit for 32-bit systems</p>
<!--add by zhuaxia-->
<p>在2003server版本下安装后，执行程序在：C:\Program Files\IIS Resources\TraceDiag 目录下reqviewer.exe</p>
<!--add by zhuaxia-->
<p>有人分析说，使用一段时间后,感觉还不如直接对IIS LOG进行当天的分析，因为HTTP变化很快的,或者用TCPView看也是一个方法</p>
<!--add by zhuaxia-->
<p><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=9bfa49bc-376b-4a54-95aa-73c9156706e7&amp;DisplayLang=en">Download the iisdiag.msi package now</a>&nbsp; <strong>IIS Request Viewer</strong><a href="http://www.linwan.net.cn/upload/iisdiag.rar">本站下载</a></p>
<!--add by zhuaxia-->
<p><strong>利用性能管理器查看IIS站点流量。</strong></p>
<!--add by zhuaxia-->
<p>先打开perfmon.msc，点一下加号，选web server，左边选一个要查看的性能，右边选站点</p>
<!--add by zhuaxia-->
<p><strong>IIS监控--自动重启脚本工具IISWatcher IIS自动重启vbs脚本</strong></p>
<!--add by zhuaxia-->
<p>功能：可以在IIS意外终止时自动重启IIS，无须登陆系统，无人职守<br />
条件：<br />
1.服务器安装过Windows Script 5.6，可以正常运行.vbs脚本。<br />
2.确保系统服务WindowsManagement Instrumentation 正常启动。<br />
将以下代码复制为 fu.vbs，放至系统盘WINNT/System32/下，注意重命名时要和&ldquo;cscript //h:cscript&amp;&amp;cscript fu.vbs&rdquo; 中的fu.vbs保持一至，否则计划任务启动时报找不到文件的错误。<br />
然后做计划任务，让其在系统启动时运行监控<br />
vbs代码：<br />
程序代码<br />
strFullName = WScript.FullName<br />
strWshHost = Right(strFullName, 11)<br />
'WScript.Echo &quot;Default script host: &quot; &amp; strWshHost<br />
If strWshHost = &quot;WScript.exe&quot; Then<br />
Set objShell = CreateObject(&quot;WScript.Shell&quot;)<br />
objShell.Run _<br />
&quot;%comspec% /k &quot;&quot;cscript //h:cscript&amp;&amp;cscript fu.vbs&quot;&quot;&quot;, _<br />
MAXIMIZE_WINDOW<br />
If Err.Number&nbsp; 0 Then<br />
WScript.Echo &quot;Error 0x&quot; &amp; hex(Err.Number) &amp; &quot; occurred. &quot; &amp; _<br />
Err.Description &amp; &quot;. &quot; &amp; VbCrLf &amp; _<br />
&quot;Could not temporarily change the default script host to Cscript.&quot;<br />
Err.Clear<br />
WScript.Quit<br />
End If<br />
WScript.Quit<br />
End If<br />
'----上面这段代码是强制到cscript命令行，一般要在cmd命令行下输入cscript *.vbs,如果直接执行vbs会用wscript打开，这样只会弹个对话框，我不喜欢，有不想每次都cscript，所以要写点额外的代码，双击后会调用一个wscript执行csript，然后再消灭自己，幸好微软的网站上提供了这个代码------------------------------------<br />
strComputer = &quot;.&quot;<br />
Set objWMIService = GetObject(&quot;winmgmts:&quot; _<br />
&amp; &quot;{impersonationLevel= impersonate, (Security)}!\\&quot; &amp; strComputer &amp; &quot;\root\cimv2&quot;)<br />
Set colMonitoredEvents = objWMIService.ExecNotificationQuery _<br />
(&quot;Select * from __instancecreationevent where TargetInstance isa'Win32_NTLogEvent' and TargetInstance.EventCode = '7031' &quot;)<br />
Wscript.Echo &quot;开始监视iis于 &quot;&amp;now<br />
Do<br />
Set objLatestEvent = colMonitoredEvents.NextEvent<br />
Wscript.Echo &quot;重新启动iis &quot;&amp;now<br />
Set objShell = CreateObject(&quot;WScript.Shell&quot;)<br />
objShell.Run &quot;%COMSPEC% /c IISRESET.EXE&quot;,,1<br />
'------核心程序<br />
whichfile=(&quot;iisresetlog.htm&quot;)<br />
set fso=createobject(&quot;Scripting.FileSystemObject&quot;)<br />
if Not fso.FileExists(whichfile) then<br />
iomode=2 : create=true<br />
'Set MyFile = fso.CreateTextFile(whichfile,True)<br />
else<br />
iomode=8 : create=false<br />
'Set MyFile = fso.CreateTextFile(whichfile)<br />
end if<br />
set MyFile = fso.OpenTextFile(whichfile,iomode,create)<br />
'MyFile.writeLine(&quot;事件发生于 &quot;&amp;now&amp;&quot; 重启iis成功&quot;&amp;vbctrf)<br />
if create=true then<br />
MyFile.WriteLine &quot;&quot;<br />
MyFile.WriteLine &quot;&quot;<br />
MyFile.WriteLine &quot;&quot;<br />
MyFile.WriteLine &quot;&quot;<br />
MyFile.WriteLine &quot;&quot;<br />
MyFile.WriteLine &quot;&quot;<br />
end if<br />
MyFile.WriteLine &quot; iis重启时间: &quot; &amp;now&amp; &quot;&quot;<br />
'MyFile.WriteLine &quot; 是否成功: 是 &quot;<br />
MyFile.WriteLine &quot;<br />
&quot;<br />
MyFile.WriteLine &quot; &quot;<br />
MyFile.Close<br />
set fso=nothing<br />
Loop<br />
'-----用fso记录iis 重启日志。<br />
注意：TargetInstance.EventCode = '7031' 这段代码控制了在什么情况下重启IIS，7031是系统的事件 ID代号，即当系统日志出现7031这样的事件时重启IIS。<br />
下面是系统7031事件描述：IIS Admin Service 服务意外地终止，这种情况已经出现了 1 次。以下的修正操作将在 1 毫秒内运行: 运行配置的故障恢复程序。<br />
同样的道理，可以根据不同的事件ID触发此脚本，修改objShell.Run &quot;%COMSPEC% /c IISRESET.EXE&quot;,,1 这一行代码，可以执行任何win32所支持的程序，即可以根据任意事件触发执行任意的程序，那样用途更广了。<br />
另：<br />
%comspec%打开一个命令行窗口。%comspec% 是一个指向当前命令行外壳的环境变量。通过使用 %comspec%，您不必担心命令行外壳是 cmd.exe 还是 command.exe；%comspec% 会自动选择正确的一个。<br />
/k 在调用 Dir 命令后，确保窗口始终保持打开。这就是 /k 参数的用处。如果我们想要确保命令窗口会在 Dir 命令调用完成后被自动关闭，应该将 /k (keep) 修改为 /c (close)。</p>
<!--add by zhuaxia-->
<p><strong>砺青IIS监控器IISWatcher v2.1 </strong>&nbsp;<a target="_blank" href="http://www.linwan.net.cn/upload/IISWatcher2.1.rar">IISWatcher2.1.rar下载</a></p>
<!--add by zhuaxia-->
<p>适用于虚拟主机提供商用于排查个别有问题的网站，最大特点是可以监控每一个WEB站点的资源使用状态，包括:CPU使用率，总的CPU时间，内存，最大内存，线程数，模块数等</p>
</div>
</span></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.nmju.net/article.asp?id=114" /> 
	  <id>http://www.nmju.net/default.asp?id=114</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[Windows Server 2003中的w3wp.exe进程大量占用cpu资源的各种问题解决方法]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.nmju.net/</uri>
		 <email>luckcf@gmail.com</email>
	  </author>
	  <category term="" scheme="http://www.nmju.net/default.asp?cateID=14" label="Server" /> 
	  <updated>2008-09-20T19:10:04+08:00</updated>
	  <published>2008-09-20T19:10:04+08:00</published>
		  <summary type="html"><![CDATA[Windows Server 2003中的w3wp.exe进程大量占用cpu资源的各种问题解决方法2007-04-
<p>24 14:43这几天服务器总是运行缓慢，远程登录后发现一个w3wp.exe的进程占用了100% </p>
<p>cpu</p>
<p>在Windows&nbsp;&nbsp; Server&nbsp;&nbsp; 2003中对于每一个Web应用，IIS&nbsp;&nbsp; 6.0都用一个独立的w3wp.exe</p>
<p>的实例来运行它。w3wp.exe也称为工作进程（每一个主机头都会有一个）</p>
<p>直接在任务管理器中结束进程是不起作用的，结束后不久它会执行启动，要想结束它可</p>
<p>以在IIS中找到相应的应用程序池停止相应的应用程序池工作。</p>
<p>这些都不是解决办法，它的根本问题是你的那个网站程序有问题，在找到问题以前可以</p>
<p>先打开IIS找到应用程序池先用右键属性中设置&ldquo;性能&rdquo;把其中的CPU设成大于60%关闭应</p>
<p>用程序池，把关闭时间和开启时间设短一些比如10秒，这样当您的网站程序大量占用系</p>
<p>统资源时IIS自动快速回收进程并且快速启动进程，您的网站暂时还可以将就着工作。</p>
<p>要解决根本问题还要从程序查起，您可以在IIS中的应用程序池中右键创建多个应用程序</p>
<p>池，然后在每个主机头中的文件家选项的底部将应用程序池对应道刚才建好的应用程序</p>
<p>池，然后一个一个关闭在任务管理器中看看是哪个程序占用的资源较大。</p>
<p>下面是一些网友的相关贴子也许对大家有帮助</p>
<p>朋友的WEB服务器一直运行正常，但这几天CPU占用率一直将近100%，遂去看个究竟。<br />服务器采用Windows&nbsp;&nbsp; 2003,&nbsp;&nbsp; 网站使用ASP+Access数据库,&nbsp;&nbsp; 查看进程列表发现</p>
<p>w3wp.exe&nbsp;&nbsp; 占用了70%以上的CPU，<br />查看WEB日志，站点访问量不大，查看TCP连接也不多。用net&nbsp;&nbsp; stop&nbsp;&nbsp; w3svc停掉WEB服</p>
<p>务，CPU占用立即正常，net&nbsp;&nbsp; start&nbsp;&nbsp; w3svc启动WEB后不久现象又出来了。停止所有虚</p>
<p>拟站点，新建一个虚拟站点发现并没有问题，怀疑是站点本身的代码问题。<br />检查首页代码，大致是如下结构：</p>
<p>粗看一下并没有问题，但就是这段代码造成了w3wp.exe占用大量CPU，难道是死循环？似</p>
<p>乎没有理由。在循环体内加入计数，发现确实是死循环，说明RS.EOF一直为false，加入</p>
<p>如下代码：</p>
<p>if&nbsp;&nbsp; RS.EOF&nbsp;&nbsp; =&nbsp;&nbsp; true&nbsp;&nbsp; then&nbsp;&nbsp; Response.Write&nbsp;&nbsp; &quot;EOF&nbsp;&nbsp; is&nbsp;&nbsp; true&quot;<br />if&nbsp;&nbsp; RS.EOF&nbsp;&nbsp; =&nbsp;&nbsp; false&nbsp;&nbsp; then&nbsp;&nbsp; Response.Write&nbsp;&nbsp; &quot;EOF&nbsp;&nbsp; is&nbsp;&nbsp; false&quot;</p>
<p>发现输出竟然是EOF&nbsp;&nbsp; is&nbsp;&nbsp; true&nbsp;&nbsp; EOF&nbsp;&nbsp; is&nbsp;&nbsp; false,&nbsp;&nbsp; 说明无法判断RS.EOF的值，</p>
<p>为何如此百思不得其解。检查数据库，发现库中并没有mytable表,&nbsp;&nbsp; 如果该表不存在，</p>
<p>RS.Open&nbsp;&nbsp; &quot;Select&nbsp;&nbsp; *&nbsp;&nbsp; FROM&nbsp;&nbsp; mytable&quot;,&nbsp;&nbsp; conn&nbsp;&nbsp; 就会出错，为何没有出错，很</p>
<p>有可能捕获的异常被忽略了。<br />检查包含文件conn.asp,&nbsp;&nbsp; 发现了异常处理代码：</p>
<p>On&nbsp;&nbsp; Error&nbsp;&nbsp; Resume&nbsp;&nbsp; Next</p>
<p>原来问题在此。</p>
<p>On&nbsp;&nbsp; Error&nbsp;&nbsp; Resume&nbsp;&nbsp; Next忽略了查询表时的失败以及后续的错误，造成进入死循环</p>
<p>。<br />那为何网站本来运行正常，现在却找不到mytable表了呢？仔细检查网站才发现&ldquo;有&lsquo;客</p>
<p>&rsquo;自远方来&rdquo;，上传了后门工具、删除了多张数据表，害我忙活了一天。</p>
<p>更多的内容大家还可以到：</p>
<p><a href="http://www.microsoft.com/china/technet/security/guidance/secmod93.mspx">http://www.microsoft.com/china/technet/security/guidance/secmod93.mspx</a></p>
<p>查找更详细的安全设置</p>
<p><br />windows2003&nbsp;&nbsp; iis6.0假死问题解决</p>
<p>这几天服务器总是运行缓慢，远程登录后发现一个w3wp.exe的进程占用了100%&nbsp;&nbsp; cpu。</p>
<p><br />问题的原因最终找到两个：</p>
<p>1.采用的jet&nbsp;&nbsp; 数据库连接方式存在问题：<a href="http://support.microsoft.com/?id=838306">http://support.microsoft.com/?id=838306</a></p>
<p>补丁下载：</p>
<p>chs:WindowsServer2003-KB838306-x86-chs.exe</p>
<p>enu:WindowsServer2003-KB838306-x86-enu.exe</p>
<p>2.将access数据库扩展名改为asp</p>
<p>下面是我的差错过程和解决方案：</p>
<p>搜索一下发现类似问题还真不少，那个w3wp的进程是iis6.0的应用程序池，网上的说法</p>
<p>有两种，一是因为asp或者asp.net代码中含有死循环引起的。但是服务器上这么多网站</p>
<p>，谁知道那个网站出了问题。二是由于上面的jet连接数据库方式的bug引起的，下载</p>
<p>838306的补丁，或者升级到sp1可以解决这个问题，但是打了这个补丁后，有些网站的问</p>
<p>题依然存在。</p>
<p><br />又去搜索，有人说将每个网站建立独立的应用程序池，应用程序池的安全性帐户设为本</p>
<p>地服务即可。方法如下:</p>
<p>首先新建应用程序池：</p>
<p>然后将网站的应用程序池指向刚才建立的应用程序池：</p>
<p>在建立完所有应用程序池后，统一修改应用程序池的属性：</p>
<p>将应用程序池安全帐户指定为本地服务：</p>
<p><br />设置完这些之后，问题依然存在，这样一个网站出现问题，不致影响其他网站，但是这</p>
<p>个网站仍然占用大量资源，导致其它网站响应缓慢。不过在任务管理器中出现了每个应</p>
<p>用程序池的进程，因此可以找到具体出问题的进程了。</p>
<p>下面是寻找出错网站的过程：要找到这个网站，必须把有问题的进程跟该网站的应用程</p>
<p>序池联系起来。首先设置任务管理器的查看方式，加入PID的显示：</p>
<p>然后再命令行运行iisapp&nbsp;&nbsp; -a，可以看到PID跟应用程序池的对应关系：</p>
<p><br />再去iis中看该应用程序池对应的网站，有问题的网站就找到了，剩下的就是这个网站代</p>
<p>码中的问题了。</p>
<p>在某位网站管理员的纠缠不休下，我终于无法忍受，帮他找错误-&nbsp;&nbsp; -&nbsp;&nbsp; 无数次配置iis</p>
<p>，网站程序也换了，该升级的也升级了，问题还是存在，黔驴技穷，把网站下载到本地</p>
<p>看看到底怎么回事。当我试图打开他的数据库的时候，问题出现了：</p>
<p>他的数据库是.asp的扩展名，要先修改为.mdb才能打开，但是当我点击要改名字的时候</p>
<p>，我的电脑没有响应了~！看来问题在这个数据库了。</p>
<p>用命令行rename之后，打开数据库，修复，似乎没有任何问题，但是再改为.asp时，又</p>
<p>出现了刚才的问题。哈~原来是.asp的扩展名在作怪。</p>
<p>但是我试着将其他的数据库改为.asp，没有问题。根本原因不得而知，望知情者告知。</p>
<p>最后，在iis中随便添加了一个isapi对应到mdb，造成mdb无法执行，防止下载，将所有</p>
<p>的.asp的数据库改回.mdb，问题解决<br /><br />(转)Windows Server 2003中的w3wp.exe进程大量占用cpu资源的各种问题解决方法 1：使用 MicrosoftJet 数据库引擎 Web 应用程序可能停止响应负载，造成假死：<br />&nbsp;&nbsp;&nbsp;&nbsp; 原因：发生此问题是因为 Jet 数据库引擎中存在缺陷。 Microsoft Windows Server 2003 上只会出现此问题。 在 Windows Server 2003, COM+ 更改频率 CoFreeUnusedLibraries 函数被调用。 此更改导致 Jet 驱动程序以初始化频繁。 此行为可能导致死锁条件。 <br />Web 服务器负载时最常出现此问题。 <br />补丁下载：<br />chs:WindowsServer2003-KB838306-x86-chs.exe<br />enu:WindowsServer2003-KB838306-x86-enu.exe<br />在IIS6下，经常出现w3wp.exe的内存及CPU占用不能及时释放，从而导致服务器响应速度很慢。</p>
<p>解决内存占用过多，可以做以下配置：<br />1、在IIS中对每个网站进行单独的应用程序池配置。即互相之间不影响。<br />2、设置应用程序池的回收时间，默认为1720小时，可以根据情况修改。再设置当内存占用超过多少（如500M），就自动回收内存。</p>
<p>解决CPU占用过多：<br />1、在IIS中对每个网站进行单独的应用程序池配置。即互相之间不影响。<br />2、设置应用程序池的CPU监视，不超过25%（服务器为4CPU），每分钟刷新，超过限制时关闭。</p>
<p>根据w3wp取得是那个一个应用程序池：<br />1、在任务管理器中增加显示pid字段。就可以看到占用内存或者cpu最高的进程pid<br />2、在命令提示符下运行iisapp -a。注意，第一次运行，会提示没有js支持，点击确定。然后再次运行就可以了。这样就可以看到pid对应的应用程序池。（iisapp实际上是存放在C:\windows\system32目录下的一个VBS脚本，全名为iisapp.vbs，如果你和我一样，也禁止了Vbs默认关联程序，那么就需要手动到该目录，先择打开方式，然后选&ldquo;Microsoft (r) Windows Based Script Host&rdquo;来执行，就可以得到PID与应用程序池的对应关系。）<br />3、到iis中察看该应用程序池对应的网站，就ok了，做出上面的内存或CPU方面的限制，或检查程序有无死循环之类的问题。</p>
<p>&nbsp;</p>
<p>QUOTE:</p>
<p>环境：win2003server+IIs+ASP+MSSQL</p>
<p>现象：每隔一段时间（不定，有时几分钟，有时半小时）出现一次网站打开非常缓慢，甚至有时会出现超时打不开站点，此时查看服务器端的进程，CPU占用率达到100%，其中w3wp占用70~80%，SQL占用20~30%。所有服务器端的操作也变得缓慢。</p>
<p>初期解决方法：每次现象出现时，立即登录服务器直接结束w3wp进程或重启IIS服务，平均每天约十次操作，由于服务器存放于远程机房，所有操作都是远程控制进行，有时会因此出现远程无法连接登录的情况，只能通过电话通知机房管理人员重启服务器解决，此过程导致用户抱怨不断。</p>
<p>经过网上查阅资料，发现此类现象多数由于网页代码不合理所致，以下情况会导致此类现象发生：<br />1、代码中多处使用application、seesion等服务器缓存，导致服务器资料过度占用；<br />2、代码有不合理语法，死循环等；<br />3、数据库损坏，尤其是ACCESS数据库；<br />4、装过多第三方软件或插件，与IIS或网页功能代码冲突。</p>
<p>第一阶段排查：根据查阅到的参考资料逐项分析<br />1、服务器上所有站点代码均为公司设计人员自行编写，可证实并无过多调用服务器缓存语法（排除）<br />2、代码是否存在不合理语法（不确定）<br />3、根据情况来看，IIS进程占用率升高时，SQL占用率同时升高，应为SQL数据库的站点，根据现象判断，库或表应该正常，估计是数据方面可能有误；（不确定）<br />4、服务器端除了基本的系统服务，防杀毒及网站运作必备服务之外，并无多余第三方软件，机率不大（排除）。</p>
<p>经过以上分析判断，将不确定项连起来得出的结论是：某个采用了SQL数据库的网站网页代码存在不合理语法，导致IIS和SQL进程CPU占用率过高。</p>
<p>第二阶段排查：<br />确定范围，接着继续把范围缩小。<br />由于服务器上采用SQL数据库的站点并不多，便于建立独立进程ID来观察，将所有采用SQL数据库的站点在IIS管理器中分别建立独立的应用程序池，然后通过CMD界面输入：iisapp -a 命今查看并记录下各IIS池的进程ID号，通过多次现象重现时的观察，有个IIS进程ID是导致此次问题的罪魁祸首。</p>
<p>2003服务器用.net程序,w3wp老占cpu资源！怎么办？</p>
<p>&nbsp;</p>
<p><br />w3wp.exe狂占内存的问题解决方案！&nbsp;&nbsp;</p>
<p>问：</p>
<p>好的asp.net程序，放在一台服务器上，客户端连接使用一段时间后，在服务器上打开任务管理器一看，发现有很多w3wp.exe，占用内存很大，达到1g，请问为什么会这样？有什么办法可以避免这种情况呢？</p>
<p>答:这主要是你的ASP.NET 开发的程序有 内存泄漏;对于 非托管资源，一定要注意 释放。</p>
<p>-==================================<br />问：我的具体情况是这样的：<br />服务器配置 至强2.8G 内存512M SCSI硬盘 2块 （软镜像）<br />系统 windows 2003 <br />现在挂了一个asp.net开发的网站 访问量不大 但是出现一个 问题就是<br />每当服务器运行2-3天后 访问网站就特别慢 重启动服务器后就 正常了<br />查看进程使用内存的情况 发现w3wp.exe 和sqlservr.exe 进程 占用内存<br />相当大 达到了170多M（ 每个） 物理可用内存几乎用光<br />（服务器重启动时 占用的内存很小才40多M 每个）<br />以前网站挂在一个虚拟机上 数据库是分开挂的 从没出现这种情况<br />后来 原版移植到新服务器上就 出现这样的问题~~ <br />还个一问题就是 我在SQL企业管理器中查看SQL进程 发现有很多是 。net 引起的进程是sleeping 但是却占用了内存~ 无法释放</p>
<p>搞了很久了 一直都没解决<br />求救~~请高手 指教~~ 万分感谢~~~~~</p>
<p><br />答：IIS服务管理器----》应用程序池----》添加你的应用，并设置最大内存，当程序达到最大内存后其会自动重启。</p>
<p>我的问题跟你一样,不过我的内存是2G的,访问量比较高,一般是差不多运行24小时后就得重启,内存没耗完,W3WP进程占到一百八九十兆,SQL占了二百多兆时,就得重启,不然整个站点就当在那边....55555555,搞了快半个月了还是不行,痛苦啊</p>
<p>w3wp.exe就是你的ASP.NET应用宿主，如果你使用了大量的Session、Cache等资源，并且Session超市时间很长，那么内存占用量就比较大。应用池是为增加性能而设的一个特性，但是也消耗很大的内存。另外关掉Windows Server 2003里的大多数Service（那个不用都可以关掉），也可以节省一部分内存</p>
<p>1.怀疑在程序中应用的CACHE,<br />2.CACHE中有大量的数据<br />3.频繁刷新CACHE<br />4.没有设计好CACHE的方式</p>
<p><br />你的问题我以前也遇见过，我以前是用的Session,后我全部改成cook之后就好多了，应该是你的Session或是你的CACHE有问题（CACHE不太懂，但多多少应该是有的）</p>
<p>跟踪下SQL的调用记录,在每次往CACHE或SESSION写入大量数据时记录一下时间,看是否太过频繁</p>
<p>1.在win2003里asp.net的进程就是w3wp.exe</p>
<p>2.512M内存个人用是够用了，但是放在服务器上就有点不够用了，尤其是win2003 + asp.net +sql server 。尤其是sql server 他是很吃内存的，如果不控制的话，他会占光所有的物理内存（只剩下几十M 倒 100M 吧）。win2003 本身就要占用150M左右。也就剩不下什么了。</p>
<p>3.优化asp.net程序，就向楼上的说的那样，少用或不用session cache application之类的东西，再有就是是不是有翻页的地方，翻页处理不好也是会占很多内存的。</p>
<p>4.限制sql的内存。企业管理器&mdash;&mdash;SQL的属性（一般是local）&mdash;&mdash;&ldquo;内存&rdquo;标签<br />在这里看内存的设置，把最大值改成100M吧。</p>
<p>第四条是最快的方法，可以试一试。</p>
<p>我的一个自开发OA系统也存在这样的问题。<br />总结上面,大概原因是因为 session 和 cache 的不合理使用造成的。<br />我的应用程序中，确实用了很多的Session 和 Cache,<br />在 MSDN 中找到 了 &ldquo;动态内存分配&rdquo;这一篇，今天就试看看，是否有效。<br />希望有经验的朋友多给些信息，大家也好总结下出现类似错误的原因，谢谢！！</p>
<p><br />不知道你是什么网站。按理说是不会占用这么大的。如上你用了cache存放了超额的内容。当然。象session这种是不太可能占用这么大的了，或用了application 类似的一些有超长时间或永久保持性的对象来保存大量数据。如利用单例保存数据这些都有可能造成使用大量的内存。</p>
<p>建义2003系统安装至少1G内存。</p>
<p><br />w3wp.exe是2003下的一个iis进程，至于楼主说的sql占用内存，那有可能是因为你的sql没有设置占用内存上限</p>
<p>&nbsp;</p>
<p><br />-==================================<br />w3wp.exe进程狂占内存和CPU问题　谁能帮我？？<br />　　　我的电脑：P4,512M内存。。当我用了aspx系统建站两个星期后，就出现了速度极慢的情况，在进程里看到w3wp.exe狂占内存和CPU.<br />刚开始几十人注册时速度都不会有影响，但注册会员有100名以上后，再有多人同时注册时就出现了速度极慢的情况，简直导致瘫痪。</p>
<p><br />IIS中设置不正确。在.NET中，不要在IIS里限制内存的使用，不然当内存不足的时候，IIS会不断的重新起动。每次起动有30秒的时候用来重新加载.NET包，所以，网站在加载.NET 包时狂慢。这也是我当时用.NET系统时碰到过的问题。</p>
<p>应用程序池－－属性－－回收－－内存回收：消耗太多内存时回收工作进程：1、最大虚拟内存。2、最大使用的内存。两个选项都没选择<br /><br /><br />这里不要打勾。另一处是性能里的请求队列，不要打勾。<br />自已调调看就有经验了，我也是自已摸索出来的方法。</p>
<p><br />A:关于W3WP.EXE的知识.</p>
<p>Q : W3WP.EXE,应用程序,应用程序池之间的关系</p>
<p>A : 一个应用程序池可以包含多个应用程序,一个应用程序池创建一个W3WP.EXE进程.那么我们就不能简单的说一个进程池对应一个W3WP.EXE进程了!其实是多个应用进程池对应一个W3WP.EXE进程的.</p>
<p>Q : 如何启动和关闭W3WP.EXE这个进程</p>
<p>A : W3WP.EXE这个进程将在你访问www应用程序的时候启动.有人就会这么问了:&quot;我启动了一个Web应用程序，发现系统自动创建了一个W3wp.exe进程。但我关闭这个Web应用程序后，发现这个刚创建的W3Wp.exe进程还在,请问如何关闭该进程。&quot;这个进程不会在你关闭了这个程序以后,就马上关闭的.那是因为Http是无连接的访问,当你关闭了web网页,不会返回相应的关闭信息,所以W3WP.EXE这个进程不会因为你关闭了web应用程序尔关闭.</p>
<p>Q : 那么如何关闭这个进程呢?</p>
<p>A : 在应用程序池的配置中,&quot;空闲超时&quot;中设定合适的时间,系统默认的是20分钟.设定好指定的时间,那么在这个时间范围内没有在访问应用程序,那么系统会自动的关闭W3WP.EXE这个进程的.而不需要我们人为的干预的.也可以在Windows任务管理器里面,结束这个进程</p>
<p>Q : 如何让W3WP.EXE进程长时间的运行.</p>
<p>A : W3WP.EXE这个进程的默认生命是1740分钟,但依然是在这种默认的自然规律下,W3WP.EXE将在自己失业20分钟后,被系统直接枪杀.这样就可以看出,要想让W3WP.EXE长时间的生存,那我们可以通过&rdquo;空闲超时&rdquo;不作处理来达到我们的目的.</p>
<p>Q : 在IIS6下，经常出现w3wp.exe的内存及CPU占用不能及时释放，从而导致服务器响应速度很慢。</p>
<p>A: 解决内存占用过多，可以做以下配置<br />1、在IIS中对每个网站进行单独的应用程序池配置。即互相之间不影响。<br />2、设置应用程序池的回收时间，默认为1720小时，可以根据情况修改。再设置当内存占用超过多少（如500M），就自动回收内存。</p>
<p>解决CPU占用过多：<br />1、在IIS中对每个网站进行单独的应用程序池配置。即互相之间不影响。<br />2、设置应用程序池的CPU监视，不超过25%（服务器为4CPU），每分钟刷新，超过限制时关闭。</p>
<p>根据w3wp取得是那个一个应用程序池：<br />1、在任务管理器中增加显示pid字段。就可以看到占用内存或者cpu最高的进程pid<br />2、在命令提示符下运行iisapp -a。注意，第一次运行，会提示没有js支持，点击确定。然后再次运行就可以了。这样就可以看到pid对应的应用程序池。（iisapp实际上是存放在C:\windows\system32目录下的一个VBS脚本，全名为iisapp.vbs，如果禁止了Vbs默认关联程序，那么就需要手动到该目录，先择打开方式，然后选&ldquo;Microsoft (r) Windows Based Script Host&rdquo;来执行，就可以得到PID与应用程序池的对应关系。）<br />3、到iis中察看该应用程序池对应的网站，就ok了，做出上面的内存或CPU方面的限制，或检查程序有无死循环之类的问题。</p>
<p>A2 : by 小步舞曲<br />查看占用cpu的w3wp进程里面里面有那个用户呼叫的token</p>
<p>Q : 另一种加载了某程序后发生w3wp.exe问题</p>
<p>A: 修改C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\CONFIG\machine.config,再配置节点&lt;processModel&gt;中有一个属性&quot;memoryLimit&quot;,这个属性的值是一个百分比,默认为&quot;60&quot;(注意,是60%不是60M),即制定了ASP.NET进程能够使用所有物理内存的60%,当ASP.NET使用的内存量草果这个限额时,IIS会开始自动回收进程,即创建一个新的进程去负责应付HTTP请求,而将旧进程所占用的内存回收.<br />本篇文章来源于 麦客学吧 原文链接：<a href="http://x8.maicoo.com/tech/win2003/10572.html">http://x8.maicoo.com/tech/win2003/10572.html</a></p>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.nmju.net/article.asp?id=98" /> 
	  <id>http://www.nmju.net/default.asp?id=98</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[Win2003下IIS安全配置整理三]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.nmju.net/</uri>
		 <email>luckcf@gmail.com</email>
	  </author>
	  <category term="" scheme="http://www.nmju.net/default.asp?cateID=14" label="Server" /> 
	  <updated>2008-09-12T09:29:16+08:00</updated>
	  <published>2008-09-12T09:29:16+08:00</published>
		  <summary type="html"><![CDATA[<p>三、系统权限的设置 <br />１、磁盘权限 <br />　　系统盘及所有磁盘只给 Administrators 组和 SYSTEM 的完全控制权限 <br />　　系统盘Documents and Settings 目录只给 Administrators 组和 SYSTEM 的完全控制权限 <br />　　系统盘Documents and SettingsAll Users 目录只给 Administrators 组和 SYSTEM 的完全控制权限 <br />　　系统盘WindowsSystem32cacls.exe、cmd.exe、net.exe、net1.exe、<a href="ftp://ftp.exe">ftp.exe</a>、tftp.exe、telnet.exe 、 netstat.exe、regedit.exe、at.exe、attrib.exe、format.com、del文件只给 Administrators 组和SYSTEM 的完全 控制权限 <br />另将System32cmd.exe、format.com、<a href="ftp://ftp.exe">ftp.exe</a>转移到其他目录或更名 <br />　　Documents and Settings下所有些目录都设置只给adinistrators权限。并且要一个一个目录查看，包括下面的所有子目录。 <br />删除c:inetpub目录 <br />２、本地安全策略设置 <br />　　开始菜单&mdash;&gt;管理工具&mdash;&gt;本地安全策略 <br />　　A、本地策略&mdash;&mdash;&gt;审核策略 <br />　　审核策略更改　　　成功　失败　　 <br />　　审核登录事件　　　成功　失败 <br />　　审核对象访问　　　　　　失败 <br /></p>
<p><br />　　审核过程跟踪　　　无审核 <br />　　审核目录服务访问　　　　失败 <br />　　审核特权使用　　　　　　失败 <br />　　审核系统事件　　　成功　失败 <br />　　审核账户登录事件　成功　失败 <br />　　审核账户管理　　　成功　失败 <br />　　B、本地策略&mdash;&mdash;&gt;用户权限分配 <br />　　关闭系统：只有Administrators组、其它全部删除。 <br />　　通过终端服务允许登陆：只加入Administrators,Remote Desktop Users组，其他全部删除 <br />　　C、本地策略&mdash;&mdash;&gt;安全选项 <br />　　交互式登陆：不显示上次的用户名　　　　　　　启用 <br />　　网络访问：不允许SAM帐户和共享的匿名枚举　 启用 <br />　　网络访问：不允许为网络身份验证储存凭证　　　启用 <br />　　网络访问：可匿名访问的共享　　　　　　　　　全部删除 <br />　　网络访问：可匿名访问的命　　　　　　　　　　全部删除 <br />　　网络访问：可远程访问的注册表路径　　　　　　全部删除 <br />　　网络访问：可远程访问的注册表路径和子路径　　全部删除 <br />　　帐户：重命名来宾帐户　　　　　　　　　　　　重命名一个帐户 <br />　　帐户：重命名系统管理员帐户　　　　　　　　　重命名一个帐户 网管u家u.bitsCN.com <br />３、禁用不必要的服务 开始-运行-services.msc <br />TCP/IPNetBIOS Helper提供 TCP/IP 服务上的 NetBIOS 和网络上客户端的 NetBIOS 名称解析的支持而使用户能够共享 <br />文件、打印和登录到网络 <br />Server支持此计算机通过网络的文件、打印、和命名管道共享 <br />　　Computer Browser 维护网络上计算机的最新列表以及提供这个列表 <br />Task scheduler 允许程序在指定时间运行 <br />Messenger 传输客户端和服务器之间的 NET SEND 和 警报器服务消息 <br />　　Distributed File System: 局域网管理共享文件，不需要可禁用 <br />　　Distributed linktracking client：用于局域网更新连接信息，不需要可禁用 <br />　　Error reporting service：禁止发送错误报告 <br />　　Microsoft Serch：提供快速的单词搜索，不需要可禁用 <br />　　NTLMSecuritysupportprovide：telnet服务和Microsoft Serch用的，不需要可禁用 <br />　　PrintSpooler：如果没有打印机可禁用 <br />　　Remote Registry：禁止远程修改注册表 <br />　　Remote Desktop Help Session Manager：禁止远程协助 <br />Workstation 关闭的话远程NET命令列不出用户组 <br />　　以上是在Windows Server 2003 系统上面默认启动的服务中禁用的，默认禁用的服务如没特别需要的话不要启动。 <br /></p>
<p><br />４、修改注册表 <br />修改注册表，让系统更强壮 <br />1) 隐藏重要文件/目录可以修改注册表实现完全隐藏 <br />HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows Current-VersionExplorerAdvancedFolderHi-ddenSHOWALL&rdquo;，鼠标右击 &ldquo;CheckedValue&rdquo;，选择修改，把数值由1改为0 <br />2) 防止SYN洪水攻击 <br />HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters <br />新建DWORD值，名为SynAttackProtect，值为2 <br />新建EnablePMTUDiscovery REG_DWORD 0 <br />新建NoNameReleaseOnDemand REG_DWORD 1 <br />新建EnableDeadGWDetect REG_DWORD 0 <br />新建KeepAliveTime REG_DWORD 300,000 <br />新建PerformRouterDiscovery REG_DWORD 0 <br />新建EnableICMPRedirects REG_DWORD 0 <br />3) 禁止响应ICMP路由通告报文 <br />HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParametersInterfacesinterface <br />新建DWORD值，名为PerformRouterDiscovery 值为0 <br />4) 防止ICMP重定向报文的攻击 <br />HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters <br />将EnableICMPRedirects 值设为0 <br />5) 不支持IGMP协议 <br />HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters <br /></p>
<p><br />新建DWORD值，名为IGMPLevel 值为0 <br />6) 禁止Ipc空连接： <br />cracker可以利用net use命令建立空连接，进而入侵，还有net view，nbtstat这些都是基于空连接的，禁止空连接就好了。 <br />Local_MachineSystemCurrentControlSetControlLSA-RestrictAnonymous 把这个值改成&rdquo;1&rdquo;即可。 <br />7) 更改TTL值 <br />cracker可以根据ping回的TTL值来大致判断你的操作系统，如： <br />TTL=107(WINNT); <br />TTL=108(win2000); <br />TTL=127或128(win9x); <br />TTL=240或241(linux); <br />TTL=252(solaris); <br />TTL=240(Irix); <br />实际上你可以自己改的：HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters：DefaultTTL REG_DWORD 0-0xff(0-255 十进制,默认值128)改成一个莫名其妙的数字如258，起码让那些小菜鸟晕上半天，就此放弃入侵你也不一定哦 <br />8) 删除默认共享 <br />有人问过我一开机就共享所有盘，改回来以后，重启又变成了共享是怎么回事，这是2K为管理而设置的默认共享，HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLanmanServerParameters：AutoShareServer类型是REG_DWORD把值改为0即可 <br />9) 禁止建立空连接 <br />默认情况下，任何用户通过通过空连接连上服务器，进而枚举出帐号，猜测密码。我们可以通过修改注册表来禁止建立空连接： <br /></p>
<p>Local_MachineSystemCurrentControlSetControlLSA-RestrictAnonymous 的值改成&rdquo;1&rdquo;即可。 <br />10) 建立一个记事本，填上以下代码。保存为*.bat并加到启动项目中 <br />net share c$ /del <br />net share d$ /del <br />net share e$ /del <br />net share f$ /del <br />net share ipc$ /del <br />net share admin$ /del <br />5、IIS站点设置： <br />1) 将IIS目录＆数据与系统磁盘分开，保存在专用磁盘空间内； <br />2) 启用父级路径； <br />3) 在IIS管理器中删除必须之外的任何没有用到的映射（保留asp等必要映射即可）； <br />4) 在IIS中将HTTP404 Object Not Found出错页面通过URL重定向到一个定制HTM文件； <br />5) Web站点权限设定（建议）： <br />读 允许 <br />写 不允许 <br />脚本源访问 不允许 <br />目录浏览 建议关闭 <br />日志访问 建议关闭 <br />索引资源 建议关闭 <br />执行 推荐选择 &ldquo;仅限于脚本&rdquo; 。 <br />6) 建议使用W3C扩充日志文件格式，每天记录客户IP地址，用户名，服务器端口，方法，URI字根，HTTP状态，用户代理，而且每天均要审查日志。（最好不要使用缺省的目录，建议更换一个记日志的路径，同时设置日志的访问权限，只允许管理员和system为Full Control）。 <br /></p>
<p>7) 程序安全: <br />A. 涉及用户名与口令的程序最好封装在服务器端，尽量少的在ASP文件里出现，涉及到与数据库连接地用户名与口令应给予最小的权限; <br />B. 需要经过验证的ASP页面，可跟踪上一个页面的文件名，只有从上一页面转进来的会话才能读取这个页面; <br />C. 防止ASP主页.inc文件泄露问题; <br />D. 防止UE等编辑器生成some.asp.bak文件泄露问题。 <br />6、IIS权限设置的思路 <br />1) 要为每个独立的要保护的个体（比如一个网站或者一个虚拟目录）创建一个系统用户，让这个站点在系统中具有惟一的可以设置权限的身份。 <br />2) 在IIS的【站点属性或者虚拟目录属性&rarr;目录安全性&rarr;匿名访问和验证控制&rarr;编辑&rarr;匿名访问&rarr;编辑】填写刚刚创建的那个用户名。 <br />3) 设置所有的分区禁止这个用户访问，而刚才这个站点的主目录对应的那个文件夹设置允许这个用户访问（要去掉继承父权限，并且要加上超管组和SYSTEM组）。 <br />7、卸载最不安全的组件 <br />最简单的办法是直接卸载后删除相应的程序文件。将下面的代码保存为一个.BAT文件，( 以下均以 WIN2000 为例，如果使用2003，则系统文件夹应该是 C:WINDOWS ) <br /></p>
<p>regsvr32/u C:WINDOWSSystem32wshom.ocx <br />del C:WINDOWSSystem32wshom.ocx <br />regsvr32/u C:WINDOWSsystem32shell32.dll <br />del C:WINNTWINDOWSshell32.dll </p>
<p>&nbsp;</p>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.nmju.net/article.asp?id=94" /> 
	  <id>http://www.nmju.net/default.asp?id=94</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[Win2003下IIS安全配置整理二]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.nmju.net/</uri>
		 <email>luckcf@gmail.com</email>
	  </author>
	  <category term="" scheme="http://www.nmju.net/default.asp?cateID=14" label="Server" /> 
	  <updated>2008-09-12T09:27:53+08:00</updated>
	  <published>2008-09-12T09:27:53+08:00</published>
		  <summary type="html"><![CDATA[<p>二、用户安全设置 <br />二、用户安全设置 <br />1、禁用Guest账号 <br />在计算机管理的用户里面把Guest账号禁用。为了保险起见，最好给Guest加一个复杂的密码。你可以打开记事本，在里面输入一串包含特殊字符、数字、字母的长字符串，然后把它作为Guest用户的密码拷进去。 <br />2、限制不必要的用户 <br />去掉所有的Duplicate User用户、测试用户、共享用户等等。用户组策略设置相应权限，并且经常检查系统的用户，删除已经不再使用的用户。这些用户很多时候都是黑客们入侵系统的突破口。 <br />3、把系统Administrator账号改名 <br />大家都知道，Windows 2003 的Administrator用户是不能被停用的，这意味着别人可以一遍又一遍地尝试这个用户的密码。尽量把它伪装成普通用户，比如改成Guesycludx。 <br />4、创建一个陷阱用户 <br />什么是陷阱用户?即创建一个名为&ldquo;Administrator&rdquo;的本地用户，把它的权限设置成最低，什么事也干不了的那种，并且加上一个超过10位的超级复杂密码。这样可以让那些 Hacker们忙上一段时间，借此发现它们的入侵企图。 <br />5、把共享文件的权限从Everyone组改成授权用户 网管bitscn_com <br />任何时候都不要把共享文件的用户设置成&ldquo;Everyone&rdquo;组，包括打印共享，默认的属性就是&ldquo;Everyone&rdquo;组的，一定不要忘了改。 <br />6、开启用户策略 <br />使用用户策略，分别设置复位用户锁定计数器时间为20分钟，用户锁定时间为20分钟，用户锁定阈值为3次。 （该项为可选） <br />7、不让系统显示上次登录的用户名 <br />默认情况下，登录对话框中会显示上次登录的用户名。这使得别人可以很容易地得到系统的一些用户名，进而做密码猜测。修改注册表可以不让对话框里显示上次登录的用户名。方法为：打开注册表编辑器并找到注册表&ldquo;HKLMSoftwareMicrosoftWindows TCurrentVersionWinlogonDont-DisplayLastUserName&rdquo;，把REG_SZ的键值改成1。 <br />密码安全设置 <br />1、使用安全密码 <br />一些公司的管理员创建账号的时候往往用公司名、计算机名做用户名，然后又把这些用户的密码设置得太简单，比如&ldquo;welcome&rdquo;等等。因此，要注意密码的复杂性，还要记住经常改密码。 <br />2、设置屏幕保护密码 <br />这是一个很简单也很有必要的操作。设置屏幕保护密码也是防止内部人员破坏服务器的一个屏障。 <br /><br />3、开启密码策略 <br />注意应用密码策略，如启用密码复杂性要求，设置密码长度最小值为6位 ，设置强制密码历史为5次，时间为42天。 <br />4、考虑使用智能卡来代替密码 <br />对于密码，总是使安全管理员进退两难，密码设置简单容易受到黑客的攻击，密码设置复杂又容易忘记。如果条件允许，用智能卡来代替复杂的密码是一个很好的解决方法。 <br /></p>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.nmju.net/article.asp?id=93" /> 
	  <id>http://www.nmju.net/default.asp?id=93</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[Win2003下IIS安全配置整理一]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.nmju.net/</uri>
		 <email>luckcf@gmail.com</email>
	  </author>
	  <category term="" scheme="http://www.nmju.net/default.asp?cateID=14" label="Server" /> 
	  <updated>2008-09-12T09:27:12+08:00</updated>
	  <published>2008-09-12T09:27:12+08:00</published>
		  <summary type="html"><![CDATA[<p>一、系统的安装 <br />一、系统的安装　　 <br />１、按照Windows2003安装光盘的提示安装，默认情况下2003没有把IIS6.0安装在系统里面。 <br />２、IIS6.0的安装 <br />　　开始菜单&mdash;&gt;控制面板&mdash;&gt;添加或删除程序&mdash;&gt;添加/删除Windows组件 <br />　　应用程序 &mdash;&mdash;&mdash;ASP.NET（可选） <br />　　　　　　　|&mdash;&mdash;启用网络 COM+ 访问（必选） <br />　　　　　　　|&mdash;&mdash;Internet 信息服务(IIS)&mdash;&mdash;&mdash;Internet 信息服务管理器（必选）　 <br />　　　　　　　　　　　　　　　　　　　　　 |&mdash;&mdash;公用文件（必选） <br />　　　　　　　　　　　　　　　　　　　　　 |&mdash;&mdash;万维网服务&mdash;&mdash;&mdash;Active Server pages（必选） <br />　　　　　　　　　　　　　　　　　　　　　　 　　　　　　　|&mdash;&mdash;Internet 数据连接器（可选） <br />　　　　　　　　　　　　　　　　　　　　　　　　　　　　　 |&mdash;&mdash;WebDAV 发布（可选） <br />　　　　　　　　　　　　　　　　　　　　　　　　　　　　　 |&mdash;&mdash;万维网服务（必选） <br />　　　　　　　　　　　　　　　　　　　　　　　　　　　　　 |&mdash;&mdash;在服务器端的包含文件（可选） <br />　　然后点击确定&mdash;&gt;下一步安装。（具体见本文附件1） <br /></p>
<p>３、系统补丁的更新 <br />　　点击开始菜单&mdash;&gt;所有程序&mdash;&gt;Windows Update <br />　　按照提示进行补丁的安装。 <br />４、备份系统 <br />　　用GHOST备份系统。 <br />５、安装常用的软件 <br />　　例如：杀毒软件、解压缩软件等；安装完毕后,配置杀毒软件,扫描系统漏洞,安装之后用GHOST再次备份系统。 <br />6、先关闭不需要的端口 开启防火墙 导入IPSEC策略 <br />在&rdquo;网络连接&rdquo;里，把不需要的协议和服务都删掉，这里只安装了基本的Internet协议（TCP/IP），由于要控制带宽流量服务，额外安装了Qos数据包计划程序。在高级tcp/ip设置里--&quot;NetBIOS&quot;设置&quot;禁用tcp/IP上的NetBIOS（S）&quot;。在高级选项里，使用&quot;Internet连接防火墙&quot;，这是windows 2003 自带的防火墙，在2000系统里没有的功能，虽然没什么功能，但可以屏蔽端口，这样已经基本达到了一个IPSec的功能。 <br />修改3389远程连接端口 <br />修改注册表. <br />开始--运行--regedit <br />依次展开 HKEY_LOCAL_MACHINE/SYSTEM/CURRENTCONTROLSET/CONTROL/ <br />TERMINAL SERVER/WDS/RDPWD/TDS/TCP <br />右边键值中 PortNumber 改为你想用的端口号.注意使用十进制(例 10000 ) <br />HKEY_LOCAL_MACHINE/SYSTEM/CURRENTCONTROLSET/CONTROL/TERMINAL SERVER/WINSTATIONS/RDP-TCP/ <br />右边键值中 PortNumber 改为你想用的端口号.注意使用十进制(例 10000 ) <br />注意：别忘了在WINDOWS2003自带的防火墙给+上10000端口 <br />修改完毕.重新启动服务器.设置生效。 <br /></p>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.nmju.net/article.asp?id=92" /> 
	  <id>http://www.nmju.net/default.asp?id=92</id>
  </entry>	
		
</feed>
