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 表示传输未完成  |