一、 安装vsftp
rhel5中vsftp服务器默认被安装在系统中,可以使用以下命令查看vsftp包是否安装,
[root@node1 ~]# rpm -qa|grep vsftpd
vsftpd-2.0.5-12.el5
[root@node1 ~]#
如果没有安装,那么用户可以在光盘中选择 vsftpd-2.0.5-12.el5包进行安装。
二、基本配置参数
vsftp的参数文件 vsftpd.conf在/etc/vsftpd下,配置参数如下:
anonymous_enable=yes或 no
是否允许匿名登陆
dirmessage_enable=yes或 no
是否显示目录说明文件,缺省值为 yes,但需要手工创建message文件,该message文件存放在用户的家目录中。
message_file
设置访问一个目录时获得的目录信息文件的文件名,缺省为 .message。
check_shell=yes
设置是否检查用户有一个有效的 shell来登陆。仅在没有pam模块验证时有效。默认为yes。
local_enble=yes或 no
是否允许本地帐户登陆
anon_upload_enable=yes或 no
是否允许匿名上传文件
anon_mkdir_write_enable=yes或 no
是否允许匿名用户创建目录
anon_umask=022
设置匿名用户文件的掩码,默认为 077。
local_umask=022
设置本地用户的文件掩码为 022,默认值为077
connect_form_port_20=yes或 no
是否确信端口传输来自 20(ftp-data)
xferlog_enable=yes或 no
是否记录 ftp传输过程
xferlog_std_format=yes或 no
是否使用标准的 ftp xferlog模式。
xferlog_file=/var/log/vsftpd.log
设置 ftp传输日志的路径和文件,缺省为/var/log/vsftpd.log
ftpd_banner=XXXXX
定制欢迎信息
banner_file=/var/vsftpd_banner_file
设置 vsftpd服务器欢迎信息,该参数的设置会取代Ftpd_banner参数
nopriv_user=ftpsecure
设置运行 vsftpd需要的非特权用户,缺省是nobody。该项默认为注释掉的。
pam_service_name=vsftpd
设置 pam认证服务的配置文件名称,该文件保存在/etc/pam.d下。
anon_root=/var/ftp/
设置匿名用户的默认目录,默认配置文件中没有该选项,其默认值为 /var/ftp。
local_root=( none)
设置本地用户家目录。默认为空,当使用系统帐户登陆 ftp时,家目录为用户home目录。如果未设置且未锁定(chroot_local_user为no),那么登陆后主目录为系统根目录。
download_enable=yes或 no
默认设置为 yes,如果为no 所有用户不能进行下载。
hide_ids=yes或 no
如果启动该选项,则在列目录时文件的所有者信息只会显示为 ftp,从而隐藏真实的文件所有者信息。
tcp_wappers=yes或 no
设置是否支持t cp_wappers,当设置为yes时,可以通过/etc/host.allow和/etc/host.deny文件中的内容控制用户的访问。
write_enable=yes或 no
是否允许本地用户的写权限
anon_other_write_enable=yes或 no
设置是否匿名用户具有删除或修改文件的权限,默认为 no。
anon_world_readable_only=yes或 no
设置匿名用户是否具有下载文件的权限,默认为 yes。
ascii_upload_enable=yes或 no
是否启用上传或下载的 ASCII传输方式,默认使用二进制传输方式 。如果使用ASCII传输方式,那么在配置文件中将那两项开启。
 
ascii_download_enable=yes或 no
idle_session_timeout=600(秒 )
设置缺省的断开不活跃会话的时间,以秒为单位。
data_connection_timeout=120(秒)
设置数据传输超时时间,以秒为单位。
accept_timeout=60(秒)
 
connect_timeout=60(秒)
 
local_max_rate=50000( bite)
设置本地用户传输的最大速率。
anon_max_rate=30000( bite)
设置匿名用户传输的最大速率。
port_enable=yes或no
设置服务器用主动模式,默认为yes。
pasv_enable=yes
设置服务器端用被动模式,默认为 yes。
pasv_min_port=50000
设置客户机 pasv模式的连接端口范围为5000到6000
pasv_max_port=60000
max_clients=100
设置总的并发连接数为 100
max_per_ip=5
设置每个 ip的的最大连接树为5,从而限制单个主机占用过多的资源。
listen_port=21
设置监听端口,默认为 21。
banner_fail=/路径 /文件名
设置连接失败时显示文件中的内容
ls_recurse_enable=yes或 no
设置是否允许使用 ls –r命令列出目录信息。如果允许该选项,可能会造成系统性能问题。
async_abor_enable=yes或 no
 
