Linux Vsftpd安装、配置 FTP常用功能

 

 

转自: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软件包:

  1. # rpm -qa|grep Vsftpd  
  2. 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为例,应使用以下命令:

  1. # rpm -ivh vsftpd-2.0.5-10.el5.i386.rpm 

 

Linux Vsftpd安装、配置 FTP常用功能_第1张图片 
(点击查看大图)图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目录。可以通过以下命令测试该用户和目录是否已经存在,如果不存在则创建该用户和目录。

  1. # useradd nobody  
  2. # mkdir /usr/share/empty 

如果nobody用户已经存在,系统会提示"useradd: 用户nobody已经存在"。如果目录/usr/share/empty目录已经存在,系统会提示"目录已存在"。

如果需要Vsftpd支持匿名服务,应使用以下命令创建ftp用户,并使其具有home目录的权限:

  1. # mkdir /var/ftp  
  2. # useradd -d /var/ftp ftp  
  3. # chown root.root /var/ftp  
  4. # chmod og-w /var/ftp 

用户和目录权限设置完成后,可以进行编译安装,使用命令如下:

  1. # tar -zxvf vsftpd-2.0.5.tar.gz  
  2. # cd vsftpd-2.0.5  
  3. # make  
  4. # make install 

安装完成后,需要将配置文件复制到/etc目录下:

  1. # cp vsftpd.conf /etc/ 

然后使用以下命令,允许本地用户登录服务器:

  1. # cp RedHat/vsftpd.pam /etc/pam.d/ftp 

最后,编辑配置文件/etc/vsftpd.conf,在最后一行加入listen=YES,并保存。

在命令行输入以下命令即可启动Vsftpd:

  1. # vsftpd &  
  2. [1] 3457 

&表示Vsftpd在后台运行。可以用以下命令对编译安装的Vsftpd进行检测:

  1. # ftp localhost  
  2. Connected to teacher.bit.edu.cn.  
  3. 220 (vsFTPd 2.0.5)  
  4. 530 Please login with USER and PASS.  
  5. 530 Please login with USER and PASS.  
  6. KERBEROS_V4 rejected as an authentication type  
  7. Name (localhost:root): anonymous  
  8. 331 Please specify the password.  
  9. Password:  
  10. 230 Login successful.  
  11. Remote system type is UNIX.  
  12. Using binary mode to transfer files.  
  13. ftp> ls  
  14. 227 Entering Passive Mode (127,0,0,1,71,146)  
  15. 150 Here comes the directory listing.  
  16. drwxr-xr-x    2 0        0            4096 Jan 17  2007 pub  
  17. 226 Directory send OK.  
  18. ftp> bye  
  19. 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服务

其命令为:

  1. # service vsftpd start  
  2. 为 vsftpd 启动 vsftpd:                                    [确定] 

停止Vsftpd服务

停止Vsftpd服务的命令为:

  1. # service vsftpd stop  
  2. 关闭 vsftpd:                                              [确定] 

重新启动Vsftpd服务

重新启动Vsftpd服务的命令为:

  1. # service vsftpd restart  
  2. 关闭 vsftpd:                                              [确定] 
  3. 为 vsftpd 启动 vsftpd:                                   [确定]

检查Vsftpd服务状态

可以采用以下命令检查Vsftpd服务的运行状态:

  1. service vsftpd status  
  2. vsftpd (pid 3571) 正在运行... 

也可以使用以下命令,实现相同的结果:

  1. # /etc/init.d/vsftpd start  
  2. # /etc/init.d/vsftpd stop  
  3. # /etc/init.d/vsftpd restart 

2.自动启动Vsftpd服务

对于系统自带的Vsftpd服务,如果希望Vsftpd服务在系统启动时自动加载,可以执行"ntsysv"命令,启动服务配置程序。找到其中的"vsftpd"服务,在其前面选择"*"(星号),并选择【确定】按钮即可,如图11.2所示。

Linux Vsftpd安装、配置 FTP常用功能_第2张图片 
图11.2  设置自动运行Vsftpd服务

此外,还有一种更简单的图形化方法。依次选择【系统】|【管理】|【服务器设置】|【服务】命令,系统将打开【服务配置】窗口,如图11.3所示。在左侧窗口中找到【vsftpd】选项,就可以对Vsftpd执行启动、停止和重启等操作。如果选中【vsftpd】选项前面的复选框,则可以在每次启动系统时自动运行Vsftpd服务。

Linux Vsftpd安装、配置 FTP常用功能_第3张图片 
图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文件的内容:

  1. # Users that are not allowed to login via ftp  
  2. root  
  3. bin  
  4. daemon  
  5. adm  
  6. lp  
  7. sync  
  8. shutdown  
  9. halt  
  10. mail  
  11. news  
  12. uucp  
  13. operator  
  14. games  
  15. nobody 

