当前位置: 首页 > article >正文

vsftpd服务权限配置

主配置文件:/etc/vsftpd/vsftpd.conf

anonymous_enable=YES   #是否启用匿名用户
no_anon_password=YES   #匿名用户login时不询问口令
anon_upload_enable=yes | no			# 匿名用户对文件(非目录)上传权限。
anon_world_readable_only=yes | no	# 匿名用户对文件的下载权限
anon_mkdir_write_enable=yes | no	# 匿名用户对文件夹的创建权限
anon_other_write_enable=yes | no	# 匿名用户对文件和文件夹的删除和重命名

默认匿名用户下载使用nobody用户,other要有r权限才能被下载。

write_enable=YES 	# 全局设置,是否容许写入(无论是匿名用户还是本地用户,若要启用上传权限的话,就要开启他)
anon_root=(none) 	# 匿名用户主目录
anon_max_rate=(0) # 匿名用户速度限制
anon_umask=(077) # 匿名用户上传文件时有掩码(若想让匿名用户上传的文件能直接被匿名下载,就这设置这里为073)
chown_uploads=YES # 所有匿名上传的文件的所属用户将会被更改成chown_username
chown_username=whoever # 匿名上传文件所属用户名

本地用户权限控制

write_enable=YES 		#可以上传(全局控制) 删除,重命名
local_umask=022  		#本地用户上传文件的umask
userlist_enable=YES 	#限制了这里的用户不能访问
local_root=  			#设置一个本地用户登录后进入到的目录
user_config_dir=  		#设置用户的单独配置文件,用哪个帐户登陆就用哪个帐户命名
download_enable=  		#限制用户的下载权限

chown_uploads=YES 		#所有匿名上传的文件的所属用户将会被更改成chown_username
chown_username=whoever	#匿名上传文件所属用户名

chroot_list_enable=YES # 如果启动这项功能,则所有列在chroot_list_file之中的使用者不能更改根目录
chroot_list_file=/etc/vsftpd/chroot_list	# 指定限制的用户文件,此列表中用户被锁定用户主目录

参数:chroot_list_enable、chroot_local_user、chroot_list_file搭配使用

# 在/etc/vsftpd/chroot_list文件中列出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录。
chroot_list_enable=YES
chroot_local_user=YES
chroot_list_file=/etc/vsftpd/chroot_list

# 在/etc/vsftpd.chroot_list文件中列出的用户,不能切换到其他目录;未在文件中列出的用户,可以切换到其他目录。
chroot_list_enable=YES
chroot_local_user=NO
chroot_list_file=/etc/vsftpd/chroot_list

# 所有的用户均不能切换到其他目录
chroot_list_enable=NO
chroot_local_user=YES

# 所有的用户均可以切换到其他目录
chroot_list_enable=NO
chroot_local_user=NO

只能上传。不能下载、删除、重命名。

cmds_allowed=FEAT,REST,CWD,LIST,MDTM,MKD,NLST,PASS,PASV,PORT,PWD,QUIT,RMD,SIZE,STOR,TYPE,USER,ACCT,APPE,CDUP,HELP,MODE,NOOP,REIN,STAT,STOU,STRU,SYST

对于参数的详细的解释

ABOR - abort a file transfer 取消文件传输
CWD - change working directory 更改目录
DELE - delete a remote file 删除文件
LIST - list remote files 列目录
MDTM - return the modification time of a file 返回文件的更新时间
MKD - make a remote directory 新建文件夹
NLST - name list of remote directory
PASS - send password
PASV - enter passive mode
PORT - open a data port 打开一个传输端口
PWD - print working directory 显示当前工作目录
QUIT - terminate the connection 退出
RETR - retrieve a remote file 下载文件
RMD - remove a remote directory
RNFR - rename from
RNTO - rename to
SITE - site-specific commands
SIZE - return the size of a file 返回文件大小
STOR - store a file on the remote host 上传文件
TYPE - set transfer type
USER - send username

# less common commands:

ACCT* - send account information
APPE - append to a remote file
CDUP - CWD to the parent of the current directory
HELP - return help on using the server
MODE - set transfer mode
NOOP - do nothing
REIN* - reinitialize the connection
STAT - return server status
STOU - store a file uniquely
STRU - set file transfer structure
SYST - return system type

只能下载、删除、重命名。不能上传。

