1.VSFTPD简介 (2)1.1 什么是VSFTPD (2)1.2 谁在使用VSFTPD (3)2.安装 (3)2.1软件获得 (4)2.2 软件安装 (4)3.配置服务 (6)3.1 如何启动服务 (6)3.2 制作服务启动脚本 (8)4.简单配置文件分组讲解 (11)4.1 匿名和本地用户登陆 (11)4.2 两类用户的共同设置 (16)4.3 本地用户权限管理 (18)4.4 匿名用户的管理 (22)4.5 关于欢迎语设置 (30)4.6 关于ip监听与并发连接 (32)4.7 关于连接端口设置 (35)4.8 VSFTPD的日志 (43)4.9 服务器连接时间控制 (45)5.特殊Vsftpd环境搭建 (46)5.1 服务的双模式切换 (46)5.2 基于ip的虚拟站点 (47)5.3 虚拟用户建立、管理 (53)5.4 在数据库中记录日志 (63)5.5 建立加密的数据传输 (65)6. VSFTPD.CONF(5)的中文翻译 (71)6.1布尔项 (71)6.2 数字选项设置 (81)6.3 字符串选项 (83)7. VSFTPD结束语 (88)1.VSFTPD简介1.1 什么是VSFTPDVsftpd是一个基于GPL发布的类UNIX的ftp服务器软件。
其中Vs代表了“very secure”,可以看出软件的写作初衷就是为了安全性考虑。
所以可以这么说,在众多的ftp服务器软件中此款软件是最安全的。
同样的在Linux上,它依然体现了这个特点。
然而不仅在安全上是出色的,在速度上和稳定性上它都有着不俗的表现。
在速度上,Vsftpd完全超越了Wu-ftpd的速度,大约可以是Wu-ftpd速度的1.5到2倍的速率。
有记录表明,在千兆以太网上,Vsftpd的速率可以达到86Mbyte/sec。
稳定性上更是优秀,资料表明,完全工作了24小时,传输数据达2.6TB,平均并发连接为1500用户,这些都是在单机上实现的。
在单机非集群的情况下,它的并发连接可以达到4000用户。
除此之外,Vsftpd还在其他功能上有着自己的表现:基于IP的虚拟ftp服务器;实现虚拟用户,用户验证结合数据库;可以选择基于standalone或者inetd模式;为每个用户设置单独的配置文件;限制速率;支持全面的IPV6技术;支持加密的SSL技术实现数据传输;……以上所有的内容摘自Vsftpd的官方网站,大家可以点击:。
1.2 谁在使用VSFTPD以下网站都一直在使用Vsftpd这个ftp软件:.uk ftp-stud.fht-esslingen.degd.tuwien.ac.atftp.sunet.seftp.engardelinu.uk 2.安装2.1软件获得本教程所有试验环境搭建都是基于RAD HAT Linux Advance Server 3操作系统(以下简称RHAS3)。
完全选择最新Vsftpd软件安装版本,我们可以到Vsftpd的官方网站下载到最新的版本,据写书日期止,最新版本为vsftpd-2.0.3 released我们可以到官方网站下载页面ftp:///users/cevans/ 下载。
# ftp Connected to .220 FTP server ready.500 'AUTH GSSAPI': command not understood.500 'AUTH KERBEROS_V4': command not understood.KERBEROS_V4 rejected as an authentication typeName (:root): ftp331 Guest login ok, type your name as password.Password:230- Welcome to Mythic Beasts Ltd.230- This system is for authorised users only. All access is logged.230 Guest login ok, access restrictions apply.Remote system type is UNIX.Using binary mode to transfer files.ftp> get /users/cevans/vsftpd-2.0.3.tar.gz /tmp/vsftpd-2.0.3.tar.gzftp> quit221 Goodbye.2.2 软件安装首先解压,使用tar命令:# lsjd_sockV4 vsftpd-2.0.3.tar.gz# tar zxvf vsftpd-2.0.3.tar.gz进入解压后目录,修改builddefs.h文件内容,此文件中的语句及解释分别为:#undef VSF_BUILD_TCPWRAPPERS //是否允许使用TCPWRAPPERS #define VSF_BUILD_PAM //是否允许使用PAM认证#undef VSF_BUILD_SSL //是否允许使用SSL其中如果允许加载上述功能模块的话就把前面的undef换成define。
其中TCPWRAPPERS是一个作用在inetd下的防火墙软件,很多管理员都喜欢用的一个技术;PAM认证让Vsftpd可以支持本地用户登陆服务器;SSL可以建立一个加密的数据传输。
因此我们把这三个功能都打上。
但是,一定要注意,前面的“#”号不能去掉。
关于这三个功能我们会在下面的内容中给大家具体介绍每个功能的配置。
builddefs.h文件修改完后,变成:#less builddefs.h#ifndef VSF_BUILDDEFS_H#define VSF_BUILDDEFS_H#define VSF_BUILD_TCPWRAPPERS#define VSF_BUILD_PAM#define VSF_BUILD_SSL#endif /* VSF_BUILDDEFS_H */安装之前检查一下是否原来默认安装了Vsftpd,如果安装了我们删除它:# rpm -q vsftpdvsftpd-1.2.1-3# rpm -e vsftpd# rm -f /etc/xinetd.d/vsftpd# chkconfig vsftpd off在RHAS3上,要编译Vsftpd之前的先得修改它的Makefile文件,我们这样做:# vi Makefile把原里面的第六行为:CFLAGS = -O2 -Wall -W –Wshadow改为:CFLAGS = -O2 -Wall -W -Wshadow -I/usr/kerberos/include -L/usr/kerberos/lib#-pedantic -Werror –Wconversion保存这个文件。
然后编译、安装:# make# make install最后为了让Vsftpd支持本地用户登陆,我们要复制PAM认证文件:# cp RedHat/vsftpd.pam /etc/pam.d/vsftpd这样就完成了Vsftpd的安装,下一节我们会讨论Vsftpd服务的简单配置。
3.配置服务3.1 如何启动服务默认情况我们的服务器是建立在standalone模式下的,所以配置文件只有一个。
默认的配置文件是 /etc/vsftpd/vsftpd.conf 。
启动服务的命令在 /usr/local/sbin/vsftpd 。
最简单的启动服务的方法是:# /usr/local/sbin/vsftpd /etc/vsftpd/vsftpd.conf &但是现在还没有写配置文件,所以服务以后再启动。
让我们编辑/etc/vsftpd/vsftpd.conf文件,在里面加入:# less vsftpd.conflisten=yesanonymous_enable=yes第一句让我们可以在standalone模式下工作,第二句允许匿名用户登陆服务器。
这样我们再启动服务,服务就会启动成功,为了检测服务确实启动,我们需要:# netstat -an|grep 21tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN # telnet 127.0.0.1 21Trying 127.0.0.1...Connected to as1 (127.0.0.1).Escape character is '^]'.220 (vsFTPd 2.0.3)登陆服务器:# ftp 127.0.0.1Connected to 127.0.0.1.220 (vsFTPd 2.0.3)530 Please login with USER and PASS.530 Please login with USER and PASS.KERBEROS_V4 rejected as an authentication typeName (127.0.0.1:root): ftp331 Please specify the password.Password:230 Login successful.Remote system type is UNIX.Using binary mode to transfer files.ftp>这样最简单的匿名服务器就搭建成功了。
如果要停止服务,就必须:# killall vsftpd3.2 制作服务启动脚本这样来不断启动服务和停止服务可能比较麻烦,我们来做一个简单的脚本可以方便的启动和停止服务。
#vi /etc/init.d/vsftpd在里面加入:#!/bin/bash## vsftpd This shell script takes care of starting and stopping # standalone vsftpd.## chkconfig: - 60 50# description: Vsftpd is a ftp daemon, which is the program \# that answers incoming ftp service requests.# processname: vsftpd# config: /etc/vsftpd/vsftpd.conf# Source function library.. /etc/rc.d/init.d/functions# Source networking configuration.. /etc/sysconfig/network# Check that networking is up.[ ${NETWORKING} = "no" ] && exit 0[ -x /usr/local/sbin/vsftpd ] || exit 0RETVAL=0prog="vsftpd"start() {# Start daemons.if [ -d /etc/vsftpd ] ; thenfor i in `ls /etc/vsftpd/*.conf`; dosite=`basename $i .conf`echo -n $"Starting $prog for $site: " /usr/local/sbin/vsftpd $i &RETVAL=$?[ $RETVAL -eq 0 ] && {touch /var/lock/subsys/$progsuccess $"$prog $site"}echodoneelseRETVAL=1fireturn $RETVAL}stop() {# Stop daemons.echo -n $"Shutting down $prog: "killproc $progRETVAL=$?echo[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog return $RETVAL}# See how we were called.case "$1" instart)start;;stop)stop;;restart|reload)stopstartRETVAL=$?;;condrestart)if [ -f /var/lock/subsys/$prog ]; thenstopstartRETVAL=$?fi;;status)status $progRETVAL=$?;;*)echo $"Usage: $0{start|stop|restart|condrestart|status}"exit 1esacexit $RETVAL#chmod 755 /etc/init.d/vsftpd这样我们就可以使用下面的方法来管理服务了:# service vsftpd {start|stop|restart|condrestart|status}# service vsftpd restartShutting down vsftpd: OK ]Starting vsftpd for vsftpd: OK ]4.简单配置文件分组讲解4.1 匿名和本地用户登陆anonymous_enable=yes/no //是否允许匿名用户登陆local_enable=yes/no //是否允许本地用户登陆pam_service_name=vsftpd //本地用户登陆认证的pam设置文件还记得我们刚才把安装文件中的Redhat目录下的vsftpd.pam文件复制成了/etc/pam.d/vsftpd文件。