FTP文件传输服务器

这篇具有很好参考价值的文章主要介绍了FTP文件传输服务器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、FTP协议两种工作模式

二、FTP数据两种传输模式

三、FTP用户分类

四、VSFTP配置案例

4.1匿名开放模式

4.2本地用户模式

4.3虚拟用户模式

五、实验总结


一、FTP协议两种工作模式

主动模式:

1、客户端主动向ftp服务器发送控制连接,三次握手控制连接建立成功(密码认证)。

源端口:随机端口1026     目的端口:21

2、用于传输控制命令的控制连接建立成功之后,客户端向ftp服务器发送port消息来告诉ftp服务器接下来要与其传输数据所使用的端口号。

如:随机端口号1027

3、若要彼此传输数据,ftp服务器主动与客户端建立数据连接。

源端口号:20       目的端口号:1027(客户端通过控制连接发送过来的port消息携带的 )

说明:我们知道防火墙是根据报文五元组建立会话,来对外部流量进行筛选是否允许其访问内网。如果ftp客户端位于防火墙的内网,此时防火墙只缓存的有客户端与ftp服务器之间控制会话。如果采用主动模式,当ftp服务器要向客户端发送数据连接请求时,在经过防火墙时由于会话表里保存的没有此五元组端口号的记录,因此防火墙就会禁止ftp请求数据连接报文的通过,因此彼此之间无法进行ftp文件的传输。

被动模式:

1、客户端主动向ftp服务器建立控制连接,三次握手控制连接建立成功(密码认证)。

源端口: 随机端口1025    目的端口: 21

2、控制连接建立成功后,客户端向ftp服务器发送PASV被动消息,告诉ftp服务器在接下来传输数据时其处于被动模式,由客户端向ftp服务器建立数据连接。

3、ftp服务器收到PASV消息后,自己开放个用于传输数据的随机端口号如:m,并将其端口号告诉给客户端。

4、要传输数据时由客户端发送数据连接。

源端口:1026随机端口    目的端口:m

说明:被动连接解决了在防火墙的环境下处于内外区域的c/s之间无法通过ftp传输数据的问题。因为不管是控制连接还是数据连接都是先由客户端主动发起的,因此防火墙会话表里就含有彼此报文交互的五元组会话记录,当ftp要向客户端回复数据连接建立成功经过防火墙时,报文匹配会话五元组放行流量。

二、FTP数据两种传输模式

1、ASCLL传输方式:用于传输文本文件。如果用户使用的是windows系统,需要从unix系统搭建的服务器上下载一个文本文件。由于不同操作系统之间对文本内容文件的换行符表示的字符不同(如:win /r/n ,unix  /n)如果直接将unix的文本文件原样下载到win系统上,在win系统上查看文本内容时,文本之间将没有换行,在换行处会出现无法解析的乱码。因此ASCLL文本传输模式会自动将不同主机之间传输的文本文件中的换行符转换成本地的表示形式在存到本机。这样在向ftp服务器上传或下载文本文件后就不会出现换行处不换行,乱码的情况了。

2、Binary二进制传输形式:用于传输二进制文件。在此模式下不会对文件进行任何处理即保存文件的位序。因此如果下载的是二进制非文本文件,如果使用ASLL数据传输模式无疑会把二进制文件中原本的字符当换行符转换后破坏其整个二进制文件。

三、FTP用户分类

1、匿名用户:即anonymous用户。当客户端要访问ftp服务器时,可以在没有服务器用户名和密码的前提下,通过匿名用户访问ftp服务器的共享资源。

2、实体用户:指在ftp服务器上创建注册的本地账户。其用户在登录到ftp服务器后默认的当前工作目录为以自己命名的工作目录,可以修改。不仅可以访问ftp的共享资源,还可以访问其系统下该用户的其它资源。

3、虚拟用户:为了保证FTP服务器的安全性,由vsftpd服务器提供的非系统用户账号。虚拟用户FTP登录后将把指定的目录作为FTP根目录。虚拟用户与本地用户具有类似的功能,由于虚拟用户相对安全,因此正逐步替代本地用户账号的使用。

四、VSFTP配置案例

实验环境

VSFTP-Server

IP:192.168.200.254/24

VSFTP-Client

