FTP服务器日志解析

FTP是老牌的文件传输协议,在网络中应用非常广泛。本节就Vsftp服务器的日志进行重点讨论,在本书的FTP多级跳案例中就会涉及到本节学到的知识。在Redhat Linux系统下Vsftp的配置文件在/etc/vsftp/vsftp.conf文件中。默认情况下,Vsftp不单独记录日志,也就是说不会输出到一个单独的文件中存储,而是统一存放到/var/log/messages文件中。Vsftp日志实例显示如图1所示。

图1 Vsftp日志实例

通过在messages过滤得方法可以看到Vsftp的客户机连接日至,但这段日志里只反映了少量信息,如果需要查看更详细的信息如何操作?下面我们来编辑/etc/vsftp/vsftp.conf配置文件。

如何将Vsftp服务器的日志文件单独输出到某个文件下呢?这里需要三个步骤:

下面对重要语句做一些解释:

标识A:启用xferlog_enable=YES,它表示将客户机登录服务器后上传或下载的文件具体信息记录。

标识B:启用xferlog_file=/var/log/vsftpd.log,它表示将上传下载写到指定文件,也就是/var/log/xferlog文件。

标识C:启用dual_log_enable=YES,它表示启用双份日志,一份日志由xferlog记录,同时vsftpd.log也记录另一份日志,注意他们两儿可不是互为备份,其内容不同,但各有千秋。

接下来还得解释一下/usr/bin/xferstats这个工具,它是日志统计工具,用于计算传输了多少文件并创建日志文件。

注意:在您的Linux系统中一定安装xferstats的包,才能对他进行操作,如果发现找不到xferstats没有命令就要安装这个包。

1.3.1分析vsftpd.log和xferlog

Vsftpd.log和xferlog是Vsftp服务器记录日志的来源,下面重点对着两种日志文件的格式做一下分析。

(1)vsftpd.log实例分析首先打开vsftpd.log.1文件,看看它的日志结构。如图2示。

图2 ftpd分离后的日志结构

在图1-9中日志仅反映了部分Ftp登录情况:例如登录IP地址、用户名。但下载软件内容不会记录下来,有时网管恰好关心这一段日志信息,这时我们需要同时参考xferlog日志,还记得上面说过的xferstats工具吗?

(2)Xferlog日志实例分析

xferlog日志会记录FTP会话详细信息,它能够显示客户机向FTP Server上传/下载的文件路径及名称认证方式等信息,下面我们看看这个文件的具体内容,xferlog日志格式见表1-4所示。

Xferlog日志格式解析:

注意:这里指的认证是结合PAM(一种可插入的安全验证模块)的方式,主要是为了保证安全,在企业中常会用到Vsftp+Pam+Postgresql的架构,在这种架构中我们可以设置为用MD5工具来验证密码,这样客户机在远程要用MD5加密过密码的用户登录才能成功获取文件,有关PAM的应用在本书的第九章SSH加固中也会提到。

1.3.2中文对Vsftp日志的影响

大家在使用RHEL5系统中的Vsftp(2.05版)时有时会遇到下面中文日志的显示问题,我们看看下面的例子。如果客户机上传的文件中含有中文名那么日志将显示乱码,例如新建一个带中文的文件夹,发现在其日志(/var/log/xferlog和/var/log/vsftpd.log)中就会产生如下日志(不能正常的显示中文):

Sat Jan 12 00:26:18 2013 [pid 6853][ftp] FAIL MKDIR: Client “192.168.150.1”, “/pub/???????????”

当日志中出现乱码,怎么办呢?

Ø将系统安装成为默认为中文;

Ø调整字符集,将系统的字符集改成zh_CN.gb;或者将字符集修改为GB2312

Ø修改vsftpd.conf,加入syslog_enable=yes参数,编辑vsftpd.conf,再重启vsftpd;

经过笔者尝试,以上三种方法都不能解决中文日志的输出问题。其实,并不是设置问题,是Vsftpd本生问题(当然修改源码然后编译安装是可以解决的),要解决就要将日志输出到/var/log/messages,可这样做和我们当初想法将他分离相违背, 有兴趣的读者也可采用Proftp,见图2示。它的主要优点是,不但可以完整的记录中文的文件名在日志汇总,还可以日志分离,查看起来比较方便。

图2Proftp中文日志显示

1.3.2用Logparser分析FTP日志

在分析了Vsftp服务器日志后,在实际工作中Windows系统下的FTP服务器应用的也不少, 微软的IIS服务器常常会成为入侵的对象。微软LogParser工具是Windows系统下功能非常的强大的日志分析工具,它可以分析IIS日志这种基于文本的日志格式,操作系统事件日志还能分析CSV和XML这类的文件格式,尤其对于上百兆甚至是上GB的日志文件都可以快速分析,利用LoParser能轻松查出你需要的数据,而且还能以图表的形式输出结果。下面就用这款工具来筛选FTP日志中的异常连接。主要分为了收集Ftp日志、导入数据库、日志数据筛选和异常数据分离四个步骤:

