FTP服务器的日志设置,可以通过修改主配置文件/etc/vsftpd.conf实现。主配置文件中与日志设置有关的选项包括xferlog_enable 、xferlog_file 和dual_log_enable 等。
xferlog_enable
如果启用该选项,系统将会维护记录服务器上传和下载情况的日志文件。默认情况下,该日志文件为 /var/log/vsftpd.log。但也可以通过配置文件中的 vsftpd_log_file 选项来指定其他文件。默认值为NO。
xferlog_std_format
如果启用该选项,传输日志文件将以标准 xferlog 的格式书写,该格式的日志文件默认为 /var/log/xferlog,也可以通过 xferlog_file 选项对其进行设定。默认值为NO。
dual_log_enable
如果启用该选项,将生成两个相似的日志文件,默认在 /var/log/xferlog 和 /var/log/vsftpd.log 目录下。前者是 wu-ftpd 类型的传输日志,可以利用标准日志工具对其进行分析;后者是Vsftpd类型的日志。
syslog_enable
如果启用该选项,则原本应该输出到/var/log/vsftpd.log中的日志,将输出到系统日志中。
常见的日志解决方案如下:
- xferlog_enable=YES
- xferlog_std_format=YES
- xferlog_file=/var/log/xferlog
- dual_log_enable=YES
- vsftpd_log_file=/var/log/vsftpd.log
该方案将xferlog_enable设置为YES,表明FTP服务器记录上传下载的情况,而将xferlog_std_format也设置为YES,则表明将记录的上传下载情况写在xferlog_file所指定的文件中,即/var/log/xferlog文件。
同时,该方案启用dual_log_enable,表明启用了双份日志。在用xferlog文件记录服务器上传下载情况的同时,vsftpd_log_file所指定的文件,即/var/log/vsftpd.log,也将用来记录服务器的传输情况。
下面分别查看xferlog文件和vsftpd.log文件的内容。
xferlog内容如下:
- Thu Sep 6 09:07:48 2007 7 192.168.57.1
4323279 /home/student/phpMyAdmin -2.11.
0-all-languages.tar.gz b _ i r student ftp 0 * c- Thu Sep 6 10:15:59 2007 1 192.168.57.1
61810 /home/student/php-pdo-5.1.6-5. el5.
i386.rpm b _ i r student ftp 0 * c- Thu Sep 6 10:17:13 2007 1 192.168.57.1
83741 /home/student/php-mysql-5.1. 6-5.el5.i386.
rpm b _ i r student ftp 0 * c- Tue Sep 11 07:49:34 2007 1 127.0.0.1 0 /
pub/hello.txt b _ o a bit@bit.edu.cn ftp 0 * i- Tue Sep 11 07:51:22 2007 1 127.0.0.1 34 /
pub/hello.txt b _ o a bit@bit.edu.cn ftp 0 * c- Tue Sep 11 11:23:05 2007 1 192.168.57.1
83741 /php-mysql-5.1.6-5.el5.i386.rpm a _ o r student ftp 0 * c- Tue Sep 11 11:31:36 2007 1 192.168.57.1
12 /eng000.txt a _ i r student ftp 0 * c- Tue Sep 11 11:53:05 2007 1 192.168.57.2
367 /user_list b _ i r student ftp 0 * c- Tue Sep 11 11:56:06 2007 1 192.168.57.2
0 / b _o a mozilla@example.com ftp 0 * i- Tue Sep 11 11:57:36 2007 1 192.168.57.2
0 / b _ o r student ftp 0 * i
vsftpd.log文件内容如下:
- Tue Sep 11 14:59:03 2007 [pid 3460] CONNECT: Client "127.0.0.1"
- Tue Sep 11 14:59:24 2007 [pid 3459] [ftp]
OK LOGIN: Client "127.0.0.1", anon password "?"
在xferlog文件的第一条记录中,各数据的参数名如表11.3所示。
表11.3 xferlog文件数据的参数名
记录数据 |
参数名称 |
Thu Sep 6 09:07:48 2007 |
当前时间 |
7 |
传输时间 |
192.168.57.1 |
远程主机名称/IP |
4323279 |
文件大小 |
/home/student/phpMyAdmin-
2.11.0-all-languages.tar.gz |
文件名 |
b |
传输类型 |
_ |
特殊处理标志 |
i |
传输方向 |
r |
访问模式 |
student |
用户名 |
ftp |
服务名 |
0 |
认证方式 |
* |
认证用户id |
c |
完成状态 |
表11.4描述了各参数的具体含义。
表11.4 xferlog 参数说明
参 数 名 |
说 明 |
当前时间 |
当前服务器本地时间,格式为
“DDD MMM dd hh: mm: ss YYYY” |
传输时间 |
传送文件所用时间,单位为秒 |
远程主机 |
远程主机名称/IP |
文件大小 |
传送文件的大小,单位为byte |
文件名 |
传输文件名,包括路径 |
传输类型 |
传输方式的类型,包括两种:
a 以ASCII传输
b 以二进制文件传输 |
特殊处理标志 |
特殊处理的标志位,可能的值包括:
_ 不做任何特殊处理
C 文件是压缩格式
U 文件是非压缩格式
T 文件是tar格式 |
传输方向 |
文件传输的方向,包括两种:
o 从FTP服务器向客户端传输
i 从客户端向FTP服务器传输 |
访问模式 |
用户访问模式,包括:
a 匿名用户
g 来宾用户
r 真实用户,即系统中的用户 |
用户名 |
用户名称 |
服务名 |
所使用的服务名称,一般为FTP |
认证方式 |
认证方式,包括:
0 无
1 RFC931认证 |
认证用户id |
认证用户的id,如果使用*,
则表示无法获得该id |
完成状态 |
传输的状态:
c 表示传输已完成
i 表示传输未完成 |