VSFTP笔记

ftp的认证方法

1.虚拟用户:仅用于访问某特定服务中的资源

nsswitch: network server switch, 名称解析框架
    配置文件:/etc/nsswitch.conf
    模块:/lib64/libnss*, /usr/lib64/libnss*
pam: pluggable authentication module, 用户认证框架
    模块:/lib64/security/
    配置文件:/etc/pam.conf, /etc/pam.d/*

2.系统用户

3.匿名用户

vsftpd配置文件

用户认证配置文件:/etc/pam.d/vsftpd
服务脚本:/etc/rc.d/init.d/vsftpd
配置文件目录:/etc/vsftpd
主配置文件:vsftpd.conf
匿名用户(映射为ftp用户)共享资源位置:/var/ftp
系统用户通过ftp访问的资源的位置:用户自己的家目录
虚拟用户通过ftp访问的资源的位置:给虚拟用户指定的映射成为的系统用户的家目录

匿名用户访问

~]# cat >/etc/vsftpd/vsftpd.conf<<EOF
anonymous_enable=YES            #是否开启匿名用户登录
anon_mkdir_write_enable=YES     #匿名用户是否可以创建目录
anon_upload_enable=YES          #匿名用户是否可以上传文件
anon_other_write_enable=YES     #具有除了写入之外的权限,包括删除和改名,anonymous 写入的目录亦需要调整权限,让 vsftpd 的 PID 拥有者可以写入才行!
local_enable=YES				#是否开启系统用户访问ftp
write_enable=YES				#全局是否有写的权限
local_umask=022					#写入的文件权限的umask值
dirmessage_enable=YES           #当用户进入某个目录时,会显示该目录需要注意的内容,显示的档案默认
xferlog_enable=YES  			#开启上传下载的日志记录
connect_from_port_20=YES		#端口号
xferlog_std_format=YES			#登录格式
listen=YES					    #监听端口
pam_service_name=vsftpd			#这个是 pam 模块的名称,我们放置在 /etc/pam.d/vsftpd 即是这个
userlist_enable=YES			    #是否启用userlist控制
tcp_wrappers=YES		        #支持 TCP Wrappers 的
#以下是可选项
anon_max_rate=0                      #匿名用户速度限制 
anon_world_readable_only=(yes/no); #控制匿名用户对文件的下载权限 
anon_umask= 077           #匿名用户上传文件时有掩码(若想让匿名用户上传的文件能直接被匿名下载,就这设置这里为073)
chown_uploads=YES          #所有匿名上传的文件的所属用户将会被更改成chown_username 
chown_username=whoever     #匿名上传文件所属用户名
EOF

系统用户访问

实现严格的权限控制

~]# cat >/etc/vsftpd/vsftpd.conf<<EOF
anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
xferlog_enable=YES
local_enable=YES         #启用系统用户登录
write_enable=YES   		 #全局是否可写
local_umask=022			 #控制用户写的权限
download_enable=yes      #是否允许下载
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,DELE,RNTO,RNFR,RETR   #严格的权限控制
dirmessage_enable=YES     
connect_from_port_20=YES
chroot_list_enable=YES       #启用 chroot_list_file项的控制
chroot_list_file=/etc/vsftpd/chroot_list     #必须把系统用户放在此文件中
userlist_enable=YES                          #启用userlist_file项的控制,阻挡这些账号登入
userlist_file=/etc/vsftpd/user_list
chroot_local_user=YES        #是否把用户限制在家目录,不可以访问其他
listen=YES
local_max_rate=8000000       #系统用户限速,单位为bytes
pam_service_name=vsftpd
tcp_wrappers=YES
pasv_min_port=30001          #ftp建立数据传输所用的端口范围
pasv_max_port=31000
EOF

权限控制

常用权限:
CWD:更改目录
LIST:列目录
MDTM:返回文件的更新时间
MKD:新建文件夹
NLST:远程目录的名称列表
DELE:删除文件
RNTO:重命名
RETR:下载文件
STOR:上传文件

具体一些参数:

PASS - send password
PASV - enter passive mode
PORT - open a data port 打开一个传输端口
PWD - print working directory 显示当前工作目录
QUIT - terminate the connection 退出
RMD - remove a remote directory
SIZE - return the size of a file 返回文件大小
STOR - store a file on the remote host 上传文件
TYPE - set transfer type
USER - send username
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

常用选项

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

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

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

write_enable=NO

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

download_enable=NO

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

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

5、可以上传、下载、删除、重命名

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,DELE,RNTO,RNFR,RETR
posted @ 2022-04-15 20:50  彬彬l  阅读(64)  评论(0)    收藏  举报