您的当前位置:首页FTP服务器

FTP服务器

2022-04-01 来源:乌哈旅游
第8章 FTP服务器 .......................................................................................................... 1

8.1 FTP概述 ............................................................................................................. 1 8.2 FTP用户分类以及权限 ........................................................................................ 1 8.3 安装和启动vsftpd ............................................................................................... 2

8.3.1 安装vsftpd ................................................................................................ 2

8.3.2 启动、关闭和重启vsftpd ........................................................................... 2 8.3.3 开机自启动vsftpd...................................................................................... 3 8.4 配置文件vsftpd.conf的设置 ................................................................................ 3 8.5 FTP设置实例 ...................................................................................................... 9

8.5.1 FTP服务器的默认配置。 ........................................................................... 9 8.5.2 使匿名用户能够上传文件 ........................................................................ 10 8.5.3 配置基于本地用户的访问控制 ................................................................. 12 8.6 FTP软件使用 .................................................................................................... 12

8.6.1 使用ftp命令行访问FTP服务器 .............................................................. 12

8.6.2 linux下访问FTP服务器 ........................................................................... 13 8.6.3 windows下访问FTP服务器 ..................................................................... 17

第8章 FTP服务器

本章主要介绍FTP的基本概念,如何安装、配置和使用FTP,同时介绍如何控制用户对FTP的访问等知识。 本章学习目标:

 了解FTP的基本概念

 掌握FTP的安装和配置

 熟悉FTP的配置文件vsftpd.conf  掌握FTP匿名登录和账号管理  掌握FTP的客户端的使用方法

8.1 FTP概述

FTP协议定义了一个在远程计算机系统和本地计算机系统之间传输文件的一个标准。FTP位于OSI参考模型的应用层,使用TCP协议在不同主机间提供可靠的数据传输服务。 FTP可以实现不同计算机之间的数据共享和传输。支持windows、linux等各种系统之间的传输。它的应用范围非常广泛,主要用于公司、学校等地方实现数据共享。

在linux系统中,目前用于安装作为FTP的软件比较多,一般的linux系统都把vsftpd作为首选的FTP服务器端。本章将以vsftpd为例介绍FTP的基本使用方法。

8.2 FTP用户分类以及权限

FTP服务器可以提供数据的共享和数据传输,但是为了控制各类人员对共享服务器的操作,需要为FTP的用户进行分类,决定哪些用户可以上传、修改和下载,哪些用户只能下

载不能上传。根据这些要求,就把linux用户进行分类。

默认情况下FTP提供了三类用户。不同的用户对应着不同的权限与操作方式。

1、Real(真实)用户。这类用户是指在FTP服务上拥有帐号。当这类用户登录FTP服务器的时候,其默认的主目录就是用户的主目录,其还可以变更到其他目录中去。

2、Guest(虚拟)用户。在FTP服务器中,我们往往会给不同的部门或者某个特定的用户设置一个帐户。但是,这个账户有个特点,就是其只能够访问自己的主目录。服务器通过这种方式来保障FTP服务上其他文件的安全性。这类帐户,在Vsftpd软件中就叫做guest用户。拥有这类用户的帐户,只能够访问其主目录下的目录,而不得访问主目录以外的文件。

3、Anonymous(匿名)用户,也是通常所说的匿名访问。这类用户是指在FTP服务器中没有指定帐户,但是其仍然可以进行匿名访问某些公开的资源。通常只让下载不让上传。

在组建FTP服务器的时候,我们就需要根据用户的类型,对用户进行分组归类。默认情况下,Vsftpd服务器会把建立的所有帐户都归属为Real用户。但是,这往往不符合企业安全的需要。因为这类用户不仅可以访问自己的主目录,而且,还可能访问其他系统目录。这就给系统带来一定的安全隐患。所以,企业要根据实际情况,修改用户所在的类别。

8.3 安装和启动vsftpd 8.3.1 安装vsftpd