步骤一:FTP日志的采集

微软IIS服务器的FTP日志文件默认位置为%systemroot%\system32\LogFiles\MSFTPSVC1\,对于绝大多数系统而言则是C:\WINDOWS\system32\LogFiles\MSFTPSVC1(如果安装系统时定义了系统存放目录则根据实际情况修改),系统默认每天自动生成一个日志文件。日志文件的名称格式是: ex + 年份的末两位数字+月份+日期,如2006 年3月19日的FTP日志文件是ex060319.log,这是个文本文件,可以用任何编辑器打开,例如记事本程序。

为了详细地分析采集来的FTP日志,下面我们先来看看常见的命令有: USER 〈用户名〉、PASS〈密码〉、DELE 、QUIT 等,由于命令较多本节中就不一一列出了。对于常见的响应提示信息,如表2所示(与Apache的类似)。

表2 FTP响应信息含义

状态代码

含义

2XX开头

成功

3XX开头

权限问题

4XX开头

文件问题

5XX开头

服务器故障

FTP命令加上响应号才具有实际意义,例如:USER stu 331表示用户试图登录,PASS - 230表示登录成功。

步骤二:FTP日志导入MS SQL数据库

把Ftp日志导入到SQL Server数据库,首先在需要安装好LogParser 2.2+SQL Server环境;然后在待分析机器上装好SQL  Server 环境,然后新建数据库名为iis;最后将IIS日志拷贝到本机。准备工作完成后输入如下命令:

logparser.exe "select * from C:\WINDOWS\system32\LogFiles\MSFTPSVC1\ex*.log to iisftplog_table" -o:sql -server:127.0.0.1 -driver:"sql server" -database:iis -username:sa -password:123456 -createtable:on

命令执行和输出效果见图3所示

图3Logparser命令执行和输出效果

在执行上面命令时,一定要指定日志文件的完整路径,否则将出现找不到日志的提示。 当Logparser程序正确输出后,就可以打开数据库检查了,如图4、图5所示。

图4在企业管理器中打开iislog_table表

图5查看iisftplog_table表

步骤三:FTP日志数据的筛选

IIS的FTP日志包括5 个域: time、c-ip、cs-method、cs-uri-stem 和sc-status。

下面选取了FTP服务器某日白天的日志, 一共1万多条条记录

#Software: Microsoft Internet Information Services 5.2

#Version: 1.0

#Date: 2010-05-08 08:30:23

#Fields: time c-ip cs-method es-uri-strem sc-status

08:30:23 192.168.3.62 [1]USER stu 331

08:30:23 192.168.3.62 [1]PASS - 530

08:30:28 192.168.3.62 [2]USER stu 331

08:30:29 192.168.3.62 [2]PASS - 530

... ...

09:10:23 192.168.3.135 [15]USER anonymous 331

09:10:23 192.168.3.135 [15]PASS IEUser@ 230

09:10:37 10.10.1.200 [16]USER px 331

09:10:37 10.10.1.200 [16]PASS - 530

... ...

21:44:21 63.103.87.197 [1163]USER anonymous 331

21:44:21 63.103.87.197 [1163]PASS yourname@yourcompany.com 230

21:44:40 63.103.87.197 [1163]sent /mp3.ape 550

将FTP日志文件导入MS SQL 数据库后,字段名保留日志文件中的名字,下面就可以通过脚本对FTP进行深度处理。

步骤四:分离正常与异常数据源

FTP日志文件导入至MS SQL服务器后,在数据库中用SQL命令将每一天的数据都按cs-method 字段进行升序排序。每天日志中cs-method 字段相同的记录表示该用户这次登录所做的一系列操作,数据库中记录是否出现异常响应,可以根据sc-status 字段的值来判断,例如如果出现登录错误, 即PASS-530,连续出现3 次以上,则认为异常。可以将异常的登录错误信息输出即可,进过这样对FTP日志文件进行的深度挖掘,能非常方便管理人员迅速判断故障,提高了工作效率和准确度。

原文:http://my.oschina.net/chenguang/blog/375311