以下是默认情况下user_list文件的内容:

  1. # vsftpd userlist  
  2. # If userlist_deny=NO, only allow users in this file  
  3. # If userlist_deny=YES (default), never allow
    users in this file, and  
  4. # do not even prompt for a password.  
  5. # Note that the default vsftpd pam config also 
    checks /etc/vsftpd/ftpusers  
  6. # for users that are denied.  
  7. root  
  8. bin  
  9. daemon  
  10. adm  
  11. lp  
  12. sync  
  13. shutdown  
  14. halt  
  15. mail  
  16. news  
  17. uucp  
  18. operator  
  19. games  
  20. 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文件做如下修改:

  1. anonymous_enable=YES 
  2. local_enable=YES 
  3. write_enable=YES 
  4. listen=YES 

配置好后,需要重新启动Vsftpd。完成上述配置后,Vsftpd将允许匿名账号登录FTP服务器,允许本地账号登录,同时允许匿名用户具有对FTP服务器文件的写权限,并且只能下载文件而不能上传。匿名用户的口令为一个E-mail地址。测试的结果如下:

  1. # ftp localhost  
  2. Connected to teacher.bit.edu.cn.  
  3. 220 (vsFTPd 2.0.5)  
  4. 530 Please login with USER and PASS.  
  5. 530 Please login with USER and PASS.  
  6. KERBEROS_V4 rejected as an authentication type  
  7. Name (localhost:root): anonymous  
  8. 331 Please specify the password.  
  9. Password:  
  10. 230 Login successful.  
  11. Remote system type is UNIX.  
  12. Using binary mode to transfer files.  
  13. ftp> ls  
  14. 227 Entering Passive Mode (127,0,0,1,204,140)  
  15. 150 Here comes the directory listing.  
  16. drwxr-xr-x    2 0        0            4096 Jan 17  2007 pub  
  17. 226 Directory send OK.  
  18.  
  19. ftp> cd pub  
  20. 250 Directory successfully changed.  
  21. ftp> ls  
  22. 227 Entering Passive Mode (127,0,0,1,25,100)  
  23. 150 Here comes the directory listing.  
  24. -rw-rw-rw-    1 0        0              34 Sep 11 07:48 hello.txt  
  25. 226 Directory send OK.  
  26. ftp> get hello.txt  
  27. local: hello.txt remote: hello.txt  
  28. 227 Entering Passive Mode (127,0,0,1,181,217)  
  29. 150 Opening BINARY mode data connection for hello.txt (34 bytes).  
  30. 226 File send OK.  
  31. 34 bytes received in 0.0017 seconds (19 Kbytes/s)  
  32.  
  33. ftp> !ls  
  34. bridge.txt  hello.txt  webalizer.conf  
  35.  
  36. ftp> put webalizer.conf  
  37. local: webalizer.conf remote: webalizer.conf  
  38. 227 Entering Passive Mode (127,0,0,1,147,155)  
  39. 550 Permission denied.  
  40. ftp> mkdir test  
  41. 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文件做如下修改:

  1. anon_upload_enable=YES 
  2. 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",并设置相应的【文件夹访问】、【文件访问】和【执行】权限。

Linux Vsftpd安装、配置 FTP常用功能_第4张图片 
图11.4  新建"test"目录
Linux Vsftpd安装、配置 FTP常用功能_第5张图片 
图11.5 【test属性】对话框

重启Vsftpd服务