很多linux在默认情况下就已经安装FTP服务器软件vsftpd;但是有些系统可能没有安装,原因可能是在安装系统的时候没有选相应的安装包。在使用该软件之前,需要先检查vsftpd是否被安装。通过如下指令查看: [root@liu root]# rpm -qa|grep vsftpd rpm: no packages given for install 命令显示,系统没有安装该软件。这时候,我们就把RHEL5的安装光盘DVD插入光驱,然后加载,通过命令切换到安装光盘的Server目录。

[root@liu root]# cd /mnt/cdrom/Server [root@liu Server]# rpm -ivh vsftpd-2.0.5-10.el5.i386.rpm Preparing... ########################################### [100%] 1:vsftpd ########################################### [100%] 系统提示安装好了。

8.3.2 启动、关闭和重启vsftpd

可以使用如下的命令对vsftpd进行启动、停止和重启等操作。 命令 启动 重新启动 停止 查看状态 操作指令 Service vsftpd start 或 /etc/init.d/vsftpd start Service vsftpd restart或 /etc/init.d/vsftpd restart service vsftpd stop 或 /etc/init.d/vsftpd stop service vsftpd status 或 /etc/init.d/vsftpd status 8.3.3 开机自启动vsftpd

设置FTP开机自动启动。

方法1:在图形界面下,通过如下步骤:依次运行“系统”|“管理”|“服务器设置”|“服务”,在弹出“服务配置”窗口中找到vsftpd,如图()。进行启动、停止或是重启就可以了。

方法2:使用命令chkconfig vsftpd on 是开机自启动ftp服务器。 方法3:使用命令ntsysv文本界面确定ftp开机自启动。

注意: 1、只有在vsftpd启动之后,才可以给用户提供服务。每次对vsftpd的配置改动之后,都需要重新启动该程序。

2、ftp连接不上,这时候就要检查防火墙是否允许ftp通过。只有防火墙中把FTP设置为信任的服务,才允许用户访问ftp的资源。如图()所示,把ftp设置为信任的服务。

图()把ftp设置为信任的服务

8.4 配置文件vsftpd.conf的设置

在RHEL5中安装vsftpd之后,系统会产生几个相关的配置文件,他们都位于/etc/vsftpd

目录下,文件的名字为为:vsftpd.conf;vsftpd_conf_migrate.sh;ftpusers;user_list。这几个文件都是FTP服务器配置的重要文件。下面对这些文件作介绍,并讲解他们的作用。 vsftpd.conf配置文件的内容如下: 1.配置文件格式: vsftpd.conf 的内容非常单纯,每一行即为一项设定。若是空白行或是开头为#的一行,将会被忽略。内容的格式只有一种,如下所示 option=value 它包含选项和设置的值。 2.默认配置: 1>允许匿名用户和本地用户登陆。

anonymous_enable=YES local_enable=YES 2>匿名用户使用的登陆名为ftp或anonymous,口令为空;匿名用户不能离开匿名用户家目录/var/ftp,且默认情况下只能下载不能上传。

3>本地用户的登录名为本地用户名,口令为此本地用户的口令;本地用户可以在自己家目录中进行读写操作;本地用户可以通过设置chroot离开家目录切换至有权限访问的其他目录,并在权限允许的情况下进行上传/下载。

write_enable=YES 4>写在文件/etc/vsftpd.ftpusers中的本地用户禁止登陆。

注意的是,等号两边不能加空白。如果要忽略某条规则,可以在前面加上#号。

3.匿名用户(anonymous)设置 anonymous_enable=YES/NO(YES) 控制是否允许匿名用户登入,YES为允许匿名登入,NO 为不允许。默认值为YES。 write_enable=YES/NO(YES) 是否允许登陆用户有写权限。属于全局设置,默认值为YES。

no_anon_password=YES/NO(NO)

若是启动这项功能,则使用匿名登入时,不会询问密码。默认值为NO。 ftp_username=ftp

定义匿名登入的使用者名称。默认值为ftp。

anon_root=/var/ftp 匿名用户的主目录。默认值为/var/ftp。注意ftp目录的权限不能是777,即匿名用户的家目录不能有777的权限。

