【附录】
CLOSE_WAIT
http://blog.sina.com.cn/s/blog_408c00570100eek0.html
NETSTAT状态之一CLOSE_WAIT学习 (2009-08-14 08:51:33)
首先我们知道,如果我们的Client程序处于CLOSE_WAIT状态的话,说明套接字是被动关闭的!
因为如果是Server端主动断掉当前连接的话,那么双方关闭这个TCP连接共需要四个packet:
Server ---> FIN ---> Client
Server <--- ACK <--- Client
这时候Server端处于FIN_WAIT_2状态;而我们的程序处于CLOSE_WAIT状态。
Server <--- FIN <--- Client
这时Client发送FIN给Server,Client就置为LAST_ACK状态。
Server ---> ACK ---> Client
Server回应了ACK,那么Client的套接字才会真正置为CLOSED状态。
我们的程序处于CLOSE_WAIT状态,而不是LAST_ACK状态,
说明还没有发FIN给Server,那么可能是在关闭连接之前还有许多数据要发送或者其他事要做,导致没有发这个FIN packet。
IIS日志
http://wenwen.soso.com/z/q339984695.htm
Windows2003环境中,IIS日志默认存储路径:C:\WINDOWS\system32\LogFiles\ ,在LogFiles文件夹下,存在多个IIS日志文件夹,
每个IIS日志文件夹对应一个站点日志。当然IIS日志文件存储位置也可以根据自己的实际情况,在IIS管理器中重新设定。
要查看对应站点的IIS日志,只需要打开对应IIS日志文件夹找到相对应日志文件即可。也可借助IIS日志分析工具提供查看IIS日志的效率!
IIS日志文件存储格式:IIS日志是后缀名为log的文本文件。
IIS日志文件代码格式:
#Software: Microsoft Internet Information Services 6.0
#Version: 1.0
#Date: 2009-11-26 06:14:21
#Fields: date time s-sitename s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) sc-status sc-substatus sc-win32-status
2009-11-26 06:14:21 W3SVC692644773 125.67.67.* GET /index.html - 80 - 123.125.66.130 Baiduspider+(+ http://www.baidu.com/search/spider.htm) 200 0 64
2009-11-26 06:14:21 W3SVC692644773 125.67.67.* GET /index.html - 80 - 220.181.7.116 Baiduspider+(+ http://www.baidu.com/search/spider.htm) 200 0 64
IIS日志参数详解:
date:发出请求时候的日期。
time:发出请求时候的时间。注意:默认情况下这个时间是格林威治时间,比我们的北京时间晚8个小时,下面有说明。
c-ip:客户端IP地址。
cs-username:用户名,访问服务器的已经过验证用户的名称,匿名用户用连接符-表示。
s-sitename:服务名,记录当记录事件运行于客户端上的Internet服务的名称和实例的编号。
s-computername:服务器的名称。
s-ip:服务器的IP地址。
s-port:为服务配置的服务器端口号。
cs-method:请求中使用的HTTP方法,GET/POST。
cs-uri-stem:URI资源,记录做为操作目标的统一资源标识符(URI),即访问的页面文件。
cs-uri-query:URI查询,记录客户尝试执行的查询,只有动态页面需要URI查询,如果有则记录,没有则以连接符-表示。即访问网址的附带参数。
sc-status:协议状态,记录HTTP状态代码,200表示成功,403表示没有权限,404表示找不到该页面,具体说明在下面。
sc-substatus:协议子状态,记录HTTP子状态代码。
sc-win32-status:Win32状态,记录Windows状态代码。
sc-bytes:服务器发送的字节数。
cs-bytes:服务器接受的字节数。
time-taken:记录操作所花费的时间,单位是毫秒。
cs-version:记录客户端使用的协议版本,HTTP或者FTP。
cs-host:记录主机头名称,没有的话以连接符-表示。注意:为网站配置的主机名可能会以不同的方式出现在日志文件中,原因是HTTP.sys使用Punycode编码格式来记录主机名。
cs(User-Agent):用户代理,客户端浏览器、操作系统等情况。
cs(Cookie):记录发送或者接受的Cookies内容,没有的话则以连接符-表示。
cs(Referer):引用站点,即访问来源。
HTTP协议状态码的含义,协议状态sc-status,是服务器日记扩展属性的一项。下面是各状态码含义列表:
"100" : Continue 客户必须继续发出请求
"101" : witching Protocols 客户要求服务器根据请求转换HTTP协议版本 200交易成功
"200" : OK 交易成功
"201" : Created 提示知道新文件的URL
"202" : Accepted 接受和处理、但处理未完成
"203" : Non-Authoritative Information 返回信息不确定或不完整
"204" : No Content 请求收到,但返回信息为空
"205" : Reset Content 服务器完成了请求,用户代理必须复位当前已经浏览过的文件
"206" : Partial Content 服务器已经完成了部分用户的GET请求
"300" : Multiple Choices 请求的资源可在多处得到
"301" : Moved Permanently 删除请求数据
"302" : Found 在其他地址发现了请求数据
"303" : See Other 建议客户访问其他URL或访问方式
"304" : Not Modified 客户端已经执行了GET,但文件未变化
"305" : Use Proxy 请求的资源必须从服务器指定的地址得到
"306" 前一版本HTTP中使用的代码,现行版本中不再使用
"307" : Temporary Redirect 申明请求的资源临时性删除
"400" : Bad Request 错误请求,如语法错误
"401" : Unauthorized 请求授权失败
"402" : Payment Required 保留有效ChargeTo头响应
"403" : Forbidden 请求不答应
"404" : Not Found 没有发现文件、查询或URl
"405" : Method Not Allowed 用户在Request-Line字段定义的方法不答应
"406" : Not Acceptable 根据用户发送的Accept拖,请求资源不可访问
"407" : Proxy Authentication Required 类似401,用户必须首先在代理服务器上得到授权
"408" : Request Time-out 客户端没有在用户指定的饿时间内完成请求
"409" : Conflict 对当前资源状态,请求不能完成
"410" : Gone 服务器上不再有此资源且无进一步的参考地址
"411" : Length Required 服务器拒绝用户定义的Content-Length属性请求
"412" : Precondition Failed 一个或多个请求头字段在当前请求中错误
"413" : Request Entity Too Large 请求的资源大于服务器答应的大小
"414" : Request-URI Too Large 请求的资源URL长于服务器答应的长度
"415" : Unsupported Media Type 请求资源不支持请求项目格式
"416" : Requested range not satisfiable 请求中包含Range请求头字段,在当前请求资源范围内没有range指示值,请求也不包含If-Range请求头字段
"417" : Expectation Failed 服务器不满足请求Expect头字段指定的期望值,假如是代理服务器,
"500" : Internal Server Error 服务器产生内部错误
"501" : Not Implemented 服务器不支持请求的函数
"502" : Bad Gateway 服务器暂时不可用,有时是为了防止发生系统过载
"503" : Service Unavailable 服务器过载或暂停维修
"504" : Gateway Time-out 关口过载,服务器使用另一个关口或服务来响应用户,等待时间设定值较长
"505" : HTTP Version not supported 服务器不支持或拒绝支请求头中指定的HTTP版本
IIS日志
http://www.cnblogs.com/xugang/archive/2007/09/21/901143.html
日志的重要性已经越来越受到程序员的重视,IIS的日志更是不言而喻。
IIS日志建议使用W3C扩充日志文件格式,这也是IIS 5.0已上默认的格式,可以指定每天记录客户IP地址、用户名、服务器端口、方法、URI资源、URI查询、协议状态、用户代理,每天要审查日志。如图1所示。
IIS 的WWW日志文件默认位置为 %systemroot%\system32\logfiles\w3svc1\,(例如:我的则是在 C:\WINDOWS\system32\LogFiles\W3SVC1\),默认每天一个日志。
建议不要使用默认的目录,更换一个记录日志的路径,同时设置日志访问权限,只允许管理员和SYSTEM为完全控制的权限。
如图2所示。
如果发现IIS日志再也不记录了,解决办法:
看看你有没有启用日志记录:你的网站--> 属性 -->“网站”-->“启用日志”是否勾选。
日志文件的名称格式是:ex+年份的末两位数字+月份+日期。
( 如2002年8月10日的WWW日志文件是ex020810.log )
IIS的日志文件都是文本文件,可以使用任何编辑器或相关软件打开,例如记事本程序,AWStats工具。
开头四行都是日志的说明信息
#Software 生成软件
#Version 版本
#Date 日志发生日期
#Fields 字段,显示记录信息的格式,可由IIS自定义。
日志的主体是一条一条的请求信息,请求信息的格式是由#Fields定义的,每个字段都有空格隔开。
字段解释
data 日期
time 时间
cs-method 请求方法
cs-uri-stem 请求文件
cs-uri-query 请求参数
cs-username 客户端用户名
c-ip 客户端IP
cs-version 客户端协议版本
cs(User-Agent) 客户端浏览器
cs(Referer) 引用页
下面列举说明日志文件的部分内容(每个日志文件都有如下的头4行):
#Software: Microsoft Internet Information Services 6.0
#Version: 1.0
#Date: 2007-09-21 02:38:17
#Fields: date time s-sitename s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) sc-status sc-substatus sc-win32-status
2007-09-21 01:10:51 10.152.8.17 - 10.152.8.2 80
GET /seek/images/ip.gif - 200 Mozilla/5.0+(X11;+U;+Linux+2.4.2-2+i686;+en-US;+0.7)
上面各行分别清楚地记下了远程客户端的:
连接时间 2007-09-21 01:10:51
IP地址 10.152.8.17 - 10.152.8.2
端 口 80
请求动作 GET /seek/images/ip.gif - 200
返回结果 - 200 (用数字表示,如页面不存在则以404返回)
浏览器类型 Mozilla/5.0+
系统等相关信息 X11;+U;+Linux+2.4.2-2+i686;+en-US;+0.7
附:IIS的FTP日志
IIS的FTP日志文件默认位置为%systemroot%\system32\logfiles\MSFTPSVC1\,对于绝大多数系统而言(如果安装系统时定义了系统存放目录则根据实际情况修改)则是C:\winnt\system32\logfiles\ MSFTPSVC1\,和IIS的WWW日志一样,也是默认每天一个日志。日志文件的名称格式是:ex+年份的末两位数字+月份+日期,如2002年8月10日的WWW日志文件是ex020810.log。它也是文本文件,同样可以使用任何编辑器打开,例如记事本程序。和IIS的WWW日志相比,IIS的FTP日志文件要丰富得多。下面列举日志文件的部分内容。
#Software: Microsoft Internet Information Services 6.0
#Version: 1.0
#Date: 2002-07-24 01:32:07
#Fields: time cip csmethod csuristem scstatus
03:15:20 210.12.195.3 [1]USER administator 331
(IP地址为210.12.195.2用户名为administator的用户试图登录)
03:16:12 210.12.195.2 [1]PASS - 530 (登录失败)
03:19:16 210.12.195.2 [1]USER administrator 331
(IP地址为210.12.195.2用户名为administrator的用户试图登录)
03:19:24 210.12.195.2 [1]PASS - 230 (登录成功)
03:19:49 210.12.195.2 [1]MKD brght 550 (新建目录失败)
03:25:26 210.12.195.2 [1]QUIT - 550 (退出FTP程序)
有经验的用户可以通过这段FTP日志文件的内容看出,来自IP地址210.12.195.2的远程客户从2002年7月24日3:15开始试图登录此服务器,先后换了2次用户名和口令才成功,最终以administrator的账户成功登录。这时候就应该提高警惕,因为administrator账户极有可能泄密了,为了安全考虑,应该给此账户更换密码或者重新命名此账户。
如何辨别服务器是否有人曾经利用过UNICODE漏洞入侵过呢?可以在日志里看到类似如下的记录:
如果有人曾经执行过copy、del、echo、.bat等具有入侵行为的命令时,会有以下类似的记录:
13:46:07 127.0.0.1 GET /scripts/..\../winnt/system32/cmd".exe 401
13:46:07 127.0.0.1 GET /scripts/..\../winnt/system32/cmd".exe 200
13:47:37 127.0.0.1 GET /scripts/..\../winnt/system32/cmd".exe 401
相关软件介绍:
如果入侵者技术比较高明,会删除IIS日志文件以抹去痕迹,这时可以到事件查看器看来自W3SVC的警告信息,往往能找到一些线索。当然,对于访问量特别大的Web服务器,仅靠人工分析几乎是不可能的--数据太多了!可以借助第三方日志分析工具,如Faststs Analyzer、Logs2Intrusions v.1.0等。此处仅仅介绍一下Logs2Intrusions日志分析工具。它是一个由Turkish Security Network公司开发的自由软件,是免费的日志分析工具,可以分析IIS 4/5、Apache和其他日志文件。可以到http://www.trsecurity.net/logs2intrusions下载最新的版本。该软件简单易用,下面是它的主界面,如图3所示。
单击【Select】按钮后选择要分析的日志文件,然后单击【Next】按钮,在出现的窗口中单击【Begin Work】按钮即可开始分析,如图4所示。
如图4所示,它表明已经发觉入侵的痕迹。如果没有发现痕迹则弹出如图5所示的对话框。
在发现痕迹后单击【Next】按钮继续,如图6所示。
【View Report】按钮是查看报告,【Save Report】按钮是保存报告,【New Report】按钮是生成新报告。下面是报告的例子,如图7所示。
在"Intrusion Attempt"列中列出了超链接,选择它可以得到Trsecurity公司的专家的建议。和该软件同一目录中的sign.txt是入侵行为特征的关键字,用户可以根据新的漏洞的发现而随时补充。
IIS连接数
http://baike.baidu.com/link?url=d-ewV1DdfU5PRHjF78_aFVxXKh9DBXD360MQMCt-KJP7Xi7nMB0ZN3i6Oubb4SHf
a 用户单点下载你的文件,这些连接是按照瞬间计算的。b 用户打开你的页面,就算停留在页面没有对服务器发出任何请求。c 上面b的情况用户继续打开同一个网站的其他页面,那么在线人数按照用户最后一次点击(发出请求)以后的20分钟计算。d 当你的页面内存在框架(iframe),那么每多一个框架就要多一倍的在线!e 当用户打开页面然后正常关闭浏览器,用户的在线人数也会马上清除。
Log Parser 2.2
最重要的是,它是完全免费的。
下载地址为:
http://www.brothersoft.com/log-parser-lizard-download-238815.html
需要先安装LogParser 2.2,下载地址:
http://www.microsoft.com/DownLoads/details.aspx?FamilyID=890cd06b-abf8-4c25-91b2-f8d975cf8c07&displaylang=en
下载后4.9M的一个MSI文件,直接安装即可。注意安装位置尽量不要带空格。
注意:如果LogParser没有安装,会运行出错!
初始界面如图:
下面以一个检查IISLog的例子来比较LogParser与LogParserLizard的区别。
某日早上,发现网站阻塞,
第一种速查方案:
迅速启动LogParser:
进入命令行模式:
输入:
其中,Slowest20FilesInIIS_MySite.sql的内容如下:
执行结果如图:
从图中可以看出,访问最慢而且最频繁的页面是/Company/List.aspx, 而且集中在一个IP: 116.7.16.249 ,基本可以肯定主·这是有人恶意爬数据
,再输入:
其中,Slowest10IPInIIS_MySite.sql的内容如下:
启动管理工具,禁IP!!!
第二种速查方案:
启动logParserLizard,在界面中选择IIS Log--"New Query"--格式选"IIS W3C Logs"
在查询窗口输入同样的SQL,点击"Generate"
,得到如下结果:
再在查询窗口输入
得到下图:
且慢,右上角,Chart,打开一看,好多的饼图哟,
处理方法同上
为了下次方便使用,将该query保存即可。
此外 用户除了前面的六大类型查询外,还可以自增加新的Group,把自己常用的查询整理一下。