测试的结果如下:

  1. # ftp localhost  
  2. Connected to teacher.bit.edu.cn.  
  3. 220 (vsFTPd 2.0.5)  
  4. 530 Please login with USER and PASS.  
  5. 530 Please login with USER and PASS.  
  6. KERBEROS_V4 rejected as an authentication type  
  7. Name (localhost:root): anonymous  
  8. 331 Please specify the password.  
  9. Password:  
  10. 230 Login successful.  
  11. Remote system type is UNIX.  
  12. Using binary mode to transfer files.  
  13.  
  14. ftp> ls  
  15. 227 Entering Passive Mode (127,0,0,1,68,56)  
  16. 150 Here comes the directory listing.  
  17. drwxr-xr-x    2 0        0            4096 Sep 11 07:48 pub  
  18. drwxr-xr-x    2 14       50           4096 Sep 11 08:09 test  
  19. 226 Directory send OK.  
  20.  
  21. ftp> cd test  
  22. 250 Directory successfully changed.  
  23. ftp> mkdir incoming  
  24. 257 "/test/incoming" created  
  25. ftp> ls  
  26. 227 Entering Passive Mode (127,0,0,1,107,221)  
  27. 150 Here comes the directory listing.  
  28. drwx------    2 14       50           4096 Sep 11 08:19 incoming  
  29. 226 Directory send OK.  
  30.  
  31. ftp> !ls  
  32. 1.txt  bridge.txt  hello.txt  webalizer.conf  
  33.  
  34. ftp> put 1.txt  
  35. local: 1.txt remote: 1.txt  
  36. 227 Entering Passive Mode (127,0,0,1,45,47)  
  37. 150 Ok to send data.  
  38. 226 File receive OK.  
  39. 361 bytes sent in 0.0018 seconds (2e+02 Kbytes/s)  
  40. ftp> ls  
  41. 227 Entering Passive Mode (127,0,0,1,231,175)  
  42. 150 Here comes the directory listing.  
  43. drwx------    2 14       50            4096 Sep 11 08:19 incoming  
  44. -rw-------    1 14       50            361 Sep 11 08:24 1.txt  
  45. 226 Directory send OK.  
  46. 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文件做如下修改:

  1. # local_enable=YES 
  2. # write_enable=YES 

即在文件中local_enable=YES和write_enable=YES的前面加上"#",无须修改其他配置。对此的测试结果如下:

  1. # ftp localhost  
  2. Connected to teacher.bit.edu.cn.  
  3. 220 (vsFTPd 2.0.5)  
  4. 530 Please login with USER and PASS.  
  5. 530 Please login with USER and PASS.  
  6. KERBEROS_V4 rejected as an authentication type  
  7. Name (localhost:root): anonymous  
  8. 331 Please specify the password.  
  9. Password:  
  10. 230 Login successful.  
  11. Remote system type is UNIX.  
  12. Using binary mode to transfer files.  
  13. ftp> cd test  
  14. 250 Directory successfully changed.  
  15. ftp> bye  
  16. 221 Goodbye.  
  17.  
  18. # ftp localhost  
  19. Connected to teacher.bit.edu.cn.  
  20. 220 (vsFTPd 2.0.5)  
  21. 530 Please login with USER and PASS.  
  22. 530 Please login with USER and PASS.  
  23. KERBEROS_V4 rejected as an authentication type  
  24. Name (localhost:root): Kelly  
  25. 530 This FTP server is anonymous only.  
  26. Login failed.  
  27. ftp> user teacher  
  28. 530 This FTP server is anonymous only.  
  29. Login failed.  
  30. ftp> user root  
  31. 530 This FTP server is anonymous only.  
  32. Login failed. 


从测试结果中可以看到,除了anonymous账号可以正常登录外,其他本地账号登录均失败,服务器提示"530 This FTP server is anonymous only",即服务器仅允许匿名账号登录。

4.设置欢迎信息

常用的欢迎信息包括两种:一种是在登录FTP服务器时显示的欢迎信息,另一种是在更改目录时显示的欢迎信息。欢迎信息的使用,能够让用户在访问FTP服务器时感觉到更友好、更亲切。

设置登录FTP服务器时显示的欢迎信息

首先对/etc/vsftpd/vsftpd.conf文件做如下修改:

  1. ftpd_banner=Welcome to blah FTP service 

重启Vsftpd服务后,测试结果如下:

  1. # ftp localhost  
  2. Connected to teacher.bit.edu.cn.  
  3. 220 Welcome to blah FTP service.  
  4. 530 Please login with USER and PASS.  
  5. 530 Please login with USER and PASS.  
  6. KERBEROS_V4 rejected as an authentication type  
  7. Name (localhost:root): anonymous  
  8. 331 Please specify the password.  
  9. Password:  
  10. 230 Login successful.  
  11. Remote system type is UNIX.  
  12. 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所示。

Linux Vsftpd安装、配置 FTP常用功能_第6张图片 
图11.6  编辑.message文件内容

测试的结果如下:

  1. # ftp localhost  
  2. Connected to teacher.bit.edu.cn.  
  3. 220 Welcome to blah FTP service.  
  4. 530 Please login with USER and PASS.  
  5. 530 Please login with USER and PASS.  
  6. KERBEROS_V4 rejected as an authentication type  
  7. Name (localhost:root): anonymous  
  8. 331 Please specify the password.  
  9. Password:  
  10. 230 Login successful.  
  11. Remote system type is UNIX.  
  12. Using binary mode to transfer files.  
  13. ftp> ls  
  14. 227 Entering Passive Mode (127,0,0,1,219,233)  
  15. 150 Here comes the directory listing.  
  16. drwxr-xr-x    2 0        0            4096 Sep 11 07:48 pub  
  17. drwxr-xr-x    3 14       50           4096 Sep 11 08:40 test  
  18. 226 Directory send OK.  
  19. ftp> cd test  
  20. 250-You are welcome!  
  21. 250 Directory successfully changed. 

