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
【第2期】vsftpd的安装与使用