1 简介

1.1工作模式

主动模式

被动模式(默认)

1.2登录用户类型

匿名用户

本地用户

虚拟用户

2 配置

2.1 配置说明

2.1.1匿名用户配置 



anonymous_enable=YES    #是否允许匿名登录 yes=允许 no= 不允许
ftp_username=ftp #设置ftp匿名登录时的用户名,默认 ftp
no_anon_password=YES #匿名用户登录不需要输入密码 默认 YES
deny_email_enable=YES #以banned_email_file里面的电子邮件为密码的匿名用户不能登录
anon_root #匿名用户登录后的默认目录,不设置,默认为/var/ftp
anon_upload_enable=YES #允许匿名登录用户上传文件 默认NO
anon_mkdir_write_enable=YES #允许匿名登录用户创建目录 默认NO
anon_other_write_enable=NO #允许匿名用户有较高的写权限包括 删除目录和重命名等 默认NO
anon_world_readable_only=YES #允许匿名用户下载可读文件 默认YES , 设置为yes时只能下载不能直接在Ftp中阅读。
chown_uploads=YES #设置是否改变匿名用户上传文件(非目录)的属主。默认值为NO。


2.1.2 ssl加密协议配置



allow_anon_ssl=NO    #是否允许SSL连接,启用SSL后才可以使用此参数,默认NO
ssl_enable=NO #是否启用ssl 安全连接 默认NO 如果设置为yes,vsftpd,将启用openSSL,通过SSL支持安全连接和数据传输
force_local_logins_ssl=YES #是否对非匿名用户登录加密 默认yes
force_local_data_ssl=YES #是否对非匿名用户传输加密 默认yes
force_anon_logins_ssl=NO #匿名用户登录时是否加密 默认为no
force_anon_data_ssl=NO #匿名用户数据传输时是否加密 默认为no
ssl_sslv2=NO #是否开户sslv2协议。 默认NO ,如果设置为yes,前提为ssl_enable=YES
ssl_sslv3=NO #是否开户sslv3协议。 默认NO ,如果设置为yes,前提为ssl_enable=YES
dsa_cert_file #为ssl加密连接指定dsa证书位置 默认 无
ssl_ciphers #是否指定加密方式 默认 DES-CBC3-SHA


2.1.3 日志文件配置



dual_log_enable=NO    # 是否启用双日志,默认NO 如果设置为yes,则分别在/var/log/xferlog、var/log/vsftpd.log里记录日志。前一个为wu-ftpd格式,可被通用工具分析,后一个为vsftpd的专用格式
xferlog_enable=YES # 激活上传和下传的日志 依赖 参数xferlog_std_format的设置
xferlog_std_format=YES # 使用标准格式记录上传、下传日志
syslog_enable=NO # 是否关闭vsftpd的日志并记录系统日志 默认NO ,如果设置为YES,系统日志会记录到/var/log/vsftpd.log,而VSFTPD的日志进程将停止。


2.1.4 传输模式配置



ascii_download_enable=YES    #是否启用ascii模式下载文件 默认 NO
ascii_upload_enable=YES #是否启用ascii模式上传文件 默认 NO
async_abor_enable=NO #是否启用强制中止传输文件 默认 NO 启用此参数是为了免中止传输时的客户端挂死。只有特殊情况下才使用。
background=NO #是否后台启动vsftpd监听 默认 NO 启用后,VSFTPD将监听进程置于后台,当访问vsftpd服务时,console 会返回到shell模式
check_shell=YES #检测是否有可用的shell环境 默认 YES
userlist_enable=YES #启用user_list文件的检查 默认NO:为YES时检查user_list文件中的用户列表,为NO时不检测该文件
userlist_deny=NO #只有在userlist_enable启用时有效,默认YES:表示user_list文件中的用户不允许登录ftp NO:表示只允许user_list文件中的用户登录FTP


2.1.5 传输速率配置



anon_max_rate    #匿名用户允许的最大传输速率    0秒
local_max_rate #本地认证用户的最大传输速率 0秒


2.1.6超时设置



accept_timeout    #尝试连接时间    60s
data_connection_timeout #数据传输延迟的最大时间,超过限制,会话将被终止 300s
idle_session_timeout #连接建立后,两次ftp命令之间的时间间隔,超时会话将被终止 300s


2.1.7用户创建文件权限设置



anon_umask    匿名用户创建的文件的默认权限    022
local_umas 本地用户创建的文件的默认权限 022


2.1.8端口设置



listen_port=21    #FTP服务器建立连接所侦听的端口    21
ftp_data_port #数据传输所使用的默认端口 20
connect_from_port_20=YES #指定FTP数据传输连接使用20端口,设置为NO时,则进行数据连接时,所使用的端口由ftp_data_port指定
pasv_max_port=0 #passive模式下数据传输使用的端口上限 0
pasv_mim_port=0 #passive模式下数据传输使用的端口下限 0


2.1.9用户访问权限设置



chroot_list_enable=YES    #是否改变用户的根目录, 默认 NO。 当设置为YES时,需要以root
用户做如下操作:
mkdir /etc/vsftpd/userconf;
cat >>$username<<eof
local_root=$path
EOF
说明 "$username" 是需要改变默认根目录的用户比如用户aaa
,$path 为你想要用户aaa默认访问的路径 ,比如/data/aaa
chroot_list_enable=YES #设置是否启用chroot_list_file配置项指定的用户列表文件。默认值为NO
chroot_list_file=/etc/vsftpd/chroot_list #用于指定存储用户列表文件,该文件用于控制哪些用户只可以访问自己的根目录,不可以访问根路径的上级路径目录
chroot_local_user=YES #用于指定用户列表文件中的用户是否允许切换到上级目录。默认值为NO。通过搭配能实现以下多种效果。见表格下方。


2.2 匿名用户配置文件




cat > /etc/vsftpd/vsftpd.conf << EOF

#全局配置

write_enable=YES

dirmessage_enable=YES

listen=NO

listen_ipv6=YES


#是否允许匿名登录yes=允许 no=不允许

anonymous_enable=YES

#匿名用户创建文件的默认权限

anon_umask=022

#设置ftp匿名登录时的用户名 默认ftp

ftp_username=ftp

#匿名用户登录不需要输入密码 默认YES

no_anon_password=YES

#匿名用户登录后的默认目录,不设置,默认为/var/ftp

anon_root=/var/ftp

#允许匿名登录用户上传文件 默认NO

anon_upload_enable=YES

#允许匿名登录用户创建目录 默认NO

anon_mkdir_write_enable=YES

#允许匿名用户有较高的写权限包括删除目录和重命名等 默认NO

anon_other_write_enable=YES

#允许匿名用户下载可读文件 默认YES,设置为yes时只能下载不能直接在Ftp中阅读

anon_world_readable_only=NO

#设置是否改变匿名用户上传文件(非目录)的属主 默认NO

chown_uploads=NO


#被动模式配置

pasv_min_port=30000

pasv_max_port=31000


##日志配置

xferlog_enable=YES

xferlog_std_format=YES

EOF


 

2.3本地用户配置文件




cat > /etc/vsftpd/vsftpd.conf << EOF

#全局配置

write_enable=YES

dirmessage_enable=YES

listen=NO

listen_ipv6=YES

pam_service_name=vsftpd


#允许本地用户登录禁止匿名用户登录

local_enable=YES

anonymous_enable=NO


#当且仅当userlist_enable=YES时,userlist_deny项的配置才有效,user_list文件才会被使用;当其为NO时,无论userlist_deny项为何值都是无效的,本地全体用户(除去ftpusers中的用户)都可以登入FTP

#当userlist_enable=YES时,userlist_deny=YES时:user_list是一个黑名单,即:所有出现在名单中的用户都会被拒绝登入.

#当userlist_enable=YES时,userlist_deny=NO时:user_list是一个白名单,即:只有出现在名单中的用户才会被准许登入(user_list之外的用户都被拒绝登入).

#另外需要特别提醒的是:使用白名单后,匿名用户将无法登入,除非显式在user_list中加入一行:anonymous

userlist_enable=YES

userlist_deny=NO

userlist_file=/etc/vsftpd/user_list


#下面是限制用户只能访问自己的主目录 存在chroot_list文件中的用户只能访问自己的主目录

chroot_local_user=YES

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list


#被动模式配置

pasv_min_port=30000

pasv_max_port=31000


##日志配置

xferlog_enable=YES

xferlog_std_format=YES

EOF


 

2.4匿名和本地用户配置文件




cat > /etc/vsftpd/vsftpd.conf << EOF

#全局配置

write_enable=YES

dirmessage_enable=YES

listen=NO

listen_ipv6=YES

pam_service_name=vsftpd


#允许本地用户登录禁止匿名用户登录

local_enable=YES


#是否允许匿名登录yes=允许 no=不允许

anonymous_enable=YES

#匿名用户创建文件的默认权限

anon_umask=022

#设置ftp匿名登录时的用户名 默认ftp

ftp_username=ftp

#匿名用户登录不需要输入密码 默认YES

no_anon_password=YES

#匿名用户登录后的默认目录,不设置,默认为/var/ftp

anon_root=/var/ftp

#允许匿名登录用户上传文件 默认NO

anon_upload_enable=YES

#允许匿名登录用户创建目录 默认NO

anon_mkdir_write_enable=YES

#允许匿名用户有较高的写权限包括删除目录和重命名等 默认NO

anon_other_write_enable=YES

#允许匿名用户下载可读文件 默认YES,设置为yes时只能下载不能直接在Ftp中阅读

anon_world_readable_only=NO

#设置是否改变匿名用户上传文件(非目录)的属主 默认NO

chown_uploads=NO


#当且仅当userlist_enable=YES时,userlist_deny项的配置才有效,user_list文件才会被使用;当其为NO时,无论userlist_deny项为何值都是无效的,本地全体用户(除去ftpusers中的用户)都可以登入FTP

#当userlist_enable=YES时,userlist_deny=YES时:user_list是一个黑名单,即:所有出现在名单中的用户都会被拒绝登入.

#当userlist_enable=YES时,userlist_deny=NO时:user_list是一个白名单,即:只有出现在名单中的用户才会被准许登入(user_list之外的用户都被拒绝登入).

#另外需要特别提醒的是:使用白名单后,匿名用户将无法登入,除非显式在user_list中加入一行:anonymous

userlist_enable=YES

userlist_deny=NO

userlist_file=/etc/vsftpd/user_list


#下面是限制用户只能访问自己的主目录 存在chroot_list文件中的用户只能访问自己的主目录

chroot_local_user=YES

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list


#被动模式配置

pasv_min_port=30000

pasv_max_port=31000


##日志配置

xferlog_enable=YES

xferlog_std_format=YES

EOF


2.5 虚拟用户配置文件



未完待续