可以看到,当进入"test"目录后,出现"250-You are welcome!"这一行欢迎文字。用户可以根据需要修改.message文件中的内容,以显示不同的欢迎信息。

5.最大传输速率

设置最大传输速率需要对/etc/vsftpd/vsftpd.conf文件进行修改。

例如,设置匿名用户的最大传输速率为20Kbps,应添加如下语句:

  1. anon_max_rate=20000 

 

11.3.3  匿名FTP设置(2)

再如,设置本地账号最大传输率为1Mbps,应添加如下语句:

  1. local_max_rate=1000000 

6.服务器最大并发数和用户最大线程数

在/etc/vsftpd/vsftpd.conf文件中添加如下语句:

  1. max_clients=99 
  2. max_per_ip=5 

即可设置服务器允许的最大并发数为99,而每个用户同一时段的最大并发线程数为5。

7.禁止某些IP段的主机匿名访问服务器

如果希望限制某些主机对FTP服务器的匿名访问,可以采用以下方法。

确认配置文件/etc/vsftpd/vsftpd.conf中有如下语句:

  1. tcp_wrappers=YES 

该语句表明服务器使用tcp_wrappers作为主机访问控制方式。

编辑/etc/hosts.allow文件,增加两行命令:

  1. # hosts.allow   This file describes the names of the hosts which are  
  2. #       allowed to use the local INET services, as decided  
  3. #       by the '/usr/sbin/tcpd' server.  
  4. #  
  5. vsftpd:192.168.57.1:DENY  
  6. 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上测试的结果如下:

  1. Microsoft Windows XP [版本 5.1.2600]  
  2. (C) 版权所有 1985-2001 Microsoft Corp.  
  3. C:\Documents and Settings\Administrator>cd\  
  4. C:\>ping 192.168.57.2  
  5.  
  6. Pinging 192.168.57.2 with 32 bytes of data:  
  7.  
  8. Reply from 192.168.57.2: bytes=32 time=1ms TTL=64 
  9. Reply from 192.168.57.2: bytes=32 time<1ms TTL=64 
  10. Reply from 192.168.57.2: bytes=32 time=24ms TTL=64 
  11. Reply from 192.168.57.2: bytes=32 time<1ms TTL=64 
  12.  
  13. Ping statistics for 192.168.57.2:  
  14.     Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),  
  15. Approximate round trip times in milli-seconds:  
  16.     Minimum = 0ms, Maximum = 24ms, Average = 6ms 
  17.  
  18. C:\>ftp 192.168.57.2  
  19. Connected to 192.168.57.2.  
  20. 421 Service not available.  
  21. 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方式传送数据:

  1. ascii_upload_enable=YES 
  2. ascii_download_enable=YES 

以上语句表明允许使用ASCII方式上传和下载文件。

9.设置数据传输中断间隔时间

修改配置文件/etc/vsftpd/vsftpd.conf中的相关语句如下:

  1. idle_session_timeout=600 

该语句表示空闲的用户会话中断时间为600秒,也就是当数据传输结束后,用户连接FTP服务器的时间不应超过600秒。可以根据实际情况对该值进行修改。

  1. 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服务器

设置语句如下:

  1. userlist_enable=NO 

userlist_enable选项的默认值为"NO",当/etc/vsftpd/vsftpd.conf文件中出现该语句时,ftpusers文件中的用户将被禁止访问FTP服务器。因此,ftpusers文件又被称为"禁止使用Vsftpd的用户列表文件"。

测试的结果如下:

  1. # ftp localhost  
  2. Connected to localhost.localdomain.  
  3. 220 (vsFTPd 2.0.5)  
  4. 530 Please login with USER and PASS.  
  5. 530 Please login with USER and PASS.  
  6. KERBEROS_V4 rejected as an authentication type  
  7. Name (localhost:root): user1  
  8. 331 Please specify the password.  
  9. Password:  
  10. 530 Login incorrect.  
  11. Login failed.  
  12. ftp> bye  
  13. 221 Goodbye.  
  14.  
  15. # ftp localhost  
  16. Connected to localhost.localdomain.  
  17. 220 (vsFTPd 2.0.5)  
  18. 530 Please login with USER and PASS.  
  19. 530 Please login with USER and PASS.  
  20. KERBEROS_V4 rejected as an authentication type  
  21. Name (localhost:root): user2  
  22. 331 Please specify the password.  
  23. Password:  
  24. 230 Login successful.  
  25. Remote system type is UNIX.  
  26. Using binary mode to transfer files.  
  27. ftp> bye  
  28. 221 Goodbye.  
  29.  
  30. # ftp localhost  
  31. Connected to localhost.localdomain.  
  32. 220 (vsFTPd 2.0.5)  
  33. 530 Please login with USER and PASS.  
  34. 530 Please login with USER and PASS.  
  35. KERBEROS_V4 rejected as an authentication type  
  36. Name (localhost:root): user3  
  37. 331 Please specify the password.  
  38. Password:  
  39. 230 Login successful.  
  40. Remote system type is UNIX.  
  41. Using binary mode to transfer files.  
  42. ftp> 

