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
浙公网安备 33010602011771号