anon_upload_enable=YES/NO(NO)

如果设为YES,则允许匿名用户上传文件(非目录)的权限,只有在write_enable=YES

时,此项才有效。当然,匿名用户必须要有对上层目录的写入权。默认值为NO不让上传。 anon_world_readable_only=YES/NO(YES)

如果设为YES,则允许匿名登入者下载可阅读的档案;默认值为YES。

anon_mkdir_write_enable=YES/NO(NO)

如果设为YES,则允许匿名用户可以创建增加新的目录,只有在write_enable=YES时,

此项才有效。当然,匿名用户必须要有对上层目录的写入权。默认值为NO。 anon_other_write_enable=YES/NO(NO)

如果设为YES,则允许匿名用户使用除了上传或者建立目录之外的权限,譬如删除或者重命名。(如果anon_upload_enable=NO,则匿名用户不能上传文件,但可以删除或者重命名已经存在的文件;如果anon_mkdir_write_enable=NO,则匿名用户不能上传或者新建文件

夹,但可以删除或者重命名已经存在的文件夹。)默认值为NO。

chown_uploads=YES/NO(NO)

设置是否改变匿名用户上传文件(非目录)的属主。默认值为NO。 chown_username=username

改变匿名用户上传文件(非目录)的属主名。建议不要设置为root。

anon_umask=077

设置匿名登入者新增或上传档案时的umask 值。默认值为077,则新建档案的对应权

限为700。 deny_email_enable=YES/NO(NO)

若是启动这项功能,则必须提供一个档案/etc/vsftpd/banner_emails,内容为email address。若是使用匿名登入,则会要求输入email address,若输入的email address 在此档案内,则不允许进入。默认值为NO。

banned_email_file=/etc/vsftpd/banner_emails 此文件用来输入email address,只有在deny_email_enable=YES时,才会使用到此档案。

若是使用匿名登入,则会要求输入email address,若输入的email address 在此档案内,则不允许进入。

4.本地用户设置 local_enable=YES/NO(YES) 控制是否允许本地用户登入,YES 为允许本地用户登入,NO为不允许。默认值为YES。

local_root=/home/username

当本地用户登入时,将被更换到定义的目录下。默认值为各用户的自己的家目录。 write_enable=YES/NO(YES)

是否允许登陆用户有写权限。属于全局设置,默认值为YES。

local_umask=022

本地用户新增档案时的umask 值。默认值为077。表示用户在使用FTP的权限 file_open_mode=0755

本地用户上传档案后的档案权限,与chmod 所使用的数值相同。默认值为0666。

5.欢迎语设置 dirmessage_enable=YES/NO(YES) 如果启动这个选项,那么使用者第一次进入某一个目录时,会检查该目录下是否有.message这个文件。如果有,则会显示乖文件的内容,通常这个档案会放置欢迎话语,或是对该目录的说明。默认值为开启。

message_file=.message

设置目录消息文件,可将要显示的信息写入该文件。默认值为.message。

banner_file=/etc/vsftpd/banner

当使用者登入时,会显示此设定所在的文件内容,内容通常为欢迎语或是说明。默认值ftpd_banner=Welcome to My FTP server

用来定义欢迎话语的字符串,banner_file是档案的形式,而ftpd_banner 则是字符串的

为无。如果欢迎信息较多,则使用该配置项。

形式。预设没有欢迎语。

6.控制用户是否允许切换到上级目录 在默认配置下,本地用户登入FTP后可以使用cd命令切换到其他目录,这样会对系统带来安全隐患。可以通过以下三条配置文件来控制用户切换目录。 chroot_list_enable=YES/NO(NO)

设置是否启用chroot_list_file配置项指定的用户列表文件。默认值为NO。

chroot_list_file=/etc/vsftpd.chroot_list

用于指定用户列表文件,该文件用于控制哪些用户可以切换到用户家目录的上级目录。chroot_local_user=YES/NO(NO)