one_process_model=yes或 no
 
listen=yes或 no
设置运行方式为独立启动。要使用 xinetd启动方式,需要删除或注释改行设置并对/etc/xinetd.d/vsftpd文件进行配置。
listen_address=ip地址
如果 vsftp运行在独立模式下时,可以通过此参数覆盖默认的监听地址。
virtual_use_local_privs=yes或 no
当该参数激活( yes)时,虚拟用户使用与本地用户相同的权限。当此参数关闭(no)时,虚拟用户使用与匿名用户相同的权限。这两者种做法相比,后者更加严格一些,特别是在有写访问的情形下。默认情况下此参数是关闭的(no)。
当virtual_use_local_privs=yes时,只需设置write_enable=yes,虚拟用户就可以就拥有写权限。而virtual_use_local_privs=no时,对虚拟用户权限的设置就更多一些更严格一些。
guest_enable=yes或 no
设置是否启用虚拟用户功能
guest_username=所设的用户名
参数用来指定 guest用户的名称,即虚拟用户被映射为那个本地系统帐户。
user_config_dir=/etc/vsftpd/userconf
Vsftp支持不同的用户使用不同的配置,配置文件在 /etc/vsftpd/userconf目录下。文件名与用户名相同。支持虚拟用户。
 
chroot_local_user=yes或 no
chroot_local_user参数设置是否启用把所有用户限制在自己的家目录里。当ch root_local_user参数为yes时,会把所有本地用户限制在家目录。且当chroot_list_enable参数为yes时,chroot_list_file文件指定的用户不被限制到自己的家目录。
chroot_list_enable=yes或 no
chroot_list_file=/etc/vsftpd.chroot_list
 
userlist_enable=yes或 no
通过参数u serlist_enable设置是否启动用户列表,userlist_file参数指定用户列表文件,具体操作由参数userlist_deny决定。当参数userlist_enable为yes时,vsftp服务启动时检查userlist_file参数指定的用户列表文件,当userlist_deny为yes时,那么出现在userlist_file文件中的用户不能访问ftp服务器。当userlist_deny为no时,那么出现在userlist_file文件中的用户可以访问ftp服务器,而文件中没有列出的用户将不能访问,这就是所谓的黑名单与白名单。
userlist_deny=yes或 no
userlist_file=/etc/vsftpd.user_list
 
 
chown_uploads=yes或 no
出于安全设置是否改变上传文件的所有者,具体为改成哪个用户,由c hown_username参数决定。
chown_username=root
 
 
deny_email_enable=yes或 no
 
banned_email_file=/etc/vsftpd.banned_emails
 
          /etc/vsftpd/vsftpd.ftpusers: vsftpd.ftpusers文件记录了不允许用户访问 vsftp服务器的用户。所以可以把把不允许访问ftp服务器的用户添加到此文件中。该文件只能起到黑名单的作用。没有/etc/vsftpd.user_list灵活,即可以起到黑名单的作用也可以起到白名单的作用。
注意:详细参数说明参考 /etc/vsftpd/vsftpd.conf帮助文档。
三、 使用xinetd方式启动vsftp服务器
       为了使用 xinetd方式启动vsftp服务器需要建立/etc/xinetd.d/vsftpd配置文件。该文件默认不存在,需要利用vsftp示例文件来创建。
1) 拷贝 /usr/share/doc/ vsftpd-2.0.5/vsftpd.xinetd到/etc/xinetd.d/下。
cp /usr/share/doc/ vsftpd-2.0.5/vsftpd.xinetd /etc/xinetd.d/vsftpd
 
2) 修改 /etc/xinetd.d/vsftpd配置文件disable为no。为以下内容
[root@RHEL5 xinetd.d]# vi vsftpd
# default: off
# description: The vsftpd FTP server serves FTP connections. It uses \
#        normal, unencrypted usernames and passwords for authentication.
service ftp
{
        socket_type             = stream
        wait                    = no
        user                    = root
        server                  = /usr/sbin/vsftpd
        server_args             = /etc/vsftpd/vsftpd.conf
        nice                    = 10
        disable                 = no
        flags                   = IPv4
}
3) 修改 /etc/vsftpd/vsftpd.conf文件。将其中的listen设置为no或注销掉。并停止以下命令停止原有的vsftpd服务。
Service vsftp stop
4) 执行以下命令重新载入 xinetd服务的配置,以便xinetd可以监听ftp服务。
Service xinetd reload