一、
安装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