用于指定用户列表文件中的用户是否允许切换到上级目录。默认值为NO。

以上的操作与下面的设置搭配能实现以下几种效果: ①当chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd.chroot_list文件中

列出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录。 ②当chroot_list_enable=YES,chroot_local_user=NO时,在/etc/vsftpd.chroot_list文件中列出的用户,不能切换到其他目录;未在文件中列出的用户,可以切换到其他目录。

③当chroot_list_enable=NO,chroot_local_user=YES时,所有的用户均不能切换到其他④当chroot_list_enable=NO,chroot_local_user=NO时,所有的用户均可以切换到其他目录

7.数据传输模式设置 FTP在传输数据时,可以使用二进制方式,也可以使用ASCII模式来上传或下载数据。

ascii_upload_enable=YES/NO(NO)

设置是否启用ASCII 模式上传数据。默认值为NO。 ascii_download_enable=YES/NO(NO) 目录。

设置是否启用ASCII 模式下载数据。默认值为NO。 8.访问控制设置

ftp访问控制方式有两种:一种控制主机访问,另一种控制用户访问。 ①控制主机访问:

tcp_wrappers=YES/NO(YES)

设置vsftpd是否与tcp wrapper相结合来进行主机的访问控制。默认值为YES。如果启

用,则vsftpd服务器会检查/etc/hosts.allow 和/etc/hosts.deny 中的设置,来决定哪些机器允许访问该FTP服务器。这两个文件可以起到简易的防火墙功能,通过IP过滤访问的机器。 比如:若要仅允许192.168.0.1—192.168.0.254的用户可以连接FTP服务器,则在/etc/hosts.allow文件中添加以下内容: vsftpd:192.168.0. :allow #可以访问的机器规则

all:all :deny #其他机器都被拒绝 ②控制用户访问:

对于用户的访问控制可以通过vsftpd.user_list和ftpusers文件来实现。 在vsftpd.conf文件中找到如下的行:

userlist_file=/etc/vsftpd.user_list

控制用户访问FTP的文件,里面写着用户名称。一个用户名占一行。 userlist_enable=YES/NO(NO) 是否启用vsftpd.user_list文件。 userlist_deny=YES/NO(YES)

决定vsftpd.user_list文件中的用户是否能够访问FTP服务器。若设置为YES,则vsftpd.user_list文件中的用户不允许访问FTP,若设置为NO,则只有vsftpd.user_list文件中的用户才能访问FTP。 /etc/vsftpd/ftpusers文件专门用于定义不允许访问FTP服务器的用户列表(注意:如果userlist_enable=YES,userlist_deny=NO,此时如果在vsftpd.user_list和ftpusers中都有某个用户

时,那么这个用户是不能够访问FTP的,即ftpusers的优先级要高)。默认情况下vsftpd.user_list和ftpusers,这两个文件已经预设置了一些不允许访问FTP服务器的系统内部账户。如果系统没有这两个文件,那么新建这两个文件,将用户添加进去即可。 9.访问速率设置 anon_max_rate=0 设置匿名用户使用的最大传输速度,单位为B/s,0 表示不限制速度。默认值为0。 local_max_rate=0 本地用户使用的最大传输速度,单位为B/s,0 表示不限制速度。预设值为0。 10.超时设置

accept_timeout=60

设置建立FTP连接的超时时间,单位为秒。默认值为60。 connect_timeout=60

PORT 方式下建立数据连接的超时时间,单位为秒。默认值为60。 data_connection_timeout=120

设置建立FTP数据连接的超时时间,单位为秒。默认值为120。

idle_session_timeout=300 设置多长时间不对FTP服务器进行任何操作,就断开该FTP连接,单位为秒。默认值为300 。

11.日志文件设置 xferlog_enable= YES/NO(YES) 是否启用上传/下载日志记录。如果启用,则上传与下载的信息将被完整纪录在xferlog_file 所定义的问价中。预设为开启。

xferlog_file=/var/log/vsftpd.log