cmds_allowed=FEAT,REST,CWD,LIST,MDTM,MKD,NLST,PASS,PASV,PORT,PWD,QUIT,RMD,RNFR,RNTO,RETR,DELE,SIZE,TYPE,USER,ACCT,APPE,CDUP,HELP,MODE,NOOP,REIN,STAT,STOU,STRU,SYST

虚拟用户配置,虚拟用户使用PAM认证方式。

pam_service_name=vsftpd		#设置PAM使用的名称,默认值为/etc/pam.d/vsftpd。
check_shell=YES   			# 注意:仅在没有pam验证版本时有用,是否检查用户有一个有效的shell来登录
guest_enable= YES/NO		# 启用虚拟用户。默认值为NO。
guest_username=ftp			# 这里用来映射虚拟用户。默认值为ftp。
virtual_use_local_privs=YES/NO		# 当该参数激活(YES)时,虚拟用户使用与本地用户相同的权限;当此参数关闭(NO)时,虚拟用户使用与匿名用户相同的权限;默认情况下此参数是关闭的(NO)。

访问控制设置:控制主机访问与控制用户访问
控制主机访问:

tcp_wrappers=YES | NO
# 设置vsftpd是否与tcp wrapper相结合来进行主机的访问控制。
# 默认值为:YES。
# 启用:则vsftpd服务器会检查/etc/hosts.allow 和/etc/hosts.deny 中的设置,来决定请求连接的主机,是否允许访问该FTP服务器。这两个文件可以起到简易的防火墙功能。

例如:仅允许192.168.10.1~~192.168.10.254用户可以连接FTP服务器,则在/etc/hosts.allow、/etc/hosts.deny文件中添加以下内容:

vsftpd:192.168.1.
vsftpd:192.168.1.12
vsftpd:192.168.1.0/255.255.255.0		# 192.168.1.0/24格式vsftp识别不了

控制用户访问:

vsftpd.ftpusers		# 用于保存不允许进行FTP登录的本地用户帐号,就是vsftp用户的黑名单;
vsftpd.user_list
1、设置禁止vsftpd.user_list文件中的用户登录,需要在主配置文件/etc/vsftpd/vsftpd.conf中修改如下两项
userlist_enable=yes
userlist_deny=yes
# 除了vsftpd.ftpusers文件和vsftpd.user_list文件中记录的ftp用户不能登录vsftp服务以外,其他的ftp用户都可以登录。
 
2、设置只允许vsftpd.user_list文件中的用户登录,需要在主配置文件/etc/vsftpd/vsftpd.conf中的语句修改如下两项
userlist_enable=yes
userlist_deny=no
# 只允许vsftpd.user_list文件中记录的ftp用户能登录vsftp服务,其他的ftp用户都不可以登录。

超时设置

idle_session_timeout=600		# 空闲连接超时
data_connection_timeout=120		# 数据传输超时
ACCEPT_TIMEOUT=60				# PAVS请求超时
connect_timeout=60				# PROT模式连接超时

服务器功能选项

xferlog_enable=YES			# 开启日记功能
xferlog_std_format=YES		# 使用标准格式
log_ftp_protocol=NO			# 当xferlog_std_format关闭且本选项开启时,记录所有ftp请求和回复,当调试比较有用.
pasv_enable=YES				# 允许使用pasv模式
pasv_promiscuous=NO			# 关闭安全检查
port_enable=YES				# 允许使用port模式
tcp_wrappers=YES			# 开启tcp_wrappers支持
pam_service_name=vsftpd		# 定义PAM 所使用的名称,预设为vsftpd。
nopriv_user=nobody			# 当服务器运行于最底层时使用的用户名
pasv_address=(none)			# 使vsftpd在pasv命令回复时跳转到指定的IP地址.(服务器联接跳转?)

服务器性能选项

ls_recurse_enable=YES  #是否能使用ls -R命令以防止浪费大量的服务器资源
one_process_model=  #是否使用单进程模式
listen=YES   # 绑定到listen_port指定的端口,既然都绑定了也就是每时都开着的,就是那个什么standalone模式
text_userdb_names=NO   #当使用者登入后使用ls -al 之类的指令查询该档案的管理权时,预设会出现拥有者的UID,而不是该档案拥有者的名称。若是希望出现拥有者的名称,则将此功能开启。
use_localtime=NO    #显示目录清单时是用本地时间还是GMT时间,可以通过mdtm命令来达到一样的效果
#use_sendfile=YES    #测试平台优化

信息类设置