linux下ftp命令打印日志,ftp服务器日志解析相关推荐

  1. linux安装DNS服务命令,Linux下的安装和配置DNS服务器

    Linux下的安装和配置DNS服务器 发布时间:2008-09-08 17:03:00   作者:佚名   我要评论 在Linux操作系统中使用BIND (Berkeley Internet Name ...

  2. linux下常用命令wget进行整站下载

    一.Linux下的wget Linux系统中的wget是一个下载文件的工具,它用在命令行下.对于Linux用户是必不可少的工具,我们经常要下载一些软件或从远程服务器恢复备份到本地服务器.wget支持H ...

  3. linux中安shell怎么传入参数,【linux】linux 下 shell命令 执行结果赋值给变量【两种方式】...

    方法1:[通用方法] 使用Tab键上面的反引号 例子如下: find命令 模糊查询在/apps/swapping目录下 查找 文件名中包含swapping并且以.jar结尾的文件 使用反引号 引住命令 ...

  4. linux rz位置,Linux下rz命令使用的实例详解

    Linux中rz命令和sz命令都可用于文件传输,而rz命令主要用于文件的上传,下面将通过几个实例来给大家详细介绍下Linux下rz命令的用法,一起来学习下吧. rz命令可以批量上传文件,当然也可上传单 ...

  5. linux查看远程服务器端口,linux下查看本机和远程服务器的端口是否连通的方法...

    linux下查看本机和远程服务器的端口是否连通的方法 如下所示: 1.ssh -v -p [端口号] [用户名]@[IP地址] 2.curl [IP地址]:[端口号] 以上这篇linux下查看本机和远 ...

  6. linux系统rz,rz:Linux下rz命令使用方法介绍

    今天来聊聊一篇关于rz:Linux下rz命令使用方法介绍的文章,现在就为大家来简单介绍下rz:Linux下rz命令使用方法介绍,希望对各位小伙伴们有所帮助. rz命令可以批量上传文件,当然也可上传单个 ...

  7. linux命令大全rz,Linux下rz命令使用的实例详解

    摘要 腾兴网为您分享:Linux下rz命令使用的实例详解,猿辅导,学习帮,我爱我家,唯品会等软件知识,以及2034盒子,endnotex6,方塘音控,供销网,论文修改神器,小乌龟,银河谷,兼职app, ...

  8. Linux查看WAS的jvm信息,linux 下使用命令查看jvm信息

    java程序员除了编写业务代码之外,特别是项目上线之后,更需要关注的是系统的性能表现,这个时候就需要了解一下jvm的性能表现了,可以借助于java虚拟机自带的一些分析工具,主要有三个常用的命令. 1. ...

  9. linux当前时间 按格式化,Linux下date命令,格式化输出,时间设置

    date命令的帮助信息 [root@localhost source]# date --help 用法:date [选项]... [+格式] 或:date [-u|--utc|--universal] ...

  10. linux 下搜索的命令,Linux下搜索命令

    linux下用于查找文件的5个命令,有需要的朋友可以参考下.包括find,whereis,locate,which与type. linux下用于查找文件的5个命令,有需要的朋友可以参考下. 包括fin ...

最新文章

  1. 新iPhone全面5G!4种杯型,最便宜只要5500,均内置中国北斗
  2. 36条网络安全术语盘点——Vecloud
  3. mysql级联复制转换成一主两从_一主两从转级联复制
  4. MySQL自用脚本(不定期更新)
  5. 【经典算法】——KMP,深入讲解next数组的求解
  6. 《数值分析》学习笔记 ·001——计算方法的任务和特点
  7. Access to the path ‘‘ is denied.解决方案
  8. 世纪互联蓝云柯文达:与更多海外云服务商共赢中国市场
  9. [转][Lucene.Net] 基本用法
  10. 帝国CMS友情链接系统图文教程
  11. Linux系统移植 uboot移植 步骤
  12. C++MFC画图工具
  13. 平流方程基于MATLAB数值解法,Matlab微分方程高效解法:谱方法原理与实现
  14. WWW2022推荐系统/计算广告论文集锦
  15. 随机获取4位26个英文字母和数字组合的值(4位随机码)
  16. html中出现弹窗偏右,打印机打印某些网页时,右边总是打印不全,怎么办
  17. Linux的进程优先级-邹立巍
  18. xp系统扫描仪服务器,通过系统自带的扫描仪向导获取图片(适用于WinXP)
  19. 使用pdfbox2.0.15版本,将pdf文件转为图片时,中文显示乱码
  20. TIOBE 2006年7月最流行开发语言排名 VB.Net再度下滑

热门文章

  1. 【电脑维修系列】妈妈再也不用担心 我装不了电脑系统 全攻略
  2. 数据结构 实验三 树的应用
  3. ESP8285+WS2812+MAX9814制作的音乐律动氛围灯
  4. python模块之junos-eznc
  5. Opencv安装与环境配置
  6. 机器人学习参考书籍目录整理
  7. 天线波束形成matlab,数字多波束形成的MATLAB仿真
  8. ARM:ARM体系结构与编程、ARM指令流水线、ARM编程模型基础
  9. QT语言版本支持---国际化语言家功能的使用
  10. 优秀的Git客户端:Tower for mac