转自:http://book.51cto.com/art/201005/199709.htm
11.2 Vsftpd简介
Vsftpd是一种在GPL许可下开放源代码的FTP服务器,用于多种UNIX系统和Linux系统。Vsftpd也称为Very Secure FTP Daemon,它是一种安全、快速、稳定的FTP服务器,能够高效地处理大量的并发连接。
11.2.1 Vsftpd软件包的获取与安装
Vsftpd的主要特点包括:
提供安全的体系结构,根据任务的最低特权需求单独执行每个任务。
支持虚拟IP配置,可以在提供一个IP地址的情况下,在域中用该地址建立多个FTP服务器。
允许配置并使用虚拟用户,从而与系统用户账户分离。
支持TCP封装。
允许配置匿名服务器,用户可以在不需要身份验证的情况下上传和下载文件。
性能稳定,可以处理大量的并发连接。
可以配置为独立的服务器。
Vsftpd服务器支持带宽控制。
Linux几乎所有的发行版本都内置了Vsftpd服务,Red Hat Enterprise Linux 5 也自带了Vsftpd服务。对于已经安装了Vsftpd的Red Hat Enterprise Linux 5,可以选择【应用程序】|【添加/删除软件】中的【软件包管理者】选项,查看Vsftpd服务,如图11.1所示。
也可以在终端执行以下命令,查看系统是否已经安装了Vsftpd软件包:
- # rpm -qa|grep Vsftpd
- vsftpd-2.0.5-10.el5
如果出现以上结果,表明已安装vsftpd-2.0.5-10.el5.i386.rpm。
Vsftpd软件包的安装方法有两种。
1.手动安装Vsftpd软件包
用户可以在http://vsftpd.beasts.org/上下载需要的Vsftpd RPM安装包,也可以在Red Hat Enterprise Linux 5的安装盘中找到需要安装的RMP,用rpm -ivh命令进行安装。安装RMP时需要拥有系统的root权限。以安装vsftpd-2.0.5-10.el5.i386.rpm为例,应使用以下命令:
- # rpm -ivh vsftpd-2.0.5-10.el5.i386.rpm
(点击查看大图)图11.1 查看Vsftpd软件包 |
2.根据源代码编译安装
在需要更高版本或需要对安装过程进行定制的情况下,可以用vsftpd的源代码进行编译安装。源代码可以从http://vsftp.beasts.org网站下载,最新的版本是vsftpd-2.0.5.tar.gz。默认的配置中,Vsftpd需要使用nobody用户和/usr/share/empty目录。在安装Red Hat Enterprise Linux 5时,系统会自动创建nobody用户,和/usr/share/empty目录。可以通过以下命令测试该用户和目录是否已经存在,如果不存在则创建该用户和目录。
- # useradd nobody
- # mkdir /usr/share/empty
如果nobody用户已经存在,系统会提示"useradd: 用户nobody已经存在"。如果目录/usr/share/empty目录已经存在,系统会提示"目录已存在"。
如果需要Vsftpd支持匿名服务,应使用以下命令创建ftp用户,并使其具有home目录的权限:
- # mkdir /var/ftp
- # useradd -d /var/ftp ftp
- # chown root.root /var/ftp
- # chmod og-w /var/ftp
用户和目录权限设置完成后,可以进行编译安装,使用命令如下:
- # tar -zxvf vsftpd-2.0.5.tar.gz
- # cd vsftpd-2.0.5
- # make
- # make install
安装完成后,需要将配置文件复制到/etc目录下:
- # cp vsftpd.conf /etc/
然后使用以下命令,允许本地用户登录服务器:
- # cp RedHat/vsftpd.pam /etc/pam.d/ftp
最后,编辑配置文件/etc/vsftpd.conf,在最后一行加入listen=YES,并保存。
在命令行输入以下命令即可启动Vsftpd:
- # vsftpd &
- [1] 3457
&表示Vsftpd在后台运行。可以用以下命令对编译安装的Vsftpd进行检测:
- # ftp localhost
- Connected to teacher.bit.edu.cn.
- 220 (vsFTPd 2.0.5)
- 530 Please login with USER and PASS.
- 530 Please login with USER and PASS.
- KERBEROS_V4 rejected as an authentication type
- Name (localhost:root): anonymous
- 331 Please specify the password.
- Password:
- 230 Login successful.
- Remote system type is UNIX.
- Using binary mode to transfer files.
- ftp> ls
- 227 Entering Passive Mode (127,0,0,1,71,146)
- 150 Here comes the directory listing.
- drwxr-xr-x 2 0 0 4096 Jan 17 2007 pub
- 226 Directory send OK.
- ftp> bye
- 221 Goodbye.
下面对以上检测结果做几点说明。
# ftp localhost
表示连接本地服务器。
220 (vsFTPd 2.0.5)
表示Vsftpd2.0.5是已安装的Vsftpd的版本。
Name (localhost:root): anonymous
表示输入用户名,此处为匿名(anonymous)用户。
Password:
表示Password之后应输入密码,但在Linux终端下不显示所输入的密码内容。
230 Login successful
提示登录成功。
ftp> ls
在"ftp>"提示符下,表示正在使用Vsftpd服务,ls命令可查看服务器上的文件。
ftp> bye 221 Goodbye.
表示退出Vsftpd服务器。
安装完成后可以看到,Vsftpd的文件布局结构很简洁,如表11.1所示。
表11.1 Vsftpd文件布局
/etc/vsftpd/vsftpd.conf |
主配置文件 |
/usr/sbin/vsftpd |
Vsftpd的主程序 |
/etc/rc.d/init.d/vsftpd |
启动脚本 |
/etc/pam.d/vsftpd |
PAM认证文件 |
/etc/vsftpd.ftpusers |
禁止使用Vsftpd的用户列表文件 |
/etc/vsftpd.user_list |
禁止或允许使用Vsftpd的用户列表文件 |
/var/ftp |
匿名用户主目录 |
/var/ftp/pub |
匿名用户的下载目录 |
此外,还有一些说明文档和手册文件。Vsftpd的日志文件位于/etc/logrotate.d/vsftpd.log目录下。
11.2.2 启动和关闭Vsftpd
1.用命令行方式启动和停止
在Red Hat Enterprise Linux 5中,通过命令行方式启动和停止Vsftpd服务可使用如下命令。
启动Vsftpd服务
其命令为:
- # service vsftpd start
- 为 vsftpd 启动 vsftpd: [确定]
停止Vsftpd服务
停止Vsftpd服务的命令为:
- # service vsftpd stop
- 关闭 vsftpd: [确定]
重新启动Vsftpd服务
重新启动Vsftpd服务的命令为:
- # service vsftpd restart
- 关闭 vsftpd: [确定]
- 为 vsftpd 启动 vsftpd: [确定]
检查Vsftpd服务状态
可以采用以下命令检查Vsftpd服务的运行状态:
- service vsftpd status
- vsftpd (pid 3571) 正在运行...
也可以使用以下命令,实现相同的结果:
- # /etc/init.d/vsftpd start
- # /etc/init.d/vsftpd stop
- # /etc/init.d/vsftpd restart
2.自动启动Vsftpd服务
对于系统自带的Vsftpd服务,如果希望Vsftpd服务在系统启动时自动加载,可以执行"ntsysv"命令,启动服务配置程序。找到其中的"vsftpd"服务,在其前面选择"*"(星号),并选择【确定】按钮即可,如图11.2所示。
图11.2 设置自动运行Vsftpd服务 |
此外,还有一种更简单的图形化方法。依次选择【系统】|【管理】|【服务器设置】|【服务】命令,系统将打开【服务配置】窗口,如图11.3所示。在左侧窗口中找到【vsftpd】选项,就可以对Vsftpd执行启动、停止和重启等操作。如果选中【vsftpd】选项前面的复选框,则可以在每次启动系统时自动运行Vsftpd服务。
图11.3 【服务配置】窗口 |
11.3 Vsftpd服务器配置
Vsftpd服务器的配置主要通过修改其主配置文件Vsftpd.conf完成。需要注意的是,更改vsftpd.conf文件后,必须重启Vsftpd服务才能使设置生效。
11.3.1 配置vsftpd.conf文件
Vsftpd的主配置文件vsftpd.conf位于/etc/目录下。vsftpd.conf文件决定了Vsftpd FTP服务器的主要操作。vsftpd.conf 文件由若干配置选项组成,下面介绍其中重要的配置选项。
anonymous_enable=NO/YES
是否允许anonymous登录FTP服务器,默认设置为YES(允许)。
local_enable=NO/YES
是否允许本地用户登录FTP 服务器,默认设置为YES(允许)。
write_enable=NO/YES
是否允许用户对FTP服务器文件具有写权限,默认设置为YES(允许)。
local_umask=022 (或者其他值)
设置本地用户的文件生成掩码,默认值为077,也可以根据个人喜好将其设置为其他值。
anon_upload_enable= NO/YES
是否允许匿名用户上传文件,默认设置为YES(允许)。
anon_mkdir_write_enable= NO/YES
是否允许匿名用户创建新文件夹。默认设置为YES(允许)。
dirmessage_enable=YES
是否激活目录欢迎信息功能,当用户首次访问服务器上某个目录时,FTP服务器将显示欢迎信息。默认情况下,欢迎信息是通过目录下的.message文件获得的。
xferlog_enable=YES
是否启用上传和下载日志的功能。
ftpd_banner=Welcome to blah FTP service
在FTP服务器中设置欢迎登录信息。当用户登录到FTP服务器后,会看到欢迎信息"Welcome to blah FTP service"。
chroot_list_enable=NO/YES
chroot_list_file=/etc/vsftpd.chroot_list
"chroot"是FTP服务器配置中的重要选项。若"chroot_list_enable"设置为"YES",Vsftpd将在"chroot_list_file"选项值的位置寻找chroot_list文件,"/etc/vsftpd.chroot_list"文件中包含的用户,在登录后将不能切换到自己目录以外的其他目录,由FTP服务器自动地"chrooted"到用户自己的home目录下。这将使得chroot_list文件中的用户不能随意转到其他用户的FTP home目录下,从而有利于FTP服务器的安全管理和隐私保护。
userlist_enable=NO/YES
userlist_deny=NO/YES
"userlist_enable"选项默认值为"NO",此时ftpusers文件中的用户禁止登录FTP服务器。如果userlist_enable设置为"YES",则user_list文件中的用户允许登录FTP服务器。而如果同时设置了userlist_deny值为"YES",则user_list文件中的用户将不允许登录FTP服务器。
listen=YES
如果设置为"YES",则Vsftpd将以独立模式运行,由Vsftpd自己监听和处理连接请求。
11.3.2 vsftpd/ftpusers与vsfptd/user-list文件配置
在/etc/目录下的vsftpd/ftpusers和vsftpd/user-list两个文件与主配置文件中的"userlist_enable"和"userlist_deny"选项有着密切联系。两个文件中,每个用户名需占用一行。
以下是默认情况下ftpusers文件的内容:
- # Users that are not allowed to login via ftp
- root
- bin
- daemon
- adm
- lp
- sync
- shutdown
- halt
- news
- uucp
- operator
- games
- nobody
以下是默认情况下user_list文件的内容:
- # vsftpd userlist
- # If userlist_deny=NO, only allow users in this file
- # If userlist_deny=YES (default), never allow
users in this file, and - # do not even prompt for a password.
- # Note that the default vsftpd pam config also
checks /etc/vsftpd/ftpusers - # for users that are denied.
- root
- bin
- daemon
- adm
- lp
- sync
- shutdown
- halt
- news
- uucp
- operator
- games
- nobody
比较两个文件的内容,会发现它们实际上是一样的。在使用两个文件时的区别在于,当userlist_enable为YES时,如果一个用户名在"vsftpd/user_list"文件中,而同时"userlist_deny"选项为"YES",则该用户在试图登录FTP服务器时,将不能够登录,甚至连输入密码的提示信息都没有,直接被FTP服务器拒绝。
而如果一个用户名在"vsftpd/ftpusers"文件中,同时"userlist_deny"选项为"YES",则该用户在试图登录FTP服务器时,将能看到输入密码的提示,但即使正确输入密码仍然不能登录FTP服务器。
userlist_deny选项和user_list文件一起能够有效地阻止"root"、"apache"和"www"等系统用户登录FTP服务器,从而保证了FTP服务器的分级安全性。
11.3.3 匿名FTP设置(1)
在登录FTP服务器的用户不确定的情况下,应将FTP服务器设置为允许匿名账号登录的FTP服务器。启用匿名账号,并对匿名账号服务进行管理是匿名FTP设置的主要内容。
1.启用匿名账号
启用匿名账号及之后其他配置,均需要对vsftpd.conf文件进行修改,因此,在开始配置之前应当备份/etc/vsftpd/vsftpd.conf文件,以便于在修改过程中出现无法恢复的错误时,能够恢复到初始设置。
对/etc/vsftpd/vsftpd.conf文件做如下修改:
- anonymous_enable=YES
- local_enable=YES
- write_enable=YES
- listen=YES
配置好后,需要重新启动Vsftpd。完成上述配置后,Vsftpd将允许匿名账号登录FTP服务器,允许本地账号登录,同时允许匿名用户具有对FTP服务器文件的写权限,并且只能下载文件而不能上传。匿名用户的口令为一个E-mail地址。测试的结果如下:
- # ftp localhost
- Connected to teacher.bit.edu.cn.
- 220 (vsFTPd 2.0.5)
- 530 Please login with USER and PASS.
- 530 Please login with USER and PASS.
- KERBEROS_V4 rejected as an authentication type
- Name (localhost:root): anonymous
- 331 Please specify the password.
- Password:
- 230 Login successful.
- Remote system type is UNIX.
- Using binary mode to transfer files.
- ftp> ls
- 227 Entering Passive Mode (127,0,0,1,204,140)
- 150 Here comes the directory listing.
- drwxr-xr-x 2 0 0 4096 Jan 17 2007 pub
- 226 Directory send OK.
- ftp> cd pub
- 250 Directory successfully changed.
- ftp> ls
- 227 Entering Passive Mode (127,0,0,1,25,100)
- 150 Here comes the directory listing.
- -rw-rw-rw- 1 0 0 34 Sep 11 07:48 hello.txt
- 226 Directory send OK.
- ftp> get hello.txt
- local: hello.txt remote: hello.txt
- 227 Entering Passive Mode (127,0,0,1,181,217)
- 150 Opening BINARY mode data connection for hello.txt (34 bytes).
- 226 File send OK.
- 34 bytes received in 0.0017 seconds (19 Kbytes/s)
- ftp> !ls
- bridge.txt hello.txt webalizer.conf
- ftp> put webalizer.conf
- local: webalizer.conf remote: webalizer.conf
- 227 Entering Passive Mode (127,0,0,1,147,155)
- 550 Permission denied.
- ftp> mkdir test
- 550 Permission denied.
下面对以上测试结果做几点说明。
Name (localhost:root): anonymous
表示用匿名账号登录。
ftp> ls
列出匿名账号在FTP服务器上的目录。
ftp> cd pub
表示更改目录,进入pub文件夹。
ftp> get hello.txt
用匿名账号下载pub文件夹中的hello.txt文件。
ftp> !ls
bridge.txt hello.txt webalizer.conf
显示刚才下载的文件是否已下载到本地。
ftp> put webalizer.conf
匿名账号上传webalizer.conf文件失败,不允许匿名账号上传文件。
ftp> mkdir test
匿名账号创建文件夹失败,不允许匿名账号建立文件夹。
2.允许匿名账号上传文件
若要允许匿名账号上传文件,需要对/etc/vsftpd/vsftpd.conf文件做如下修改:
- anon_upload_enable=YES
- anon_mkdir_write_enable=YES
即把文件中anon_upload_enable=YES和anon_mkdir_write_enable=YES前的"#"去掉,无须修改其他配置。所谓能上传文件,也就是具有在FTP服务器的本地目录中新建文件和文件夹的功能。为了测试上传文件功能,可以先在/var/ftp目录中建立一个新目录"test",并设置该文件夹具有写权限。
创建新目录"test",如图11.4所示。
修改test目录的权限。
在"test"上单击鼠标右键,并在弹出的快捷菜单中选择【属性】命令,打开如图 11.5所示的【test属性】对话框,选择【权限】选项卡,设置相应权限。将【所有者】设置为"ftp-FTP User",【群组】设置为"ftp",并设置相应的【文件夹访问】、【文件访问】和【执行】权限。
图11.4 新建"test"目录 |
图11.5 【test属性】对话框 |
重启Vsftpd服务
测试的结果如下:
- # ftp localhost
- Connected to teacher.bit.edu.cn.
- 220 (vsFTPd 2.0.5)
- 530 Please login with USER and PASS.
- 530 Please login with USER and PASS.
- KERBEROS_V4 rejected as an authentication type
- Name (localhost:root): anonymous
- 331 Please specify the password.
- Password:
- 230 Login successful.
- Remote system type is UNIX.
- Using binary mode to transfer files.
- ftp> ls
- 227 Entering Passive Mode (127,0,0,1,68,56)
- 150 Here comes the directory listing.
- drwxr-xr-x 2 0 0 4096 Sep 11 07:48 pub
- drwxr-xr-x 2 14 50 4096 Sep 11 08:09 test
- 226 Directory send OK.
- ftp> cd test
- 250 Directory successfully changed.
- ftp> mkdir incoming
- 257 "/test/incoming" created
- ftp> ls
- 227 Entering Passive Mode (127,0,0,1,107,221)
- 150 Here comes the directory listing.
- drwx------ 2 14 50 4096 Sep 11 08:19 incoming
- 226 Directory send OK.
- ftp> !ls
- 1.txt bridge.txt hello.txt webalizer.conf
- ftp> put 1.txt
- local: 1.txt remote: 1.txt
- 227 Entering Passive Mode (127,0,0,1,45,47)
- 150 Ok to send data.
- 226 File receive OK.
- 361 bytes sent in 0.0018 seconds (2e+02 Kbytes/s)
- ftp> ls
- 227 Entering Passive Mode (127,0,0,1,231,175)
- 150 Here comes the directory listing.
- drwx------ 2 14 50 4096 Sep 11 08:19 incoming
- -rw------- 1 14 50 361 Sep 11 08:24 1.txt
- 226 Directory send OK.
- ftp>
11.3.3 匿名FTP设置(2)
下面对以上测试结果做几点说明。
drwxr-xr-x 2 14 50 4096 Sep 11 08:09 test
ls命令后看到前面在pub目录下创建的test目录。
ftp> cd test
更改当前目录,进入test目录下。
ftp> mkdir incoming
257 "/test/incoming" created
在test目录下创建incoming目录成功。
ftp> put 1.txt
将1.txt文件上传到test目录中。
-rw------- 1 14 50 361 Sep 11 08:24 1.txt
ls命令后看到1.txt文件上传成功。
3.仅允许匿名用户访问
所谓仅允许匿名用户访问,也就是指需要限制本地账号访问,因此需要对/etc/vsftpd/vsftpd.conf文件做如下修改:
- # local_enable=YES
- # write_enable=YES
即在文件中local_enable=YES和write_enable=YES的前面加上"#",无须修改其他配置。对此的测试结果如下:
- # ftp localhost
- Connected to teacher.bit.edu.cn.
- 220 (vsFTPd 2.0.5)
- 530 Please login with USER and PASS.
- 530 Please login with USER and PASS.
- KERBEROS_V4 rejected as an authentication type
- Name (localhost:root): anonymous
- 331 Please specify the password.
- Password:
- 230 Login successful.
- Remote system type is UNIX.
- Using binary mode to transfer files.
- ftp> cd test
- 250 Directory successfully changed.
- ftp> bye
- 221 Goodbye.
- # ftp localhost
- Connected to teacher.bit.edu.cn.
- 220 (vsFTPd 2.0.5)
- 530 Please login with USER and PASS.
- 530 Please login with USER and PASS.
- KERBEROS_V4 rejected as an authentication type
- Name (localhost:root): Kelly
- 530 This FTP server is anonymous only.
- Login failed.
- ftp> user teacher
- 530 This FTP server is anonymous only.
- Login failed.
- ftp> user root
- 530 This FTP server is anonymous only.
- Login failed.
从测试结果中可以看到,除了anonymous账号可以正常登录外,其他本地账号登录均失败,服务器提示"530 This FTP server is anonymous only",即服务器仅允许匿名账号登录。
4.设置欢迎信息
常用的欢迎信息包括两种:一种是在登录FTP服务器时显示的欢迎信息,另一种是在更改目录时显示的欢迎信息。欢迎信息的使用,能够让用户在访问FTP服务器时感觉到更友好、更亲切。
设置登录FTP服务器时显示的欢迎信息
首先对/etc/vsftpd/vsftpd.conf文件做如下修改:
- ftpd_banner=Welcome to blah FTP service
重启Vsftpd服务后,测试结果如下:
- # ftp localhost
- Connected to teacher.bit.edu.cn.
- 220 Welcome to blah FTP service.
- 530 Please login with USER and PASS.
- 530 Please login with USER and PASS.
- KERBEROS_V4 rejected as an authentication type
- Name (localhost:root): anonymous
- 331 Please specify the password.
- Password:
- 230 Login successful.
- Remote system type is UNIX.
- Using binary mode to transfer files.
从测试结果中可以看到,在登录FTP服务器时,多了一行显示信息"220 Welcome to blah FTP service"。"Welcome to blah FTP service" 即在前面为服务器设置的欢迎信息,用户可以根据需要对此欢迎信息进行修改。
设置更改目录时显示的欢迎信息
在需要设置更改目录欢迎信息的目录下,创建.message文件。例如,在"ftp/test/"目录下新建.message文件,写入一行文字"You are welcome!",保存后关闭,如图11.6所示。
图11.6 编辑.message文件内容 |
测试的结果如下:
- # ftp localhost
- Connected to teacher.bit.edu.cn.
- 220 Welcome to blah FTP service.
- 530 Please login with USER and PASS.
- 530 Please login with USER and PASS.
- KERBEROS_V4 rejected as an authentication type
- Name (localhost:root): anonymous
- 331 Please specify the password.
- Password:
- 230 Login successful.
- Remote system type is UNIX.
- Using binary mode to transfer files.
- ftp> ls
- 227 Entering Passive Mode (127,0,0,1,219,233)
- 150 Here comes the directory listing.
- drwxr-xr-x 2 0 0 4096 Sep 11 07:48 pub
- drwxr-xr-x 3 14 50 4096 Sep 11 08:40 test
- 226 Directory send OK.
- ftp> cd test
- 250-You are welcome!
- 250 Directory successfully changed.
可以看到,当进入"test"目录后,出现"250-You are welcome!"这一行欢迎文字。用户可以根据需要修改.message文件中的内容,以显示不同的欢迎信息。
5.最大传输速率
设置最大传输速率需要对/etc/vsftpd/vsftpd.conf文件进行修改。
例如,设置匿名用户的最大传输速率为20Kbps,应添加如下语句:
- anon_max_rate=20000
11.3.3 匿名FTP设置(2)
再如,设置本地账号最大传输率为1Mbps,应添加如下语句:
- local_max_rate=1000000
6.服务器最大并发数和用户最大线程数
在/etc/vsftpd/vsftpd.conf文件中添加如下语句:
- max_clients=99
- max_per_ip=5
即可设置服务器允许的最大并发数为99,而每个用户同一时段的最大并发线程数为5。
7.禁止某些IP段的主机匿名访问服务器
如果希望限制某些主机对FTP服务器的匿名访问,可以采用以下方法。
确认配置文件/etc/vsftpd/vsftpd.conf中有如下语句:
- tcp_wrappers=YES
该语句表明服务器使用tcp_wrappers作为主机访问控制方式。
编辑/etc/hosts.allow文件,增加两行命令:
- # hosts.allow This file describes the names of the hosts which are
- # allowed to use the local INET services, as decided
- # by the '/usr/sbin/tcpd' server.
- #
- vsftpd:192.168.57.1:DENY
- vsftpd:192.168.57.9:DENY
表明限制IP为192.168.57.1和192.168.57.9的主机访问IP为192.168.57.2的FTP服务器。
在主机192.168.57.1上测试的结果如下:
- Microsoft Windows XP [版本 5.1.2600]
- (C) 版权所有 1985-2001 Microsoft Corp.
- C:\Documents and Settings\Administrator>cd\
- C:\>ping 192.168.57.2
- Pinging 192.168.57.2 with 32 bytes of data:
- Reply from 192.168.57.2: bytes=32 time=1ms TTL=64
- Reply from 192.168.57.2: bytes=32 time<1ms TTL=64
- Reply from 192.168.57.2: bytes=32 time=24ms TTL=64
- Reply from 192.168.57.2: bytes=32 time<1ms TTL=64
- Ping statistics for 192.168.57.2:
- Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
- Approximate round trip times in milli-seconds:
- Minimum = 0ms, Maximum = 24ms, Average = 6ms
- C:\>ftp 192.168.57.2
- Connected to 192.168.57.2.
- 421 Service not available.
- Connection closed by remote host.
使用"ping"命令时可以看到,FTP服务器192.168.57.2是可以连通的。然而,通过ftp命令对其进行访问时则由于192.168.57.1被设置为限制访问IP,因而无法连接FTP服务器。
8.用ASCII方式传送数据
大多数FTP服务器都选择用ASCII方式传输数据,仅需要修改配置文件/etc/vsftpd/vsftpd.conf就能够实现用ASCII方式传送数据:
- ascii_upload_enable=YES
- ascii_download_enable=YES
以上语句表明允许使用ASCII方式上传和下载文件。
9.设置数据传输中断间隔时间
修改配置文件/etc/vsftpd/vsftpd.conf中的相关语句如下:
- idle_session_timeout=600
该语句表示空闲的用户会话中断时间为600秒,也就是当数据传输结束后,用户连接FTP服务器的时间不应超过600秒。可以根据实际情况对该值进行修改。
- data_connection_timeout=120
该语句表示数据连接超时时间为120秒,也可以根据实际情况对其进行修改。
11.3.4 真实账号设置(1)
对真实账号访问FTP服务器的设置,主要也是修改配置文件/etc/vsftpd/vsftpd.conf。在前面匿名账号设置中提到的一些配置,在真实账号的设置中也是同样可用的,因此不再赘述。此处主要说明的是与真实账号有关的访问控制设置。
在进行设置和测试前,应新建几个用户。选择【系统】|【管理】中的【用户和群组】选项,打开【用户管理者】对话框,新建名为"user1"、"user2"和"user3"的三个用户。然后将user1添加至/etc/vsftpd/ftpusers文件中,将user2添加至/etc/vsftpd/user_list文件中,而user3则不用添加到这两个文件中。
1.使用用户列表进行访问控制
ftpusers文件中的用户不可以访问FTP服务器
设置语句如下:
- userlist_enable=NO
userlist_enable选项的默认值为"NO",当/etc/vsftpd/vsftpd.conf文件中出现该语句时,ftpusers文件中的用户将被禁止访问FTP服务器。因此,ftpusers文件又被称为"禁止使用Vsftpd的用户列表文件"。
测试的结果如下:
- # ftp localhost
- Connected to localhost.localdomain.
- 220 (vsFTPd 2.0.5)
- 530 Please login with USER and PASS.
- 530 Please login with USER and PASS.
- KERBEROS_V4 rejected as an authentication type
- Name (localhost:root): user1
- 331 Please specify the password.
- Password:
- 530 Login incorrect.
- Login failed.
- ftp> bye
- 221 Goodbye.
- # ftp localhost
- Connected to localhost.localdomain.
- 220 (vsFTPd 2.0.5)
- 530 Please login with USER and PASS.
- 530 Please login with USER and PASS.
- KERBEROS_V4 rejected as an authentication type
- Name (localhost:root): user2
- 331 Please specify the password.
- Password:
- 230 Login successful.
- Remote system type is UNIX.
- Using binary mode to transfer files.
- ftp> bye
- 221 Goodbye.
- # ftp localhost
- Connected to localhost.localdomain.
- 220 (vsFTPd 2.0.5)
- 530 Please login with USER and PASS.
- 530 Please login with USER and PASS.
- KERBEROS_V4 rejected as an authentication type
- Name (localhost:root): user3
- 331 Please specify the password.
- Password:
- 230 Login successful.
- Remote system type is UNIX.
- Using binary mode to transfer files.
- ftp>
从结果中可以看到,user1不能访问FTP服务器,而user2和user3均可以正常登录FTP服务器。
仅允许user_list中的用户访问服务器
设置语句如下:
- userlist_enable=YES
- userlist_deny=NO
当userlist_enable设置为YES,而userlist_deny设置为NO时,FTP服务器仅允许user_list中的用户访问。测试结果如下:
- # ftp localhost
- Connected to localhost.localdomain.
- 220 (vsFTPd 2.0.5)
- 530 Please login with USER and PASS.
- 530 Please login with USER and PASS.
- KERBEROS_V4 rejected as an authentication type
- Name (localhost:root): user1
- 530 Permission denied.
- Login failed.
- ftp> bye
- 221 Goodbye.
- # ftp localhost
- Connected to localhost.localdomain.
- 220 (vsFTPd 2.0.5)
- 530 Please login with USER and PASS.
- 530 Please login with USER and PASS.
- KERBEROS_V4 rejected as an authentication type
- Name (localhost:root): user2
- 331 Please specify the password.
- Password:
- 230 Login successful.
- Remote system type is UNIX.
- Using binary mode to transfer files.
- ftp> bye
- 221 Goodbye.
- # ftp localhost
- Connected to localhost.localdomain.
- 220 (vsFTPd 2.0.5)
- 530 Please login with USER and PASS.
- 530 Please login with USER and PASS.
- KERBEROS_V4 rejected as an authentication type
- Name (localhost:root): user3
- 530 Permission denied.
- Login failed.
- ftp>
可以看到,user2位于user_list文件中,因此,只有user2能够正常登录FTP服务器,user1和user3均不能访问。
ftpusers和user_list文件中的用户均不能访问FTP服务器
设置语句如下:
- userlist_enable=YES
- userlist_deny=YES
测试结果如下:
- # ftp localhost
- Connected to localhost.localdomain.
- 220 (vsFTPd 2.0.5)
- 530 Please login with USER and PASS.
- 530 Please login with USER and PASS.
- KERBEROS_V4 rejected as an authentication type
- Name (localhost:root): user1
- 331 Please specify the password.
- Password:
- 530 Login incorrect.
- Login failed.
- ftp> bye
- 221 Goodbye.
- # ftp localhost
- Connected to localhost.localdomain.
- 220 (vsFTPd 2.0.5)
- 530 Please login with USER and PASS.
- 530 Please login with USER and PASS.
- KERBEROS_V4 rejected as an authentication type
- Name (localhost:root): user2
- 530 Permission denied.
- Login failed.
- ftp> bye
- 221 Goodbye.
- # ftp localhost
- Connected to localhost.localdomain.
- 220 (vsFTPd 2.0.5)
- 530 Please login with USER and PASS.
- 530 Please login with USER and PASS.
- KERBEROS_V4 rejected as an authentication type
- Name (localhost:root): user3
- 331 Please specify the password.
- Password:
- 230 Login successful.
- Remote system type is UNIX.
- Using binary mode to transfer files.
- ftp>
11.3.4 真实账号设置(2)
从测试结果可以看出,user1和user2均不能登录FTP服务器,只有user3可以正常登录。而user1和user2在登录时的情况也是不同的。位于ftpusers文件中的user1,登录时出现了要求输入密码的提示信息,输入密码后服务器响应为访问被拒绝;而位于user_list中的user2,在登录时直接被拒绝,没有要求输入密码的提示信息。
从上述测试中可以看出,Vsftpd服务器可以通过在/etc/vsftpd/vsftpd.conf文件中设置userlist_ enable和userlist_deny的值实现对不同用户的访问控制。
2.设置用户组
通过用户组方式访问FTP服务器,能够进一步增强FTP服务器的安全性。为完成用户组的设置并进行测试,首先在/home目录下创建"try"目录,作为群组用户的主目录。可以通过选择【系统】|【管理】中的【用户和群组】选项,打开【用户管理器】对话框来设置用户和群组。选择【添加组群】按钮,在【创建新组群】对话框中创建群组"try"即可,如图11.7所示。
完成创建群组的操作后,单击【添加用户】按钮,在如图11.8所示的【创建新用户】对话框中,分别创建try1、try2和try3三个用户。
图11.7 创建群组"try" |
图11.8 【创建新用户】对话框 |
需要注意的是,在创建新用户时,不要选中对话框中【创建主目录】和【为该用户创建私人组群】复选框。创建完成后,双击用户名打开如图11.9所示的【用户属性】对话框,分别设置三个用户的【用户数据】和【组群】选项卡。
在【用户数据】选项卡中,将三个用户的【主目录】设置为"/home/try"。
在如图11.10所示的【组群】选项卡中,将三个用户加入到"try"组群中,即选中"try"组群前的复选框。
最后,还需要对/home/try目录的属性进行设置。在该目录的【try属性】对话框中,选择【权限】选项卡,将"try"目录的所有者设置为用户"try1","try1"对目录具有读、写和执行的权限。将"try"目录的群组设置为群组"try",并将群组"try"对该目录的权限设置为读和执行,如图11.11所示。
图11.9 【用户属性】对话框 |
图11.10 【组群】选项卡 |
图11.11 【权限】选项卡设置 |
完成设置后,群组"try"中三个用户对/home/try文件夹拥有的权限如下。
try1:读、写、执行
try2、try3:读、执行
接下来通过命令测试群组方式访问FTP服务器的结果。具有读、写和执行权限的目录所有者,能够实现浏览、下载、上传及创建目录和文件的操作;而在群组中仅具有读和执行权限的用户,只能完成浏览和下载操作。测试结果如下:
- # ftp localhost
- Connected to teacher.bit.edu.cn.
- 220 Welcome to blah FTP service.
- 530 Please login with USER and PASS.
- 530 Please login with USER and PASS.
- KERBEROS_V4 rejected as an authentication type
- Name (localhost:root): try1
- 331 Please specify the password.
- Password:
- 230 Login successful.
- Remote system type is UNIX.
- Using binary mode to transfer files.
- ftp> ls
- 227 Entering Passive Mode (127,0,0,1,215,117)
- 150 Here comes the directory listing.
- 226 Directory send OK.
- ftp> mkdir new
- 257 "/new" created
- ftp> ls
- 227 Entering Passive Mode (127,0,0,1,163,211)
- 150 Here comes the directory listing.
- drwxr-xr-x 2 507 100 4096 Sep 11 11:12 new
- 226 Directory send OK.
- ftp> !ls
- hello.txt
- ftp> put hello.txt
- local: hello.txt remote: hello.txt
- 227 Entering Passive Mode (127,0,0,1,176,127)
- 150 Ok to send data.
- 226 File receive OK.
- 367 bytes sent in 0.00029 seconds (1.2e+03 Kbytes/s)
- ftp> ls
- 227 Entering Passive Mode (127,0,0,1,210,143)
- 150 Here comes the directory listing.
- drwxr-xr-x 2 507 100 4096 Sep 11 11:12 new
- -rw-r--r-- 1 507 100 367 Sep 11 11:13 hello.txt
- 226 Directory send OK.
- ftp> bye
- 221 Goodbye.
- # ftp localhost
- Connected to teacher.bit.edu.cn.
- 220 Welcome to blah FTP service.
- 530 Please login with USER and PASS.
- 530 Please login with USER and PASS.
- KERBEROS_V4 rejected as an authentication type
- Name (localhost:root): try2
- 331 Please specify the password.
- Password:
- 230 Login successful.
- Remote system type is UNIX.
- Using binary mode to transfer files.
- ftp> ls
- 227 Entering Passive Mode (127,0,0,1,84,106)
- 150 Here comes the directory listing.
- drwxr-xr-x 2 507 100 4096 Sep 11 11:12 new
- -rw-r--r-- 1 507 100 367 Sep 11 11:13 hello.txt
- 226 Directory send OK.
- ftp> mkdir new2
- 550 Create directory operation failed.
- ftp> put aaa.txt
- local: aaa.txt remote: aaa.txt
- 227 Entering Passive Mode (127,0,0,1,227,36)
- 553 Could not create file.
- ftp> quit
- 221 Goodbye.
从结果中可以看到,try1用户登录FTP服务器时,成功地创建了一个"new"目录,并上传了文件"hello.txt"。而try2用户登录后,只能浏览目录,试图新建目录"new2"和上传文件aaa.txt均没有成功。可见,通过群组方式,可以实现群组中的用户不同的访问级别,进一步加强对FTP服务器的分级安全管理。
3.限制用户目录访问权限
通过设置/etc/vsftpd/vsftpd.conf 文件中的chroot_local_user选项,可以设置用户登录FTP服务器后的目录访问权限。默认情况下,当chroot_local_user选项为"NO"时,用户登录FTP服务器后,具有访问服务器中自己目录以外的其他文件的权限。
为了增强FTP服务器的安全性,需要限制用户的目录访问权限,即当用户登录FTP服务器后,不能访问自己目录以外的其他目录或文件。设置语句为:
- chroot_local_user=YES
重启Vsftpd服务后,测试结果如下:
- # ftp localhost
- Connected to teacher.bit.edu.cn.
- 220 Welcome to blah FTP service.
- 530 Please login with USER and PASS.
- 530 Please login with USER and PASS.
- KERBEROS_V4 rejected as an authentication type
- Name (localhost:root): student
- 331 Please specify the password.
- Password:
- 230 Login successful.
- Remote system type is UNIX.
- Using binary mode to transfer files.
- ftp> ls
- 227 Entering Passive Mode (127,0,0,1,219,3)
- 150 Here comes the directory listing.
- -rw-r--r-- 1 501 501 83741 Sep 06
10:17 php-mysql-5.1.6-5.el5.i386.rpm - -rw-r--r-- 1 501 501 61810 Sep 06
10:15 php-pdo-5.1.6-5.el5.i386.rpm - -rw-r--r-- 1 501 501 4323279 Sep 06
09:07 phpMyAdmin-2.11.0-all-languages. tar.gz - 226 Directory send OK.
- ftp> cd /etc
- 550 Failed to change directory.
- ftp> cd /home
- 550 Failed to change directory.
从测试结果中可看出,用户student登录FTP服务器,用ls命令可以查看student账号本地目录下的内容。而用户执行"cd /etc"、"cd/home"命令希望更改目录时,均出现"550 Failed to change directory."的提示信息,表明用户不能访问自己目录以外的其他目录或文件,因此更改目录失败。
4.修改默认端口
默认情况下,FTP服务器的端口号是21。出于安全保护的目的,有时需要修改默认端口号,为此可在配置文件/etc/vsftpd/vsftpd.conf中添加如下语句:
- listen_port=4449
该语句指定了修改后FTP服务器的端口号,该端口号应尽量大于4000。测试结果如下:
- # ftp 192.168.57.2
- ftp: connect: Connection refused
- ftp> bye
- # ftp 192.168.57.2 4449
- Connected to 192.168.57.2.
- 220 Welcome to blah FTP service.
- 530 Please login with USER and PASS.
- 530 Please login with USER and PASS.
- KERBEROS_V4 rejected as an authentication type
- Name (192.168.57.2:root): teacher
- 331 Please specify the password.
- Password:
- 230 Login successful.
- Remote system type is UNIX.
- Using binary mode to transfer files.
从测试结果中可以看出,在更改了默认端口后,直接输入IP地址,使用默认端口访问FTP服务器已不能正常连接,还需要输入正确的端口号。
11.4 FTP客户端配置
FTP服务器配置好之后,就可以在客户端访问FTP服务器了。根据操作系统的不同,可分为在Windows环境下访问FTP服务器和在Linux环境下访问FTP服务器。而访问的方法又分为三种:命令行方式、浏览器方式和FTP客户端工具方式。
11.4.1 FTP常用命令
在客户端访问FTP服务器,一般通过如下命令进行:
# ftp 主机名/IP地址 端口号
"主机名/IP地址"指的是FTP服务器的主机名或IP地址。如果没有给出主机名或IP地址,则客户端将出现"ftp>"提示符,等待用户输入。
通过在"ftp>"提示符下输入"?",可以查看FTP常用命令。表11.2列出了常见的FTP命令及其功能。
表11.2 常见FTP命令及其功能
FTP命令 |
功 能 |
ls |
显示服务器上的目录 |
get(mget) |
从服务器下载指定文件到客户端, mget命令允许用通配符下载多个文件 |
put(mput) |
从客户端上传指定文件到服务器, mput命令允许用通配符上传多个文件 |
open |
连接FTP服务器 |
quit |
断开连接并退出FTP服务器 |
close |
终止当前的FTP会话 |
cd directory |
改变服务器的工作目录 |
lcd directory |
在客户端上改变工作目录 |
bye |
退出FTP命令状态 |
ascii |
设置文件传输方式为ASCII模式 |
binary |
设置文件传输方式为二进制模式 |
11.4.2 Windows环境下访问FTP服务器
1.使用DOS命令行方式
在Windows XP下,单击【开始】菜单,选择【运行】命令,然后在对话框中输入"cmd"命令,系统将打开【MS-DOS】窗口。在命令行提示符下,可以通过FTP命令访问FTP服务器。以下是相关命令的测试结果:
- Microsoft Windows XP [版本 5.1.2600]
- (C) 版权所有 1985-2001 Microsoft Corp.
- C:\Documents and Settings\Administrator>cd\
- C:\>ftp 192.168.57.2
- Connected to 192.168.57.2.
- 220 Welcome to blah FTP service.
- User (192.168.57.2:(none)): student
- 331 Please specify the password.
- Password:
- 230 Login successful.
- ftp> ls
- 200 PORT command successful. Consider using PASV.
- 150 Here comes the directory listing.
- php-mysql-5.1.6-5.el5.i386.rpm
- php-pdo-5.1.6-5.el5.i386.rpm
- phpMyAdmin-2.11.0-all-languages.tar.gz
- 226 Directory send OK.
- ftp: 收到 102 字节,用时 0.00Seconds 102000.00Kbytes/sec.
- ftp> get php-mysql-5.1.6-5.el5.i386.rpm
- 200 PORT command successful. Consider using PASV.
- 150 Opening BINARY mode data connection for
php-mysql-5.1.6-5.el5.i386.rpm (8374 - 1 bytes).
- 226 File send OK.
- ftp: 收到 83741 字节,用时 0.08Seconds 1046.76Kbytes/sec.
- ftp> !dir
- 驱动器 C 中的卷是 Y_C
- 卷的序列号是 200E-ACD1
- C:\ 的目录
- 2007-07-15 11:09 1,024 .rnd
- 2003-05-16 08:47 0 AUTOEXEC.BAT
- 2003-05-16 08:47 0 CONFIG.SYS
- 2003-05-27 21:44
docs - 2007-07-17 09:57
Documents and Settings - 2007-07-17 15:11 21,939,874 EMPTY$$$.TIF.BKI
- 2007-07-17 15:11 22,000 EMPTY$$$.TIF.TXT
- 2007-09-09 23:49 12 eng000.txt
- 2007-07-17 14:01
EPSON - 2007-07-17 17:11
Herosoft - 2007-07-17 14:13
HWDOC_KING - 2007-09-09 23:32 0 mustekimgsh.txt
- 2007-08-04 00:48 1,474,560 myfloppy.flp
- 2007-09-11 23:46 83,741 php-mysql-5.1.6-5.el5.i386.rpm
- 2007-08-02 19:01
Program Files - 2007-07-17 14:39
SHOCR2002 - 2003-05-16 16:38
SUPPORT - 2007-08-13 19:56 0 test1.bmp
- 2007-08-13 19:56 0 test2.bmp
- 2003-05-16 09:33
TOSHIBA - 2003-05-16 16:38
VALUEADD - 2007-08-27 12:56
WINDOWS - 11 个文件 23,521,211 字节
- 11 个目录 3,583,148,032 可用字节
- ftp> put eng000
- eng000: File not found
- ftp> put eng000.txt
- 200 PORT command successful. Consider using PASV.
- 150 Ok to send data.
- 226 File receive OK.
- ftp: 发送 12 字节,用时 0.00Seconds 12000.00Kbytes/sec.
- ftp> ls
- 200 PORT command successful. Consider using PASV.
- 150 Here comes the directory listing.
- eng000.txt
- php-mysql-5.1.6-5.el5.i386.rpm
- php-pdo-5.1.6-5.el5.i386.rpm
- phpMyAdmin-2.11.0-all-languages.tar.gz
- 226 Directory send OK.
- ftp: 收到 114 字节,用时 0.00Seconds 114000.00Kbytes/sec.
- ftp>
2.使用IE浏览器
打开IE浏览器,在地址栏中输入FTP服务器的IP地址,例如ftp://192.168.57.2,浏览器将弹出一个【登录身份】对话框,如图11.12所示。
在对话框中输入用户名和密码后,将打开该用户在FTP服务器上的目录,如图11.13所示。
图11.12 【登录身份】对话框 |
图11.13 登录后访问FTP服务器 |
3.使用FlashFXP工具
FlashFXP是诸多FTP客户端工具中的一种,融合了一些其他FTP软件的优点,拥有图形化界面,操作简单,使用方便。该软件需要下载并安装。运行该软件,选择【站点】菜单中的【站点管理器】命令,可打开【站点管理器】对话框,如图11.14所示。
(点击查看大图)图11.14 【站点管理器】对话框 |
单击【新建站点】按钮,可以在对话框右侧填写站点信息。若需要连接IP地址为192.168.52.2的FTP服务器,则在IP地址栏输入相应地址和端口号,以及用户名称、密码即可。单击对话框右侧底部的【连接】按钮,客户端工具将开始连接FTP服务器,连接成功后的界面如图11.15所示。
(点击查看大图)图11.15 FlashFXP界面 |
通过鼠标拖拽操作可以实现文件的上传和下载。关于FlashFXP工具的其他配置,用户可以在【工具】或【帮助】菜单中自行查找。
其他的FTP客户端工具,如CuteFTP、LeapFTP等,也有各自的优点,用户可以根据自己的喜好进行比较选择。
11.4.3 Linux环境下访问FTP服务器
在Linux环境下访问FTP服务器,和在Windows环境下类似,通常也有三种方法。
1.通过终端访问
在前面的讲述中,通过终端访问的例子已经多次在测试过程中用到,此处不再赘述。
2.通过Web浏览器访问
Linux使用的是Firefox浏览器,其基本用法与Windows中的IE浏览器类似。通过Firefox访问FTP服务器,同样需要在地址栏输入FTP服务器的IP地址。系统将弹出如图11.16所示的【提示】对话框,要求用户输入用户名和密码。
用户名和密码输入正确后,浏览器将显示该用户在FTP服务器下的目录和文件,如图11.17所示。
图11.16 【提示】对话框 |
图11.17 通过Firefox访问FTP服务器 |
3.通过客户端工具访问
Linux环境下的FTP客户端工具中,gFTP是比较常用的一个。用户可以在www.gftp.org站点下载gftp的软件包,如gftp-2.0.18.tar.gz。安装后在终端输入"gFTP"命令,即可启动gFTP 2.0.18的用户界面,如图11.18所示。在【主机】、【端口】、【用户名】和【密码】的文本框中输入相应内容,然后单击【主机】前的连接按钮,gFTP将开始连接FTP服务器。
(点击查看大图)图11.18 gFTP用户界面 |
11.5 查看FTP日志
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 [email protected] ftp 0 * i - Tue Sep 11 07:51:22 2007 1 127.0.0.1 34 /
pub/hello.txt b _ o a [email protected] 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 [email protected] 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 表示传输未完成 |