设置日志文件名和路径,默认值为/var/log/vsftpd.log。 xferlog_std_format=YES/NO(NO)

如果启用,日志文件将会写成xferlog的标准格式,如同wu-ftpd 一般。默认值为关闭。log_ftp_protocol=YES/NO(NO)

如果启用此选项,所有的FTP请求和响应都会被记录到日志中,默认日志文件在/var/log/vsftpd.log。启用此选项时,xferlog_std_format不能被激活。这个选项有助于调试。默认值为NO。

12.定义用户配置文件 在vsftpd中,可以通过定义用户配置文件来实现不同的用户使用不同的配置。

user_config_dir=/etc/vsftpd/userconf

设置用户配置文件所在的目录。当设置了该配置项后,用户登陆服务器后,系统就会到

/etc/vsftpd/userconf目录下,读取与当前用户名相同的文件,并根据文件中的配置命令,对当前用户进行更进一步的配置。

例如:定义user_config_dir=/etc/vsftpd/userconf,且主机上有使用者 test1,test2,那么我们就在user_config_dir 的目录新增文件名为test1和test2两个文件。若是test1 登入,则会读取user_config_dir 下的test1 这个档案内的设定。默认值为无。利用用户配置文件,可以实现对不同用户进行访问速度的控制,在各用户配置文件中定义local_max_rate=XX,即可。13.FTP的工作方式与端口设置 FTP有两种工作方式:PORT FTP(主动模式)和PASV FTP(被动模式)

listen_port=21

设置FTP服务器建立连接所监听的端口,默认值为21。

connect_from_port_20=YES/NO

指定FTP使用20端口进行数据传输,默认值为YES。

ftp_data_port=20

设置在PORT方式下,FTP数据连接使用的端口,默认值为20。 pasv_enable=YES/NO(YES)

若设置为YES,则使用PASV工作模式;若设置为NO,则使用PORT模式。默认值为YES,即使用PASV工作模式。

pasv_max_port=0

在PASV工作模式下,数据连接可以使用的端口范围的最大端口,0 表示任意端口。默

认值为0。

pasv_min_port=0

在PASV工作模式下,数据连接可以使用的端口范围的最小端口,0 表示任意端口。默认值为0。

14.与连接相关的设置 listen=YES/NO(YES) 设置vsftpd服务器是否以standalone模式运行。以standalone模式运行是一种较好的方式,此时listen必须设置为YES,此为默认值。建议不要更改,有很多与服务器运行相关的配置命令,需要在此模式下才有效。若设置为NO,则vsftpd不是以独立的服务运行,要受到xinetd服务的管控,功能上会受到限制。

max_clients=0

设置vsftpd允许的最大连接数,默认值为0,表示不受限制。若设置为100时,则同时

允许有100个连接,超出的将被拒绝。只有在standalone模式运行才有效。

max_per_ip=0 设置每个IP允许与FTP服务器同时建立连接的数目。默认值为0,表示不受限制。只有在standalone模式运行才有效。

listen_address=IP地址

设置FTP服务器在指定的IP地址上侦听用户的FTP请求。若不设置,则对服务器绑定

的所有IP地址进行侦听。只有在standalone模式运行才有效。 setproctitle_enable=YES/NO(NO) 设置每个与FTP服务器的连接,是否以不同的进程表现出来。默认值为NO,此时使用ps aux |grep ftp只会有一个vsftpd的进程。若设置为YES,则每个连接都会有一个vsftpd的进程。

15.虚拟用户设置 虚拟用户使用PAM认证方式。

pam_service_name=vsftpd

设置PAM使用的名称,默认值为/etc/pam.d/vsftpd。 guest_enable= YES/NO(NO)

启用虚拟用户。默认值为NO。 guest_username=ftp

这里用来映射虚拟用户。默认值为ftp。 virtual_use_local_privs=YES/NO(NO)

当该参数激活(YES)时,虚拟用户使用与本地用户相同的权限。当此参数关闭(NO)时,虚拟用户使用与匿名用户相同的权限。默认情况下此参数是关闭的(NO)。 16.其他设置

