目录
1.1、客户端用端口n连接服务器端的21号端口,建立连接并使用PORT命令告知服务器开启了n+1端口
1.2、连接建立后,服务器使用20端口主动向客户端的n+1端口发送连接,以建立数据连接
2.1、客户端使用端口n连接FTP的21号端口,告知服务器使用被动模式
2.2、控制连接建立后,服务器建立端口P,使用PASV命令并告知客户端
2.3、客户端收到端口P后,使用n+1端口连接FTP的P端口,建立数据连接
一、 FTP
(一)概述
FTP:linux下最常见的文件服务器,工作于应用层,实现文件传输
FTP:file transfer protocol 文件传输协议
(二)FTP连接类型
1、 命令连接
客户端发起请求,服务器响应,默认一直保持连接
2、 数据连接
按需打开,按需关闭,与命令连接相关联,有可能同时打开多个数据连接
(三)端口
控制连接 TCP/21
数据连接 20/随机端口
(四)工作模式
1、 主动模式
1.1、客户端用端口n连接服务器端的21号端口,建立连接并使用PORT命令告知服务器开启了n+1端口
netstat -anptu | grep vsftpd
netstat -anptl
两种方式皆可查看监听
1.2、连接建立后,服务器使用20端口主动向客户端的n+1端口发送连接,以建立数据连接
2、 被动模式
2.1、客户端使用端口n连接FTP的21号端口,告知服务器使用被动模式
2.2、控制连接建立后,服务器建立端口P,使用PASV命令并告知客户端
2.3、客户端收到端口P后,使用n+1端口连接FTP的P端口,建立数据连接
(五)安装配置
1、 服务名
vsftpd
2、 主配置文件
/etc/vsftpd/vsftpd.conf
3、 用户控制文件
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
4、 用户验证类型
4.1、 匿名用户
是一种最不安全的模式,任何人都可无需密码验证而直接登录到FTP服务器
4.2、 本地用户
是通过linux系统本地的账号密码进行验证登录,相比较匿名开放模式更安全,配置也比较简单。
4.3、 虚拟用户
5、 安装
服务器安装vsftpd软件
客户端安装ftp,否则无法使用ftp命令
登录时,直接使用ftp命令加上服务器IP地址
6、 匿名用户验证
6.1、 用户名
ftp或者anonymous
6.2、 密码
匿名用户登录默认无密码
6.3、 工作目录
/var/ftp、/var/ftp/pub
6.4、 目录权限
更改工作目录pub/的权限,使匿名用户能够进行写入的操作
cd /var/ftp
ls -lh
chmod 777 pub/
ls -lh
6.5、 可选配置项
anon_upload_enable=[YES|NO]
是否允许匿名用户上传文件
anon_mkdir_write_enable=[YES|NO]
是否允许匿名用户创建目录
anon_other_write_enable=[YES|NO]
是否开放匿名用户的其他写入权限(删除、改名)
7、 本地用户验证
7.1、 用户名
服务器本地用户
tail /etc/passwd 默认查看后十行