#Software: Microsoft Internet Information Services 5.0 #Version: 1.0 #Date: 2005-10-10 10:10:13 #Fields: time c-ip cs-username s-port cs-method cs-uri-stem sc-status …… ………………. 10:54:13 ip1 anonymous@ftp.msft.com 21 [135]USER anonymous@ftp.msft.com 331 10:54:13 ip1 - 21 [135]PASS - 530 11:48:04 ip2 anonymous 21 [136]USER anonymous 331 11:48:04 ip2 - 21 [136]PASS Cgpuser@you.com 530 13:50:27 ip3 Anonymous 21 [137]USER Anonymous 331 13:50:27 ip3 - 21 [137]PASS guest@me.net 530 17:40:30 ip4 anonymous 21 [138]USER anonymous 331 17:40:30 ip4 - 21 [138]PASS IEUser@ 530 17:40:30 ip4 anonymous 21 [139]USER anonymous 331 17:40:30 ip4 - 21 [139]PASS IEUser@ 530 17:40:41 ip4 Administrator 21 [140]USER Administrator
a) 在上文第一个日志条目中,[135] 和 331 分别代表什么?在哪里可以找到关于此状态代码的更多信息?
b) 我的计算机上运行的是 Windows 2000 Server,没有 anonymous@ftp.msft.com,且不允许匿名访问。此用户是否正在尝试使用其他用户名进行登录?
c) 第二行的 PASS - 530 是否表示该用户未登录?
d) 在第六行,为什么在 PASS 和 530 之间有一个电子邮件地址?
e) 在第八行的末尾,PASS 字段中为什么有 IEUser@?
f) 最后两个日志条目是否表明该用户已登录到 FTP?
答:
在回答您提出的问题之前,重要的是先了解此日志文件中都记录了哪些“字段”。在您的示例中,这些字段是:
time c-ip cs-username s-port cs-method cs-uri-stem sc-status
下表显示了每个字段所代表的信息:
属性 | 字段 | 说明 |
Client IP Address |
c-ip |
访问您的 FTP 服务器的 IP 地址 |
User Name |
cs-username |
访问您的 FTP 服务器的用户名 |
Service Name |
s-sitename |
为请求提供服务的站点名(例如,MSFTPSVC1) |
Server Name |
s-computername |
FTP 服务器名 |
Server IP Address |
s-ip |
为请求提供服务的 FTP 服务器 IP 地址 |
Server Port |
s-port |
为请求提供服务的 FTP 服务器端口号 |
Method |
cs-method |
客户端操作请求(例如,USER、PASS) |
URI Stem |
cs-uri-stem |
请求内容的名称(例如,目录、文件名) |
Protocol Status |
sc-status |
请求的状态代码 |
Win32 Status |
sc-win32-status |
Windows 术语中的状态代码 |
Bytes Sent |
sc-bytes |
服务器发送的字节数 |
Bytes Received |
cs-bytes |
服务器收到的字节数 |
Time Taken |
time-taken |
处理请求所花费的时间 |
现在,让我们继续解决您个人的问题。
Q (a):在上文第一个日志条目中,[135] 和 331 分别代表什么?在哪里可以找到关于此状态代码的更多信息?
A (a):cs-method 字段中的 [135] 代表 IIS FTP 的“连接 ID”。在本例中,从 ip1 开始的第一次连接是自服务启动以来的第 135 次连接。331 是回复的状态代码,按照 RFC959 规范,它代表“用户名正确,需要密码”。下一个日志条目中含有状态代码 530,它表明用户登录失败。验证失败的原因可能是用户名/密码无效或者是用户帐户没有登录所必需的用户权限。有关完整的状态代码及其说明,请参阅“Microsoft 知识库”文章中的 IIS 状态代码。
Q (b):我的计算机上运行的是 Windows 2000 Server,没有 anonymous@ftp.msft.com,且不允许匿名访问。此用户是否正在尝试使用其他用户名进行登录?
A (b):是的。禁用匿名访问后,标准的电子邮件格式用户名将无效。如果您发现类似于“管理员”或位于用户数据库中的某个随机用户名的登录,则很可能是攻击者正在尝试使用一个已知用户名进行登录。
Q (c):第二行的 PASS - 530 是否表示该用户未登录?
A (c):是的。请参阅对上文第一个问题的解答,另请参阅“Microsoft 知识库”文章中的错误信息:530 用户 <用户名> 不能登录。登录失败。
Q (d):在第六行,为什么在 PASS 和 530 之间有一个电子邮件地址?
A (d):问的好。第三行和第六行中的日志条目都表明该用户正在尝试以匿名方式进行登录;您会发现 cs-username 字段显示为“anonymous”。即使使用匿名帐户,用户仍需要提供密码。密码的内容和格式不受任何限制。但 IIS FTP 会作出如下响应:“331 Anonymous access allowed, send identity (e-mail name) as password”(331 允许匿名访问,发送身份标识(电子邮件名)作为密码)。因此,大部分用户会输入电子邮件地址作为密码。此匿名密码被记录在 FTP 日志文件中。
Q (e):在第八行的末尾,PASS 字段中为什么有 IEUser@?
A (e):嗯,这清楚地向我们表明该用户正在使用 Internet Explorer (IE)。默认情况下,在浏览 FTP 站点时,IE 将自动以匿名身份登录。因此,你会看到用户名为“anonymous”,而 IEUser@ 只是 IE 所使用的密码。
Q (f):最后两个日志条目是否表明该用户已登录到 FTP?
A (f):是的。这是因为 PASS 的状态代码是 230,它表示登录成功。但请注意,IIS 不会将登录用户密码存储在日志文件中。