从结果中可以看到,user1不能访问FTP服务器,而user2和user3均可以正常登录FTP服务器。

仅允许user_list中的用户访问服务器

设置语句如下:

  1. userlist_enable=YES 
  2. userlist_deny=NO 

当userlist_enable设置为YES,而userlist_deny设置为NO时,FTP服务器仅允许user_list中的用户访问。测试结果如下:

  1. # ftp localhost  
  2. Connected to localhost.localdomain.  
  3. 220 (vsFTPd 2.0.5)  
  4. 530 Please login with USER and PASS.  
  5. 530 Please login with USER and PASS.  
  6. KERBEROS_V4 rejected as an authentication type  
  7. Name (localhost:root): user1  
  8. 530 Permission denied.  
  9. Login failed.  
  10. ftp> bye  
  11. 221 Goodbye.  
  12.  
  13. # ftp localhost  
  14. Connected to localhost.localdomain.  
  15. 220 (vsFTPd 2.0.5)  
  16. 530 Please login with USER and PASS.  
  17. 530 Please login with USER and PASS.  
  18. KERBEROS_V4 rejected as an authentication type  
  19. Name (localhost:root): user2  
  20. 331 Please specify the password.  
  21. Password:  
  22. 230 Login successful.  
  23. Remote system type is UNIX.  
  24. Using binary mode to transfer files.  
  25. ftp> bye  
  26. 221 Goodbye.  
  27.  
  28. # ftp localhost  
  29. Connected to localhost.localdomain.  
  30. 220 (vsFTPd 2.0.5)  
  31. 530 Please login with USER and PASS.  
  32. 530 Please login with USER and PASS.  
  33. KERBEROS_V4 rejected as an authentication type  
  34. Name (localhost:root): user3  
  35. 530 Permission denied.  
  36. Login failed.  
  37. ftp> 

可以看到,user2位于user_list文件中,因此,只有user2能够正常登录FTP服务器,user1和user3均不能访问。

ftpusers和user_list文件中的用户均不能访问FTP服务器

设置语句如下:

  1. userlist_enable=YES 
  2. userlist_deny=YES 

测试结果如下:

  1. # ftp localhost  
  2. Connected to localhost.localdomain.  
  3. 220 (vsFTPd 2.0.5)  
  4. 530 Please login with USER and PASS.  
  5. 530 Please login with USER and PASS.  
  6. KERBEROS_V4 rejected as an authentication type  
  7. Name (localhost:root): user1  
  8. 331 Please specify the password.  
  9. Password:  
  10. 530 Login incorrect.  
  11. Login failed.  
  12. ftp> bye  
  13. 221 Goodbye.  
  14.  
  15. # ftp localhost  
  16. Connected to localhost.localdomain.  
  17. 220 (vsFTPd 2.0.5)  
  18. 530 Please login with USER and PASS.  
  19. 530 Please login with USER and PASS.  
  20. KERBEROS_V4 rejected as an authentication type  
  21. Name (localhost:root): user2  
  22. 530 Permission denied.  
  23. Login failed.  
  24. ftp> bye  
  25. 221 Goodbye.  
  26.  
  27. # ftp localhost  
  28. Connected to localhost.localdomain.  
  29. 220 (vsFTPd 2.0.5)  
  30. 530 Please login with USER and PASS.  
  31. 530 Please login with USER and PASS.  
  32. KERBEROS_V4 rejected as an authentication type  
  33. Name (localhost:root): user3  
  34. 331 Please specify the password.  
  35. Password:  
  36. 230 Login successful.  
  37. Remote system type is UNIX.  
  38. Using binary mode to transfer files.  
  39. 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三个用户。

Linux Vsftpd安装、配置 FTP常用功能_第7张图片 
图11.7  创建群组"try"
Linux Vsftpd安装、配置 FTP常用功能_第8张图片 
图11.8 【创建新用户】对话框

需要注意的是,在创建新用户时,不要选中对话框中【创建主目录】和【为该用户创建私人组群】复选框。创建完成后,双击用户名打开如图11.9所示的【用户属性】对话框,分别设置三个用户的【用户数据】和【组群】选项卡。

