一、概念
Linux下最常见的文件服务器 工作在应用层
lile transfer protocol 文件传出协议
二、FTP连接类型
1、命令连接
客户端发起请求,服务器响应默认一直保持连接
2、数据连接
按需打开按需关闭,与命令连接相关联有可能同时打开多个数据连接
三、端口
控制连接 TCP/21
数据连接 20/随机端口
四、工作模式
1、主动模式
客户端用端口n连接服务器端的21号端口,建立连接并使用PORT命令告知服务器开启了n+1端口
连接建立后,服务器使用20端口主动向客户端的n+1端口发送连接,以建立数据连接
2、被动模式
客户端使用端口n连接FTP的21号端口,告知服务器使用被动模式
控制连接建立后,服务器建立端口P,使用PASV命令并告知客户端
客户端收到端口P后,使用n+1端口连接FTP的P端口,建立数据连接
五、配置文件
1、匿名用户
anon_upload_enable=[YES|NO] 是否允许匿名用户上传文件
将注释删除
anon_mkdir_write_enable=[YES|NO] 是否允许匿名用户创建目录
将注释取消
anon_other_write_enable=[YES|NO] 是否开放匿名用户的其他写入权限(删除、改名)
取消注释
2、本地用户
local_enable=[YES|NO] 是否允许本地用户登录FTP
加上注释
local_root=/var/ftp 本地用户的FTP根目录
写上配置项
chroot_local_user=[YES|NO] 是否将用户权限禁锢在FTP目录,确保安全
取消注释
allow_writeable_chroot=YES 是否允许写入
取消注释
chroot_list_enable=YES|NO 是否启用chroot_list_file
这里我把他禁锢到var/ftp/pub,他切换不了工作目录
取消注释,创建chroot_list并写入一个本地用户
启用chroot_list后将syh用户添加进去登录用户后就可以切换目录了
userlist_enable=YES
userlist_deny=YES
不允许/etc/vsftpd/user_list文件中出现的用户名登录FTP
取消注释
在user_list中添加syh用户
这样我们的本地用户syh就无法登录了
userlist_enable=YES
userlist_deny=NO
仅允许/etc/vsftpd/user_list文件中出现的用户名登录FTP
用user_list中的用户登录
ftpusers
不允许/etc/vsftpd/ftpusers文件中出现的用户名登录FTP,无论user_list如何设置
将syh用户添加到ftpusers中
这里会提醒你输入syh用户的密码,但是输入密码后还是会报错
pasv_enable=YES 启用被动模式
pasv_min_port=2001 被动模式使用的最小端口号
pasv_max_port=2005 被动模式使用的最大端口号
下载个文件测试一下端口
可以看到端口是2004,在我们规定的范围内
以上就是FTP服务基本配置项的使用
如有错误欢迎各位大佬批评指正,我们共同进步