IP:192.168.200.28/24

4.1匿名开放模式

FTP-Server:

1、安装vsftp服务

FTP文件传输服务器,Linux系统运维,服务器,网络,运维,网络协议,linux,centos,计算机网络

2、查看vsftp服务相关配置文件

FTP文件传输服务器,Linux系统运维,服务器,网络,运维,网络协议,linux,centos,计算机网络

3、在客户机上安装ftp客户端工具,用于登录到ftp服务器

FTP文件传输服务器,Linux系统运维,服务器,网络,运维,网络协议,linux,centos,计算机网络

4、备份/etc/vsftpd/vsftpd.conf主配置文件、生成vsftp主配置文件、修改并添加匿名用户的配置参数

FTP文件传输服务器,Linux系统运维,服务器,网络,运维,网络协议,linux,centos,计算机网络

FTP文件传输服务器,Linux系统运维,服务器,网络,运维,网络协议,linux,centos,计算机网络

5、防火墙放行ftp服务,否则ftp拒绝用户登录;匿名用户默认登录到ftp服务器的主目录为/var/ftp/pub目录,授予匿名用户映射服务器的真实用户ftp的写权限,并设置selinux的布尔值参数,否则匿名用户无法创建上传文件。

FTP文件传输服务器,Linux系统运维,服务器,网络,运维,网络协议,linux,centos,计算机网络

6、开启vsftpd服务

FTP文件传输服务器,Linux系统运维,服务器,网络,运维,网络协议,linux,centos,计算机网络

7、客户端登录ftp服务器,下载并上传文件测试

FTP文件传输服务器,Linux系统运维,服务器,网络,运维,网络协议,linux,centos,计算机网络

FTP文件传输服务器,Linux系统运维,服务器,网络,运维,网络协议,linux,centos,计算机网络

4.2本地用户模式

FTP-Server:

1、安装vsftpd服务程序、备份主配置文件/etc/vsftpd/vsftpd.conf。前面已有做过,再此略过。

2、修改并添加主配置文件中本地用户相关配置参数,将之前实验的匿名用户登录关闭。与本地用户配置相关的主要参数local_enable=YES,write_enable=YES,local_umask=022其它可选。

FTP文件传输服务器,Linux系统运维,服务器,网络,运维,网络协议,linux,centos,计算机网络

3、创建用于客户端登录测试的ftp本地账户

FTP文件传输服务器,Linux系统运维,服务器,网络,运维,网络协议,linux,centos,计算机网络

4、防火墙放行ftp服务流量、设置selinux的布尔值策略、因为本地用户默认登录到ftp服务器工作主目录为自己的家目录,因此在自己的家目录拥有写入的权限。由于上面演示过了此处不在表述。

5、重启ftp服务

FTP文件传输服务器,Linux系统运维,服务器,网络,运维,网络协议,linux,centos,计算机网络

6、客户端使用测试本地账户ftpclient,登录ftp服务器进行测试。

FTP文件传输服务器,Linux系统运维,服务器,网络,运维,网络协议,linux,centos,计算机网络

FTP文件传输服务器,Linux系统运维,服务器,网络,运维,网络协议,linux,centos,计算机网络

FTP文件传输服务器,Linux系统运维,服务器,网络,运维,网络协议,linux,centos,计算机网络

7、客户端使用ftp系统的root用户登录到ftp服务器进行测试。

FTP文件传输服务器,Linux系统运维,服务器,网络,运维,网络协议,linux,centos,计算机网络

8、从ftp服务器黑名单中删除root用户,来允许其登录到ftp服务器

FTP文件传输服务器,Linux系统运维,服务器,网络,运维,网络协议,linux,centos,计算机网络

9、重启ftp服务、客户端使用root用户重新登录ftp测试。

FTP文件传输服务器,Linux系统运维,服务器,网络,运维,网络协议,linux,centos,计算机网络

10、去除ftp主配置文件中的chroot_local_user=YES根锁定参数,在用客户端登录测试。

FTP文件传输服务器,Linux系统运维,服务器,网络,运维,网络协议,linux,centos,计算机网络

4.3虚拟用户模式

VSFTP-Server:

1、在ftp服务器的/etc/vsftpd目录下创建包含有虚拟账户和其密码的文件。

