目录
一.FTP简介
二.FTP的数据模式
1.主动模式
2.被动模式
3.两种模式比较
三.安装配置vsftpd
1.安装vsftpd
1.1.安装前关闭防火墙
1.2.安装vsftpd
1.3.查看
1.4.备份
2.配置
3.重启后生效
四.相关实验
1.以win为例
1.1.设置并测试测试连通性
1.2.在终端里创建目录
1.3.在虚拟机win里查看
1.4.在终端里创建文件
1.5.更改路径并下载
2.设置匿名用户(win为例)
2.1.关闭匿名用户
2.2.创建匿名用户
2.3.匿名用户无法登录
2.4.非匿名用户可以登录
3.设置白名单黑名单
3.1.进入设置
3.2.设置白名单
3.3.添加用户
3.4.登录成功
3.5.设置黑名单
3.6.登录失败
一.FTP简介
FTP是FileTransferProtocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet
上的控制文件的双向传输。同时,它也是一个应用程序(Application)基于不同的操作系统有不同
的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件
- FTP服务器默认使用TCP协议的20、21端口与客户端进行通信
- 20端口用于建立数据连接,并传输文件数据
- 21端口用于建立控制连接,并传输FTP控制命令
二.FTP的数据模式
1.主动模式
- 服务器主动发起数据连接
在主动模式下,FTP客户端随机开启一个大于1024的端口N向服务器的21号端口发起连接,发送
FTP用户名和密码,然后开放N+1号端口进行监听,并向服务器发出PORT N+1命令,告诉服务端
客户端采用主动模式并开放了端口。FTP服务器接收到PORT命令后,会用其本地的FTP数据端口
(通常是20)来连接客户端指定的端口N+1,进行数据传输
2.被动模式
- 服务器被动等待数据连接
在被动模式下,FTP客户端随机开启一个大于1024的端口N向服务器的21号端口发起连接,发送用
户名和密码进行登陆,同时会开启N+1端口。然后向服务器发送PASV命令,通知服务器自己处于
被动模式。服务器收到命令后,会开放一个大于1024的端口P(端口P的范围是可以设置的,后面
会说到这个是很重要的)进行监听,然后用PORT P命令通知客户端,自己的数据端口是P。客户
端收到命令后,会通过N+1号端口连接服务器的端口P,然后在两个端口之间进行数据传输
3.两种模式比较
- 主动模式传送数据时是“服务器”连接到“客户端”的端口(客户端开启数据端口)
- 被动模式传送数据是“客户端”连接到“服务器”的端口(服务端开启数据端口)
- 主动模式需要客户端必须开放端口给FTP服务端,很多客户端都是在防火墙内,开放端口给FTP服务器访问比较困难
- 被动模式只需要服务器端开放端口给客户端连接就行了
三.安装配置vsftpd
1.安装vsftpd
1.1.安装前关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
vim /etc/selinux/config
1.2.安装vsftpd
rpm -qc vsftpd
yum install -y vsftpd
1.3.查看
cd /etc/vsftpd
ls
1.4.备份
cp vsftpd.conf{,.bak}
2.配置
vim /etc/vsftpd/vsftpd.conf
3.重启后生效
systemctl restart vsftpd
systemctl enable vsftpd
netstat -lntp
四.相关实验
1.以win为例
1.1.设置并测试测试连通性
1.2.在终端里创建目录
cd /var/ftp
ls
pwd
mkdir xx01
ls
1.3.在虚拟机win里查看
1.4.在终端里创建文件
echo 'zx like xuexi' > zx.txt
ls
1.5.更改路径并下载
2.设置匿名用户(win为例)
2.1.关闭匿名用户
2.2.创建匿名用户
useradd xx
echo 123456 | passwd --stdin xx
useradd xy
echo 123456 | passwd --stdin xy
systemctl restart vsftpd
2.3.匿名用户无法登录
2.4.非匿名用户可以登录
3.设置白名单黑名单
3.1.进入设置
vim /etc/vsftpd/vsftpd.conf
3.2.设置白名单
3.3.添加用户
vim user_list
3.4.登录成功
3.5.设置黑名单
3.6.登录失败