FTP–file transfer protocol
件传输协议 提供一种应用层的文件共享服务
端口:TCP 21 命令 TCP 20 数据
模式:主动—/passive/pasv方式
被动–/standard/port方式,服务器使用20端口连接客户端
工作方式图解:
主动模式
①FTP服务器命令端口接受客户端任意端口(初始化)
②FTP服务器命令端口到客户端端口(>1023)(服务器响应客户端命令)
③服务器数据端口到客端口(>1023)(服务器初始化数据并且连接到客户端的数据端口)
④FTP服务器数据端口接受客户端端口(客户端发送了ACK到服务器的数据端口);
被动模式
①服务器命令端口接受客户端任意端口(客户端初始连接)
②FTP服务器命令端口到客户端端口(服务器响应客户端命令)
③FTP服务器数据端口(>1023)接受客户端端口(>1023)(客户端初始化数据连接到服务器指定的任意端口)
④FTP服务器数据端口到客户端端口(服务器发送ACK和数据到客户端端口)
注意:在被动方式ftp中,命令连接和数据连接都是由客户端发起,从而解决掉了从服务器到客户端的数据端口的入方向连接被防火墙过滤掉的问题;
优缺点:主动模式对ftp服务器管理有利,是由ftp服务器主动与客户端的高位随机端口建立连接,但是这个端口很可能被客户端的防火墙阻塞; 被动模式对客户端度哪里有效,他是企图与服务端的随即端口建立连接,但这个端口也有可能被服务端的防火墙所拒绝
配置:
安装软件:
查看配置文件,默认匿名用户已启用:
anonymous-enable=YES表示启用匿名用户
创建几个文件
在Windows资源管理器中查看:
注:上面的登陆方式是以匿名用户登陆的
匿名用户的下载:默认配置即可实现;
匿名用户的上传:
修改配置文件中匿名上传的相关选项:
vim /etc/vsftpd/vsftpd.conf
修改匿名用户的权限:
systemctl restart vsftpd 重启服务
测试:(除1 2 3 4 外,其他文件为windows写入的文件)
匿名用户的删除:
修改配置文件,添加如下选项:
systemctl restart vsftpd 重启服务
测试:
本地用户:
修改配置文件开启本地用户权限:
vim /etc/vsftp/vsftpd.conf
anonymous_enable=NO 不允许匿名用户登陆
遍历:
开启chroot选项:通过chroot对用户宿主目录实现禁锢:
开启通过列表的方式指定用户:
指定用户列表文件:
在当前目录创建用户列表文件:
虚拟用户:
创建系统用户,禁止该用户登陆
修改用户家目录权限:
修改主配置文件,增加以下三个选项:
创建虚拟用户数据库文件,格式为一行用户名一行密码:
将虚拟用户文件转换成用户数据库文件:
修改虚拟用户数据库文件权限:
修改pam认证方式:
修改认证配置文件:
注释掉所有行,添加最后两行:
重启服务并测试: