vsftpd简介和配置说明
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 虚拟用户配置文件
未完待续
参考网址:https://www.cnblogs.com/halberd-lee/p/11734363.html