text_userdb_names= YES/NO(NO)

设置在执行ls –la之类的命令时,是显示UID、GID还是显示出具体的用户名和组名。默认值为NO,即以UID和GID方式显示。若希望显示用户名和组名,则设置为YES。 ls_recurse_enable=YES/NO(NO) 若是启用此功能,则允许登入者使用ls –R(可以查看当前目录下子目录中的文件)这个指令。默认值为NO。 hide_ids=YES/NO(NO)

如果启用此功能,所有档案的拥有者与群组都为ftp,也就是使用者登入使用ls -al之类的指令,所看到的档案拥有者跟群组均为ftp。默认值为关闭。

download_enable=YES/NO(YES)

如果设置为NO,所有的文件都不能下载到本地,文件夹不受影响。默认值为YES。

8.5 FTP设置实例

FTP服务器的主配置文件是vsftpd.conf,位于/etc/vsftpd目录下,对FTP服务器的配置其实就是对vsftpd.conf文件的修改。

另外,还有两个辅助配置文件:/etc/vsftpd/ftpusers和/etc/vsftpd/user_list。 /etc/vsftpd/ftpusers中指定了哪些用户不能访问FTP服务器。

/etc/vsftpd/user_list中指定的用户在userlist_enable=YES且userlist_deny=YES时不能访问FTP服务器。当userlist_enable=YES且userlist_deny=NO仅允许/etc/vsftpd/user_list中指定的用户访问FTP服务器。

8.5.1 FTP服务器的默认配置。

默认主配置文件/etc/vsftpd/vsftpd.conf中的主要语句及其说明见表8-16。

表8-16 默认主配置文件vsftpd.conf及其说明

配置语句 anonymous_enable=YES local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES pam_service_name=vsftpd userlist_enable=YES listen=YES tcp_wrappers=YES 功能 允许匿名登录 允许本地用户登录 开放本地用户写的权限 设置本地用户的文件生成掩码 当切换到目录时,显示该目录下的.message隐含文件 激活上传与下载日志 开启FTP数据端口的连接请求 使用标准的ftpd xferlog格式 设置PAM认证服务的配置文件名 激活vsftpd检查userlist_file指定的用户是否可以访问vsftpd服务器 使vsftpd服务器处于独立启动模式 使用tcp_wrappers作为主机访问控制方式 第1步:编辑/var/named/chroot/var/named/test.edu.cn.db文件 按照8.2节介绍的方法,编辑test.edu.cn.db文件。在test.edu.cn域中添加一主机,域名为ftp.test.edu.cn。添加的A记录如下所示。保存该文件。

ftp IN A 222.11.22.11 第2步:启动服务器

执行命令# service named start启动DNS服务器。

执行命令# service vsftpd start启动FTP服务器。

第3步:匿名访问FTP服务器

使用FTP客户端连接本地FTP服务器,使用匿名FTP帐号(ftp)登录,如下所示。

[root@localhost vsftpd]# ftp ftp.test.edu.cn Connected to ftp.test.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 (ftp.test.edu.cn:root): ftp //使用匿名FTP帐号(ftp)登录 331 Please specify the password.

Password: //密码为空 230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp> dir //执行dir命令,查看/vat/ftp目录下的内容 227 Entering Passive Mode (222,11,22,11,226,112) 150 Here comes the directory listing.

drwxr-xr-x 2 0 0 4096 May 24 04:07 pub 226 Directory send OK.

ftp> cd pub //进入/vat/ftp/pub目录 250 Directory successfully changed. ftp> dir

227 Entering Passive Mode (222,11,22,11,183,77) 150 Here comes the directory listing.

-rw-r--r-- 1 0 0 5 May 24 04:07 file1.txt 226 Directory send OK.

ftp> get file1.txt //下载/vat/ftp/pub/file1.txt文件到/etc/vsftpd目录 local: file1.txt remote: file1.txt

227 Entering Passive Mode (222,11,22,11,190,206)