ftpd_banner=welcome to FTP .  #login时显示欢迎信息.如果设置了banner_file则此设置无效
dirmessage_enable=YES   #允许为目录配置显示信息,显示每个目录下面的message_file文件的内容
setproctitle_enable=YES   #显示会话状态信息,关!

文件定义

chroot_list_file=/etc/vsftpd/vsftpd.chroot_list  #定义不能更改用户主目录的文件
userlist_file=/etc/vsftpd/vsftpd.user_list  #定义限制/允许用户登录的文件
banner_file=/etc/vsftpd/banner    #定义登录信息文件的位置
banned_email_file=/etc/vsftpd.banned_emails  #禁止使用的匿名用户登陆时作为密码的电子邮件地址
xferlog_file=/var/log/vsftpd.log   #日志文件位置
message_file=.message     #目录信息文件

目录定义

user_config_dir=/etc/vsftpd/userconf  #定义用户配置文件的目录
local_root=webdisk    #此项设置每个用户登陆后其根目录为/home/username/webdisk定义本地用户登陆的根目录,注意定义根目录可以是相对路径也可以是绝对路径.相对路径是针对用户家目录来说的.
anon_root=/var/ftp     #匿名用户登陆后的根目录

用户连接选项

max_clients=100    #可接受的最大client数目
max_per_ip=5    #每个ip的最大client数目
connect_from_port_20=YES   #使用标准的20端口来连接ftp
listen_address=192.168.0.2   #绑定到某个IP,其它IP不能访问
listen_port=2121    #绑定到某个端口
ftp_data_port=2020    #数据传输端口
pasv_max_port=0    #pasv连接模式时可以使用port 范围的上界,0 表示任意。默认值为0。
pasv_min_port=0    #pasv连接模式时可以使用port 范围的下界,0 表示任意。默认值为0。

数据传输选项

anon_max_rate=51200  #匿名用户的传输比率(b/s)
local_max_rate=5120000  #本地用户的传输比率(b/s)

安全选项

idle_session_timeout=600		# 用户会话空闲后10分钟
data_connection_timeout=120		# 将数据连接空闲2分钟断
accept_timeout=60				# 将客户端空闲1分钟后断
connect_timeout=60				# 中断1分钟后又重新连接
local_max_rate=50000			# 本地用户传输率50K
anon_max_rate=30000				# 匿名用户传输率30K

pasv_min_port=50000				# 将客户端的数据连接端口改在
pasv_max_port=60000				# 50000—60000之间

max_clients=200					# FTP的最大连接数
max_per_ip=4					# 每IP的最大连接数
listen_port=5555				# 从5555端口进行数据连接

配置FTP匿名用户的主目录为/data/ftp_data/user01。下载带宽限制为100kB/s

建立一个名为abc,口令为xyz的FTP账户。下载带宽限制为500kB/s。

设置FTP服务器同时登录到FTP服务器的最大链接数为100;每个IP最大链接数为3;用户空闲时间超过限值为5分钟。

vim /etc/vsftpd/vsftpd.conf

anonymous_enable=YES
anon_root=/data/ftp_data/user01
anon_max_rate=100000
local_enable=YES
local_max_rate=500000
max_clients=100
max_per_ip=3
connect_timeout=300

http://www.kler.cn/a/594616.html

相关文章:

  • 前后端项目
  • 模型空间、图纸空间、布局(Layout)之间联系——CAD c#二次开发
  • Node.js中SerialPort(串口)模块使用详解
  • debian11安装MongoDB
  • 美摄接入DeepSeek等大模型,用多模态融合重构视频创作新边界!
  • NLua 文档
  • 《模型思维》第二十三章 “与集体行动有关的问题” 总结
  • 华为NAS真实测评!
  • 基于Spring Boot的售楼管理系统的设计与实现(LW+源码+讲解)
  • Python(正则表达式)
  • JAVA多线程中的单例模式
  • DeepSeek Chat 自动化交互技术分析
  • Hugging Face 模型格式全解析:从 PyTorch 到 GGUF
  • springboot Actuator 指标分析
  • 服务安全认证概述与基础认证方式
  • Buuctf [极客大挑战 2019]FinalSQL
  • 计算机图形学学习日志4
  • CVPR2025 | 对抗样本智能安全方向论文汇总 | 持续更新中~
  • mysql之DATE_FORMAT迁移到gbase8s
  • MVC_Publish-Subscriber 模式中的事件处理程序