Linux的FTP服务详解
本章概述
主要介绍FTP服务是什么?有什么功能,有哪些传输模式,并进行试验配置服务。
一、什么是FTP服务?
FTP(file Transfer Protocol,文件传输协议),是典型的C/S架构的应用层协议,由客户端软件和服务端软件两个部分共同实现文件传输功能,FTP客户端和服务器之间的连接时可靠的,面向连接的,为数据的传输提供了可靠的保证。
FTP 是TCP传输协议,主要使用20和21端口
- 20端口用来传输数据
- 21端口用来建立连接(传输指令)
FTP是一种文件传输协议,它支持两种模式
- 一种叫做Standard(也就是Active,主动方式),客户端发送PORT命令到服务器。
- 另一种叫做Passive(也就是PASV被动方式),客户端发送PASV命令到服务器。
二、FTP的作用和接口信息
FTP的作用
- internet上用来传输文件的协议
FTP服务器的接口信息
- 20端口用于建立数据连接,并传输文件数据
- 21端口用于建立控制连接,并传输FTP的控制命令
三、FTP的工作原理和流程
FTP数据连接分为主动模式和被动模式
-
FTP会话包含了两个通道, 控制通道 和 数据传输通道 ,FTP的工作有两种模式,一种是主动模式,一种的被动模式,以FTP server为参照。
-
主动模式: 服务器主动连接客户端传输
-
被动模式: 服务器等待客户端连接。
注意:无论时主动还是被动模式,首先控制通道都是先建立起来,只是在数据传输模式上的区别。
1、主动模式
FTP客户端连接到FTP服务端的21号端口,发送用户名和密码,客户端随机开放一个端口(高位端口:1024以上),发送PORT命令到FTP服务器,告知服务器客户端采用主动模式,并开放端口,FTP服务器收到PORT主动模式命令和端口后,通过服务器的20号端口和客户端开放的端口连接,发送数据。
解释: 主动模式就是:客户端开放一个高位端口连接到FTP服务器的21号端口,发送用户名和密码和PORT命令以及自己开放的高位端口号,告知FTP服务器、客户端采用的是主动模式,FTP服务器收到PORT命令和端口后,通过自己的20号端口来和客户端另一个端口号进行连接,发送数据
注意:主动模式的情况,客户端必须关闭防火墙,否则无法传输数据。
2、被动模式
FTP客户端连接到FTP服务器所监听的21号端口,发送用户名和密码,还有PASV命令到FTP服务器,服务器在本地随机开放一个端口(1024以上),然后把开放的端口告知客户端,然后客户端再连接到服务器开放的端口进行数据传输。
解释: 被动模式就是:客户端连接到FTP服务器的21号端口,发送用户名和密码和PASV和自己开放的一个端口,告诉FTP服务器,客户端采用的是被动模式,服务端收到后,会在本地也开放一个高位端口号,并告知客户端这个端口号,等待客户端过来进行连接,客户端通过自己的另一个高位端口号连接FTP的高位端口号之后,开始传输数据。
四、搭建和配置FTP服务
1、匿名用户案例
1.1 下载服务包、备份配置文件
关闭防火墙、核心防护
查看下载FTP服务包(服务包为vsftpd)
下载完成之后进行开启服务
进行备份ftp服务的主要配置文件
1.2 修改配置文件
进入配置文件
需要修改配置文件内容描述
anonymous_enable=YES #开启匿名用户访问。默认开启 write_enable=YES #开放服务器的写权限(若要上传必须开启)。默认已开启 local_umask=022 #设置用户所上传数据的权限掩码(反掩码) anon_upload_enable=YES #允许匿名用户上传文件。默认已注释,需取消注释 anon_mkdir_write_enable=YES #允许匿名用户创建(上传)目录。默认已注释,需取消注释 anon_other_write_enable=YES #允许匿名删除、重命名、覆盖等操作。需添加 anon_root=/var/ftp/pub #anon_root 针对匿名用户(如果不设置默认为此目录,可以进行修改,修改之后修改给它权限)
修改文件 /var/ftp/pub 权限为777
重启服务
1.3 匿名访问测试
开启一台windows系统,进行登录
- windows下面的根目录在linux上面显示的目录就是“ /var/ftp/pub ”
在FTP服务器中的共享目录创建一个文件
查看windows中是否可查看文件
可以将看到的文件下载到本地
也可以在windows本地创建文件进行上传的到FTP服务器
在FTP服务器上进行查看FTP共享文件,是否有windows上传的文件
2、用户登录模式
首先前面的配置跟匿名登录一样操作,在配置文件中的定义存在区别,具体操作如下
2.1 修改配置文件
进入配置文件
配置文件内容介绍
local_enable=Yes #启用本地用户 anonymous_enable=NO #关闭匿名用户访问 write_enable=YES #开放服务器的写权限(若要上传,必须开启) local_umask=077 #可设置仅宿主用户拥有被上传的文件的权限(反掩码) chroot_local_user=YES #将访问禁锢在用户的宿主目录中 allow_writeable_chroot=YES #允许被限制的用户主目录具有写权限 #anon_mkdir_write_enable=YES 注释 #anon_other_write_enable=YES 注释
修改配置文件内容
2.2 创建需要登录的用户,更换需要共享的目录
配置好后可以创建一个目录用来当做FTP的共享目录,还需要创建一个用户用来作为此用户的属主目录
然后再进入到配置文件中,将刚所创建的目录添加到配置文件中
local_root=/var/ftp/data #local_root针对系统用户
2.3 进行验证测试上传(put)和下载(get)文件
进入windows系统,使用创建的用户进行连接ftp服务器
在centos 7 中查看上传的目录
2.4 设置黑白命令
在黑明单内的用户,在别的系统上面就无法完成登录的操作
进入配置文件
将yudeqiang用户加入到黑名单
再从windows系统上进行登录
五、总结
FTP服务就是一个传输文件的协议
主要使用20(用来传输)和21(用来控制)两个端口用来连接和传输文件
且有两种传输模式
-
主动模式: 客户端通过自己的高位端口连接到ftp服务器的21端口,发送用户名、密码、端口号、PORT给FTP服务端,其中PORT就是告诉服务端,此时此刻连接为主动模式,然后FTP服务器将使用自己的20端口连接到客户端的高位端口进行传输数据
-
被动模式: 客户端通过自己的高位端口连接到FTP服务器的21端口,发送用户名、吗,IMA、端口号、PASV给到FTP服务端,其中PASV就是告知服务端,此次连接为被动模式,ftp服务器收到后返回一个高位接口给到客户端,客户端进行连接ftp服务器的高位端口进行传输数据
具体的实验为
- 匿名登录: 主要就是配置ftp服务,进行任何用户都可以进行登录到FTP服务器中的指定的目录中下载或上传文件。
的高位端口进行传输数据
- 被动模式: 客户端通过自己的高位端口连接到FTP服务器的21端口,发送用户名、吗,IMA、端口号、PASV给到FTP服务端,其中PASV就是告知服务端,此次连接为被动模式,ftp服务器收到后返回一个高位接口给到客户端,客户端进行连接ftp服务器的高位端口进行传输数据
到此这篇关于Linux的FTP服务的文章就介绍到这了,更多相关内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文地址:https://blog.csdn.net/weixin_43555345/article/details/130345096
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。