150 Opening BINARY mode data connection for file1.txt (5 bytes). 226 File send OK.

5 bytes received in 0.00014 seconds (36 Kbytes/s)

ftp> mkdir dir1 //创建目录失败,因为没有该权限 550 Permission denied.

ftp> quit //退出 221 Goodbye.

[root@localhost vsftpd]#

8.5.2 使匿名用户能够上传文件

第1步:修改/etc/vsftpd/vsftpd.conf文件

如下所示,有两个配置选项前面有“#”号,将其删除。

#anon_upload_enable=YES anon_upload_enable=YES //允许匿名用户上传文件 # # Uncomment this if you want the anonymous FTP user to be able to create # new directories. #anon_mkdir_write_enable=YES anon_mkdir_write_enable=YES //开启匿名用户的写和创建目录的权限 第2步:创建上传目录 如下所示,在/var/ftp目录下创建上传目录upload,并且修改该目录的权限,使其他用户可写。

[root@localhost ~]# mkdir /var/ftp/upload [root@localhost ~]# chmod o+w /var/ftp/upload/ 第3步:重启FTP服务器

执行命令# service vsftpd restart重启FTP服务器。

第4步:设置SELinux 进行如图8-39所示的设置。

图8-39 设置SELinux

第5步:修改目录upload的SELinux属性 执行的命令如下所示。

[root@localhost ~]# ls -lZ /var/ftp/ drwxr-xr-x root root system_u:object_r:public_content_t pub drwxr-xrwx root root root:object_r:public_content_t upload [root@localhost ~]# chcon -R -t public_content_rw_t /var/ftp/upload/ //修改目录upload的SELinux属性 [root@localhost ~]# 第6步:重启FTP服务器

执行命令# service vsftpd restart重启FTP服务器。 第7步:匿名访问FTP服务器

使用FTP客户端连接本地FTP服务器,使用匿名FTP帐号(ftp)登录,如下所示。

[root@localhost ~]# ftp ftp.test.edu.cn Connected to ftp.test.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 (ftp.test.edu.cn:root): ftp //使用匿名FTP帐号(ftp)登录 331 Please specify the password.

Password: //密码为空 230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp> dir //执行dir命令,查看/vat/ftp目录下的内容 227 Entering Passive Mode (222,11,22,11,214,211) 150 Here comes the directory listing.

drwxr-xr-x 2 0 0 4096 May 24 04:07 pub drwxr-xrwx 2 0 0 4096 May 24 07:37 upload 226 Directory send OK.

ftp> cd upload //进入/vat/ftp/upload目录 250 Directory successfully changed.

ftp> !pwd //执行Shell命令,显示当前路径 /root

ftp> !dir //执行Shell命令,显示当前目录的内容 anaconda-ks.cfg Desktop install.log.syslog sh_script txtfile

CentOS-Base.repo install.log scsrun.log temp yum-3.0.5-1.el5.centos.5.noarch.rpm ftp> put install.log //将本地文件install.log上传到FTP服务器 local: install.log remote: install.log

227 Entering Passive Mode (222,11,22,11,173,250) 150 Ok to send data. 226 File receive OK.

36994 bytes sent in 0.013 seconds (2.8e+03 Kbytes/s)

ftp> dir //上传成功 227 Entering Passive Mode (222,11,22,11,211,1) 150 Here comes the directory listing.

-rw------- 1 14 50 36994 May 24 07:48 install.log 226 Directory send OK.

ftp> mkdir dir1 //创建目录成功 257 \"/upload/dir1\" created

ftp> quit //退出 221 Goodbye.

8.5.3 配置基于本地用户的访问控制

配置基于本地用户的访问控制,可以通过修改vsftpd.conf文件来实现。该文件中要有以下三条语句:

userlist_enable=YES userlist_deny=NO

userlist_file=/etc/vsftpd/user_list

