【第2期】vsftpd的安装与使用

1、为什么要使用ftp工具

   作为服务器后台开发人员而言,服务器为什么要安装ftp工具这个问题,相信都有自己的理解和体会。在实际应用中,服务器一旦安装投入使用后,常常是放置在机房中,一般情况下,开发人员不会直接进入机房进行开发工作或软件维护工作。此时,为服务器安装ftp工具变得如此重要。它方便技术人员在远程操作服务器时,为服务器上传需要的文件或从服务器中下载文件到本地中。因此,在服务器架构方面,ftp工具常常是装机必备的一个工具。


2、vsftpd简介

    vsftpd是Linux下一个常用的ftp工具。在RH的Linux版本中,作为ftp工具vsftpd不是系统自带标配安装的。也就是说,我们需要自己安装ftp工具。

    vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开发源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。【以上定义摘自 百度百科】

    vsftpd的优点有很多,以至于它成为Linux服务器中比较常用的ftp工具之一。有关这方面的说明有很多,有兴趣的可以直接查看【百度百科】的描述,这里我就不再赘述了。


 3、vsftpd的安装

    vsftpd在安装使用之前,我们还是无法通过远程机器使用ftp命令的方式去连接服务器,从而做上传或下载文件的操作(当然,ftp工具都还没有安装呢)。

    我首先在网上找到了可用的ftp安装包:vsftpd-2.0.5-16.el5_4.1.i386.rpm。下面给出下载的链接地址!

    http://download.csdn.net/detail/libear218/3046262

    我在虚拟机中创建一个根目录下的software目录,专门放置了软件安装包(使用root用户,父目录为根目录 / )

    

    通过虚拟机直接将ftp安装包放进服务器中。

    

    以root用户查看vsftpd是否已安装:rpm -qa | grep vsftpd(由下图可知,vsftpd目前还没有安装)

    

    以root用户安装vsftpd:rpm -ivh /software/vsftpd-2.0.5-16.el5_4.1.i386.rpm

    

    以root用户检查vsftpd安装情况:rpm -qa | grep vsftpd(显示安装的内容,说明vsftpd已经安装了)

    


4、vsftpd的配置    

    当安装好vsftpd之后,现在我们还无法正常的使用vsftpd,原因有两个:

1、vsftpd未配置(或未个性化配置)

2、vsftpd未启动

    接下来,我们需要对vsftpd进行配置。在vsftpd中,主配置文件为vsftpd.conf。下面,对vsftpd的配置文件作简单介绍。

1、 /etc/vsftpd/vsftpd.conf  主配置文件

2、 /etc/vsftpd/ftpusers  禁止访问vsftpd服务器的用户列表文件。顾名思义,你想禁止哪个用户使用ftp的方式登录,写在这里即可

3、 /etc/vsftpd/user_list  根据主配置vsftpd.conf,许可或禁止访问服务器的用户列表文件。也就是说,它即可作为许可名单,也可作为禁止名单,具体视vsftpd.conf内设参数而定

4、 /var/ftp  匿名用户登录时,默认目录

    下面,对主配置文件的主要参数做简单介绍。

anonymous_enable  指定是否允许匿名登录,默认为YES

local_enable  指定是否允许本地用户登录,默认为YESwrite_enable 指定是否开放写权限,默认为YES

local_umask  指定文件创建的初始权限掩码值

dirmessage_enable  指定是否能浏览目录内的信息

userlist_enable  指定是否启用user_list文件,如果为YES,则文件user_list表示许可,若为NO,则文件user_list表示禁止

idle_session_timeout  指定用户会话空闲多少时间(单位为秒)后自动断开

data_connection_timeout  指定数据连接空闲多少时间(单位为秒)后自动断开

ascii_upload_enable  指定是否允许使用ASCII格式上传文件

ascii_download_enable  指定是否允许使用ASCII格式下载文件

listen  指定vsftpd服务器的运行方式,默认为YES,以独立方式运行

xferlog_enable  指定是否启用日志功能

tcp_wrapper  指定是否启用防火墙    

     下面,我使用root用户,修改主配置文件vsftpd.conf:vi /etc/vsftpd/vsftpd.conf

    

    修改文件内容(允许使用asc编码进行文件上传或下载

      去#号,改成  

    在末尾添加 userlist_deny=NO

    


     我再使用root用户,修改用户列表文件user_list: vi /etc/vsftpd/user_list

    

    追加允许的用户:oracle(使oracle用户被允许通过ftp的方式连接服务器

    


     我再使用root用户,修改用户列表文件ftpusers: vi /etc/vsftpd/ftpusers

    

    删除用户:root(防止root用户在使用ftp时,无法连接服务器

      删除root用户,改为

    为此,vsftpd的配置就基本完成了。此时,我们可以启动vsftpd服务。使用命令 service vsftpd start

    

    为了防止vsftpd服务在服务器被重启后无效,我们还需要使vsftpd在服务器重启或开机时自启动。

    使用命令 chkconfig vsftpd on,并使用命令检查 chkconfig --list|grep vsftpd

    

    我们可以看到vsftpd在级别为2、3、4、5的时候会自启动,这样基本就能满足我们的需求了!


5、vsftpd调试

     为服务器安装好vsftpd后,接下来,我们要做的就是查看安装后的结果是否成功的。使用windows的dos命令连接服务器试试。

    

    对使用过ftp连接过服务器进行文件上传、下载操作的技术人员来说,看到这种情况,就知道实际上ftp是连接失败了!为什么会这样呢?

    其实,我们在使用ftp时,其端口可能服务器的防火墙给过滤了。也就是说,其端口无效了,这样ftp服务启动后,我们还是无法成功连接到服务器上。

    这时,我们可以对防火墙进行一些处理,为vsftp开通所需的端口,默认情况下,vsftpd使用的端口号是20或21

    使用root用户,编辑防火墙文件:vi /etc/sysconfig/iptables

    

    在COMMIT的上面添加如下语句:

iptables -A INPUT -p tcp --dport 21 -j ACCEPT

iptables -A INPUT -p tcp --dport 20 -j ACCEPT

    如:

    

    重启防火墙服务:service iptables restart

    

    重启vsftpd服务:service vsftpd restart

    

    再使用windows的dos命令ftp到服务器

    

    咦,成功了。这时就可以输入用户名,密码等信息使用ftp连接到服务器了。


     【题外话】后来,我发现,在使用ftp过程中,ls命令居然还不显示文件列表。网上查了一下,使用一下命令可以解决

    # setsebool -P ftpd_disable_trans 1 

    # service vsftpd restart

 

    


 

posted @ 2014-08-24 17:47  Richard在菩提树下  阅读(303)  评论(0编辑  收藏  举报