在【用户数据】选项卡中,将三个用户的【主目录】设置为"/home/try"。

在如图11.10所示的【组群】选项卡中,将三个用户加入到"try"组群中,即选中"try"组群前的复选框。

最后,还需要对/home/try目录的属性进行设置。在该目录的【try属性】对话框中,选择【权限】选项卡,将"try"目录的所有者设置为用户"try1","try1"对目录具有读、写和执行的权限。将"try"目录的群组设置为群组"try",并将群组"try"对该目录的权限设置为读和执行,如图11.11所示。

 

Linux Vsftpd安装、配置 FTP常用功能_第9张图片 
图11.9 【用户属性】对话框

 

 

Linux Vsftpd安装、配置 FTP常用功能_第10张图片 
图11.10 【组群】选项卡

 

 

Linux Vsftpd安装、配置 FTP常用功能_第11张图片 
图11.11 【权限】选项卡设置

 

完成设置后,群组"try"中三个用户对/home/try文件夹拥有的权限如下。

try1:读、写、执行

try2、try3:读、执行

接下来通过命令测试群组方式访问FTP服务器的结果。具有读、写和执行权限的目录所有者,能够实现浏览、下载、上传及创建目录和文件的操作;而在群组中仅具有读和执行权限的用户,只能完成浏览和下载操作。测试结果如下:

  1. # ftp localhost  
  2. Connected to teacher.bit.edu.cn.  
  3. 220 Welcome to blah FTP service.  
  4. 530 Please login with USER and PASS.  
  5. 530 Please login with USER and PASS.  
  6. KERBEROS_V4 rejected as an authentication type  
  7. Name (localhost:root): try1  
  8. 331 Please specify the password.  
  9. Password:  
  10. 230 Login successful.  
  11. Remote system type is UNIX.  
  12. Using binary mode to transfer files.  
  13. ftp> ls  
  14. 227 Entering Passive Mode (127,0,0,1,215,117)  
  15. 150 Here comes the directory listing.  
  16. 226 Directory send OK.  
  17. ftp> mkdir new  
  18. 257 "/new" created  
  19. ftp> ls  
  20. 227 Entering Passive Mode (127,0,0,1,163,211)  
  21. 150 Here comes the directory listing.  
  22. drwxr-xr-x    2 507      100          4096 Sep 11 11:12 new  
  23. 226 Directory send OK.  
  24. ftp> !ls  
  25. hello.txt  
  26. ftp> put hello.txt  
  27. local: hello.txt  remote: hello.txt  
  28. 227 Entering Passive Mode (127,0,0,1,176,127)  
  29. 150 Ok to send data.  
  30. 226 File receive OK.  
  31. 367 bytes sent in 0.00029 seconds (1.2e+03 Kbytes/s)  
  32. ftp> ls  
  33. 227 Entering Passive Mode (127,0,0,1,210,143)  
  34. 150 Here comes the directory listing.  
  35. drwxr-xr-x    2 507      100          4096 Sep 11 11:12 new  
  36. -rw-r--r--    1 507      100           367 Sep 11 11:13 hello.txt  
  37. 226 Directory send OK.  
  38. ftp> bye  
  39. 221 Goodbye.  
  40.  
  41. # ftp localhost  
  42. Connected to teacher.bit.edu.cn.  
  43. 220 Welcome to blah FTP service.  
  44. 530 Please login with USER and PASS.  
  45. 530 Please login with USER and PASS.  
  46. KERBEROS_V4 rejected as an authentication type  
  47. Name (localhost:root): try2  
  48. 331 Please specify the password.  
  49. Password:  
  50. 230 Login successful.  
  51. Remote system type is UNIX.  
  52. Using binary mode to transfer files.  
  53. ftp> ls  
  54. 227 Entering Passive Mode (127,0,0,1,84,106)  
  55. 150 Here comes the directory listing.  
  56. drwxr-xr-x    2 507      100          4096 Sep 11 11:12 new  
  57. -rw-r--r--    1 507      100           367 Sep 11 11:13 hello.txt  
  58. 226 Directory send OK.  
  59. ftp> mkdir new2  
  60. 550 Create directory operation failed.  
  61.  
  62. ftp> put aaa.txt  
  63. local: aaa.txt remote: aaa.txt  
  64. 227 Entering Passive Mode (127,0,0,1,227,36)  
  65. 553 Could not create file.  
  66. ftp> quit  
  67. 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服务器后,不能访问自己目录以外的其他目录或文件。设置语句为:

  1. chroot_local_user=YES 