FTP文件传输服务器,Linux系统运维,服务器,网络,运维,网络协议,linux,centos,计算机网络

2、使用db-load命令将创建的虚拟用户信息文件转化成vsftpd服务可以直接加载的数据库文件。

FTP文件传输服务器,Linux系统运维,服务器,网络,运维,网络协议,linux,centos,计算机网络

3、创建用于虚拟用户权限身份验证的PAM文件(文件名任意),将刚才生成的虚拟用户信息数据库文件关联到PAM认证文件内。

FTP文件传输服务器,Linux系统运维,服务器,网络,运维,网络协议,linux,centos,计算机网络

4、创建虚拟用户映射到ftp服务器的真实账户,并通过指定真实用户的家目录来映射虚拟目录登录到服务器的主目录。并修改权限允许其它人查看,但不能修改其虚拟用户的文件。

FTP文件传输服务器,Linux系统运维,服务器,网络,运维,网络协议,linux,centos,计算机网络

FTP文件传输服务器,Linux系统运维,服务器,网络,运维,网络协议,linux,centos,计算机网络

5、在vsftp主配置文件中配置虚拟用户的相关参数。指定之前创建的PAM认证文件以及与虚拟用户关联的本地用户。

FTP文件传输服务器,Linux系统运维,服务器,网络,运维,网络协议,linux,centos,计算机网络

6、给虚拟用户配置不同的权限,如:只允许vuser1查看文件,而允许vuser2上传、创建、修改、查看、删除文件。这种需求在企业真实环境中是常见的,我们可以通过vsftpd服务器程序来实现。

6.1、修改vsftpd主配置文件,过添加 user_config_dir参数来定义这两个虚拟用户不同权限的配置文件所存放的路径。

FTP文件传输服务器,Linux系统运维,服务器,网络,运维,网络协议,linux,centos,计算机网络

*标注下滑线是配置虚拟用户所使用到的配置参数。

6.2、在/etc/vsftpd/respective目录下创建分别以虚拟用户名命名的配置文件(使vsftp通过虚拟用户名来找到各自的权限配置文件),并写入相应的权限。

FTP文件传输服务器,Linux系统运维,服务器,网络,运维,网络协议,linux,centos,计算机网络

7、重启vsftpd服务,使配置文件立即生效。

FTP文件传输服务器,Linux系统运维,服务器,网络,运维,网络协议,linux,centos,计算机网络

VSFTP-Client:

1、使用vuser1登录测试验证其是否具有创建目录权限。

FTP文件传输服务器,Linux系统运维,服务器,网络,运维,网络协议,linux,centos,计算机网络

2、使用vuser2登录测试其是否具有创建、删除、修改、上传文件权限。

FTP文件传输服务器,Linux系统运维,服务器,网络,运维,网络协议,linux,centos,计算机网络

五、实验总结

(1)配置了虚拟用户登录后,本地用户登录就会失效。可以通过修改PAM认证文件调用的模块函数库可以解决。

(2)vsftpd主配置文件中必须要开启本地登录模式。如果不开,将报错,提示本地模式和匿名模式必须开启一个,显然虚拟用户模式就是为了提高安全,因此我们不开匿名模式而开启本地模式。

(3)2.6.4节中的主配置文件参数allow_writeable_chroot=YES必须开启如果不开将报错。

(4)防火墙影响ftp登录,默认情况防火墙策略阻止了ftp端口,ftp客户端登录将得到“无法路由到主机”的报错。

(5)SELinux阻止文件创建,本来vuser2是有创建文件权限的,但是由于受到默认SELinux策略影响,将不能创建文件。此时需要在ftp服务器执行:setsebool -P ftpd_full_access=off命令即可。

@声明:“山月润无声”博主知识水平有限,以上文章如有不妥之处,欢迎广大IT爱好者指正,小弟定当虚心受教!文章来源地址https://www.toymoban.com/news/detail-686579.html