他们的功能是,使得/etc/vsftpd/user_list文件中指定的本地用户,可以访问FTP服务器,而其他本地用户不能访问FTP服务器。若将userlist_deny进行如此赋值:userlist_deny=YES,则使得/etc/vsftpd/user_list文件中指定的本地用户,不能访问FTP服务器,而其他本地用户可以访问FTP服务器。

8.6 FTP软件使用

默认的FTP的端口号位21,因此当FTP的端口为默认端口时,访问FTP可以不带端口。比如ftp的地址为192.168.1.100,直接在浏览器上通过输入ftp://192.168.1.100就可以访问该ftp。如果端口发生变化,则在访问时,需要指定访问的IP和端口号,比如端口改为8888,这时候访问该ftp时就应该输入ftp://192.168.1.100:8888。

8.6.1使用ftp命令行访问FTP服务器

在安装linux时,默认就安装了ftp命令行工具,只要在终端中输入ftp命令就可以方位ftp服务器进行文件的传输;同样的,在Windows下也可以使用该命令。在两种系统下命令的使用方法基本一致。

8.6.2 Linux下访问FTP服务器

使用gFTP进行安全文件传输 http://gftp.seul.org/

gFTP是X Window下的一个用Gtk开发的多线程FTP客户端工具,它与Microsoft Windows下运行的CuteFTP等FTP工具极为类似。 特色:

* 使用 C 语言写成 且有文字接口 和 GTK+ 1.2/2.0 接口 * 支援 FTP, HTTP 和 SSH 协定

* 支援 FXP 档案传输(在两个 ftp server 间传输档案) * 允许多档案传输下载伫列 * 支援下载整个目录和档案

* 有书签选单让使用者可以快速选取远端 * 支援断点续传 * 支援远端目录快取

* 支援拖曳档案,即Drag and Drop * 支援FTP 和 HTTP 代理服务器

* 允许 passive 或是 非 passive 档案传输

* 支援 Unix, EPLF, Novell, MacOS? ,和 NT(DOS) 格式目录列表 * 全面的图形化设定

KuFtp 是一款适用于 KDE 桌面环境的图形化 FTP 客户端。该程序使用 C++ 结合 QT/KDE 库编写而成。KuFtp 包含许多用来实现与 FTP 交互的功能,其中最显著的是与 Firefox 类似的 Tab 浏览特性,该特性允许你在分隔的 Tab 栏同时打开多个 FTP 会话。此外,KuFtp 也具有书签管理、历史记录、以及队列管理等功能。

KuFtp 当前最新版本为 0.9.0,要求 KDE 3.5 (或更高版本) 及 Qt 3.3.6 (或更高版本),你可以从这里下载其源代码

http://kuftp.sourceforge.net/download.php。

filezilla

http://filezilla-project.org/

图 filezilla主窗口

图 filezilla 站点管理

图 filezilla设置对话框

IglooFTPpro--非常好的ftp图形客户端

http://www.iglooftp.com/linux/index.html

IglooFTP PRO可以说是LINUX中最好的FTP客户端软件之一,其界面用\"华丽\"来形容一点也不过分,他最大的特点就是容易使用,并且对初学FTP者有著直觉化的操作设计。而老手们也可以发现他功能强大、可以调整许多设定选项,以符合经验老练的使用者们的需求。 说到直觉式(intuitive)的使用者界面上,很多的选择项都可点选相关的图标来完成;有快速的工具列、快速连线列,和本地端的图形化目录浏览视窗,漂亮的文件相关图标,并且还有Netscape 的小工具列,不知道你有没有发觉呢?服务器地址簿,使用了树状阶层式的网站方法,每一个ftp site以及group的资料都能很容易地被调整。另外还有不同使用者(user profile)的管理;远端控制一台FTP server到FTP client 传输资料(FXP transfers);URL剪贴簿中的监控;防火墙的支持(包括了SOCKS 5, ftp-gw, WinGate proxy等等);远端目录的快取功能;排列(queue)管理;还有许多进阶的使用者命令等等。

8.6.3 Windows下访问FTP服务器

因篇幅问题不能全部显示,请点此查看更多更全内容