重启Vsftpd服务后,测试结果如下:

  1. # ftp localhost  
  2. Connected to teacher.bit.edu.cn.  
  3. 220 Welcome to blah FTP service.  
  4. 530 Please login with USER and PASS.  
  5. 530 Please login with USER and PASS.  
  6. KERBEROS_V4 rejected as an authentication type  
  7. Name (localhost:root): student  
  8. 331 Please specify the password.  
  9. Password:  
  10. 230 Login successful.  
  11. Remote system type is UNIX.  
  12. Using binary mode to transfer files.  
  13. ftp> ls  
  14. 227 Entering Passive Mode (127,0,0,1,219,3)  
  15. 150 Here comes the directory listing.  
  16. -rw-r--r--    1 501      501      83741 Sep 06 
    10:17 php-mysql-5.1.6-5.el5.i386.rpm  
  17. -rw-r--r--    1 501      501     61810 Sep 06 
    10:15 php-pdo-5.1.6-5.el5.i386.rpm  
  18. -rw-r--r--    1 501       501   4323279 Sep 06
    09:07 phpMyAdmin-2.11.0-all-languages. tar.gz  
  19. 226 Directory send OK.  
  20.  
  21. ftp> cd /etc  
  22. 550 Failed to change directory.  
  23. ftp> cd /home  
  24. 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中添加如下语句:

  1. listen_port=4449 

该语句指定了修改后FTP服务器的端口号,该端口号应尽量大于4000。测试结果如下:

  1. # ftp 192.168.57.2  
  2. ftp: connect: Connection refused  
  3. ftp> bye  
  4.  
  5. # ftp 192.168.57.2 4449  
  6. Connected to 192.168.57.2.  
  7. 220 Welcome to blah FTP service.  
  8. 530 Please login with USER and PASS.  
  9. 530 Please login with USER and PASS.  
  10. KERBEROS_V4 rejected as an authentication type  
  11. Name (192.168.57.2:root): teacher  
  12. 331 Please specify the password.  
  13. Password:  
  14. 230 Login successful.  
  15. Remote system type is UNIX.  
  16. 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服务器。以下是相关命令的测试结果:

  1. Microsoft Windows XP [版本 5.1.2600]  
  2. (C) 版权所有 1985-2001 Microsoft Corp.  
  3. C:\Documents and Settings\Administrator>cd\  
  4. C:\>ftp 192.168.57.2  
  5. Connected to 192.168.57.2.  
  6. 220 Welcome to blah FTP service.  
  7. User (192.168.57.2:(none)): student  
  8. 331 Please specify the password.  
  9. Password:  
  10. 230 Login successful.  
  11. ftp> ls  
  12. 200 PORT command successful. Consider using PASV.  
  13. 150 Here comes the directory listing.  
  14. php-mysql-5.1.6-5.el5.i386.rpm  
  15. php-pdo-5.1.6-5.el5.i386.rpm  
  16. phpMyAdmin-2.11.0-all-languages.tar.gz  
  17. 226 Directory send OK.  
  18. ftp: 收到 102 字节,用时 0.00Seconds 102000.00Kbytes/sec.  
  19. ftp> get php-mysql-5.1.6-5.el5.i386.rpm  
  20. 200 PORT command successful. Consider using PASV.  
  21. 150 Opening BINARY mode data connection for 
    php-mysql-5.1.6-5.el5.i386.rpm (8374  
  22. 1 bytes).  
  23. 226 File send OK.  
  24. ftp: 收到 83741 字节,用时 0.08Seconds 1046.76Kbytes/sec.  
  25. ftp> !dir  
  26.  驱动器 C 中的卷是 Y_C  
  27.  卷的序列号是 200E-ACD1  
  28.  
  29.  C:\ 的目录  
  30.  
  31. 2007-07-15  11:09             1,024 .rnd  
  32. 2003-05-16  08:47                 0 AUTOEXEC.BAT  
  33. 2003-05-16  08:47                 0 CONFIG.SYS  
  34. 2003-05-27  21:44              docs  
  35. 2007-07-17  09:57              Documents and Settings  
  36. 2007-07-17  15:11        21,939,874 EMPTY$$$.TIF.BKI  
  37. 2007-07-17  15:11            22,000 EMPTY$$$.TIF.TXT  
  38. 2007-09-09  23:49                12 eng000.txt  
  39. 2007-07-17  14:01              EPSON  
  40. 2007-07-17  17:11              Herosoft  
  41. 2007-07-17  14:13              HWDOC_KING  
  42. 2007-09-09  23:32                 0 mustekimgsh.txt  
  43. 2007-08-04  00:48         1,474,560 myfloppy.flp  
  44. 2007-09-11  23:46            83,741 php-mysql-5.1.6-5.el5.i386.rpm  
  45. 2007-08-02  19:01              Program Files  
  46. 2007-07-17  14:39              SHOCR2002  
  47. 2003-05-16  16:38              SUPPORT  
  48. 2007-08-13  19:56                 0 test1.bmp  
  49. 2007-08-13  19:56                 0 test2.bmp  
  50. 2003-05-16  09:33              TOSHIBA  
  51. 2003-05-16  16:38              VALUEADD  
  52. 2007-08-27  12:56              WINDOWS  
  53.               11 个文件     23,521,211 字节  
  54.               11 个目录  3,583,148,032 可用字节  
  55. ftp> put eng000  
  56. eng000: File not found  
  57. ftp> put eng000.txt  
  58. 200 PORT command successful. Consider using PASV.  
  59. 150 Ok to send data.  
  60. 226 File receive OK.  
  61. ftp: 发送 12 字节,用时 0.00Seconds 12000.00Kbytes/sec.  
  62. ftp> ls  
  63. 200 PORT command successful. Consider using PASV.  
  64. 150 Here comes the directory listing.  
  65. eng000.txt  
  66. php-mysql-5.1.6-5.el5.i386.rpm  
  67. php-pdo-5.1.6-5.el5.i386.rpm  
  68. phpMyAdmin-2.11.0-all-languages.tar.gz  
  69. 226 Directory send OK.  
  70. ftp: 收到 114 字节,用时 0.00Seconds 114000.00Kbytes/sec.  
  71. ftp> 