到了这里,关于FTP文件传输服务器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • windows10ftp搭建,实现主机与虚拟机文件传输文件,以及解决FTP文件夹错误,无法与服务器建立连接。

    1.我是用的win10虚拟机来搭建ftp 首先,打开控制面板,点击程序 2.选择启用或关闭Windows功能 3.勾选以下选项,点击确定。这一步的主要目的是开启IIS管理控制台 进入等待 4.搜索IIS管理器,双击打开  5.右击网站,选择添加FTP站点  6.这时弹出下面界面, FTP站点名称 任意填写,

    2024年02月08日
    浏览(56)
  • Ubuntu与Windows通讯传输文件(FTP服务器版)(没用的方法,无法施行)

    本文介绍再Windows主机上建立FTP服务器,并且在Ubuntu虚拟机上面访问Windows上FTP服务器的方法   只要按照上图配置就可以了 第二部:打开IIS管理控制台  右击网站,新建FTP站点。需要注意的一点是在填写IP地址的时候,只需要填写Windows本机的IP地址就可以了,不需要管虚拟机的

    2024年02月04日
    浏览(47)
  • linux远程服务器和本地服务器相互之间传输文件方法SSH(乌班图系统)

    提前知道几点 : 1.使用的 MobaXterm软件 2.访问本地、远程服务器,需要账号和密码(远程机器上的 用户名和密码 远程机器的 IP 地址或主机名(在同一子网上))。每次访问需要输入密码,可以搜 Ubuntu SSH 免密登录 3.主要是先要访问本地服务器,才能访问远端服务器,显卡装

    2024年02月15日
    浏览(56)
  • 【Linux】FTP文件服务器

    FTP (File transfer protocol) 是TCP/IP 协议组中的协议之一。他最主要的功能是在服务器与客户端之间进行文件的传输。FTP就是实现两台计算机之间的拷贝,从远程计算机拷贝文件至自己的计算机上,称之为“下载 (download)”文件。将文件从自己计算机中拷贝至远程计算机上,则称

    2024年02月10日
    浏览(55)
  • linux服务器间文件传输

            当对服务器应用或文件进行迁移时,一般的方法是找一台电脑,先把文件从A服务器下载到电脑,然后再从电脑上传到B服务器。但这样传有几个问题:         1、步骤繁琐,必须通过电脑作为中介         2、需要安装额外的软件,比如winscp、FileZilla 等传输工具  

    2024年02月10日
    浏览(47)
  • 【运维】Linux 跨服务器复制文件文件夹

    如果是云服务 建议用内网ip scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速度。当你服务器硬盘变为只读 read only system时,用scp可以帮你把文件移出来

    2024年02月08日
    浏览(66)
  • linux 服务器之间传输文件的方式

    情景:有时迁移项目,一般人就想到需要在服务器下载到win本地电脑上面,再上传到目的服务器,这样若是文件大,下载的速度都足够让你歇一天了。遇到这问题,怎么解决呢? 方法1:scp 【优点】 简单方便,安全可靠;支持限速参数 【缺点】 不支持排除目录 【用法】 s

    2024年02月07日
    浏览(43)
  • linux服务器之间跳转、传输文件

    示例1 直接连接远程主机端口 前提条件: 两台服务器A、B;当前所在位置:服务器A;SSH服务已安装。 判断: 在服务器A中执行命令 ping B的IP地址 ,在能ping通的前提条件下 进入服务器A后,输入: 主机名:要跳转的Linux服务器的主机名 IP:要跳转的Linux服务器的ip地址 或者:

    2024年02月01日
    浏览(78)
  • Linux如何在本地/服务器间传输文件

    现在的很多远程连接工具比如XShell或MobaXterm都有提供上传和下载的功能,除此之外,一些Linux终端的命令比如scp、sftp也可以实现这类功能,并且更为灵活和便捷,不但可以满足本地与服务器之间的传输,也能在两台远程服务器之间相互传送文件。下面介绍scp的一些用法。 这里

    2024年02月10日
    浏览(45)
  • vsftpd安装配置,Linux系统配置FTP服务器教程(CentOS 7)

    vsftpd(very secure FTP daemon)是Linux下的一款小巧轻快、安全易用的FTP服务器软件 。今天飞飞将和你分享 Linux 系统 安装并配置vsftpd ,搭建FTP环境 。 先让我们来认识下FTP! FTP(File Transfer Protocol)是一种文件传输协议,基于客户端/服务器架构,支持以下两种工作模式: 主动

    2024年02月09日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包