2.使用IE浏览器

打开IE浏览器,在地址栏中输入FTP服务器的IP地址,例如ftp://192.168.57.2,浏览器将弹出一个【登录身份】对话框,如图11.12所示。

在对话框中输入用户名和密码后,将打开该用户在FTP服务器上的目录,如图11.13所示。

Linux Vsftpd安装、配置 FTP常用功能_第12张图片 
图11.12 【登录身份】对话框
Linux Vsftpd安装、配置 FTP常用功能_第13张图片 
图11.13  登录后访问FTP服务器

3.使用FlashFXP工具

FlashFXP是诸多FTP客户端工具中的一种,融合了一些其他FTP软件的优点,拥有图形化界面,操作简单,使用方便。该软件需要下载并安装。运行该软件,选择【站点】菜单中的【站点管理器】命令,可打开【站点管理器】对话框,如图11.14所示。

Linux Vsftpd安装、配置 FTP常用功能_第14张图片 
(点击查看大图)图11.14 【站点管理器】对话框

单击【新建站点】按钮,可以在对话框右侧填写站点信息。若需要连接IP地址为192.168.52.2的FTP服务器,则在IP地址栏输入相应地址和端口号,以及用户名称、密码即可。单击对话框右侧底部的【连接】按钮,客户端工具将开始连接FTP服务器,连接成功后的界面如图11.15所示。

Linux Vsftpd安装、配置 FTP常用功能_第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所示。

Linux Vsftpd安装、配置 FTP常用功能_第16张图片 
图11.16 【提示】对话框
Linux Vsftpd安装、配置 FTP常用功能_第17张图片 
图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服务器。

Linux Vsftpd安装、配置 FTP常用功能_第18张图片 
(点击查看大图)图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中的日志,将输出到系统日志中。

常见的日志解决方案如下:

  1. xferlog_enable=YES 
  2. xferlog_std_format=YES 
  3. xferlog_file=/var/log/xferlog   
  4. dual_log_enable=YES 
  5. 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内容如下:

  1. 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  
  2. 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  
  3. 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  
  4. Tue Sep 11 07:49:34 2007 1 127.0.0.1 0 /
    pub/hello.txt b _ o a [email protected] ftp 0 * i  
  5. Tue Sep 11 07:51:22 2007 1 127.0.0.1 34 /
    pub/hello.txt b _ o a [email protected] ftp 0 * c  
  6. 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  
  7. Tue Sep 11 11:31:36 2007 1 192.168.57.1 
    12 /eng000.txt a _ i r student ftp 0 * c  
  8. Tue Sep 11 11:53:05 2007 1 192.168.57.2 
    367 /user_list b _ i r student ftp 0 * c  
  9. Tue Sep 11 11:56:06 2007 1 192.168.57.2 
    0 / b _o a [email protected] ftp 0 * i  
  10. Tue Sep 11 11:57:36 2007 1 192.168.57.2 
    0 / b _ o r student ftp 0 * i 

vsftpd.log文件内容如下:

  1. Tue Sep 11 14:59:03 2007 [pid 3460] CONNECT: Client "127.0.0.1"  
  2. 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 表示传输未完成

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(Linux)