什么是FTP?

转自:https://blog.csdn.net/beginner_yao/article/details/50936255

  1. 什么是FTP

    • FTP(File Transfer Protocol)是文件传输协议,使用TCP来传输。
    • 基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。
    • FTP使用中的两个概念:上传和下载。
    • “下载”文件就是从远程主机拷贝文件至自己的计算机上;”上传”文件就是将文件从自己的计算机中拷贝至远程主机上。简单的来说就是“上传”和“下载”文件。
  2. FTP的运行机制

    • FTP是一个C/S(Client/Server)架构的网络服务。
    • FTP的运行顺序:
      • 用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。
      • 用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。
      • 客户机程序代表用户接收到这个文件,将其存放在用户目录中。
    • FTP会话属于复合TCP连接,主动模式中开放20和21端口。
      • 控制连接: TCP port 21 ,负责发送FTP的命令信息(比如说登陆的指定,用户名和密码等)。
      • 数据连接: TCP port 20 ,负责上传/下载数据。
  3. FTP的连接模式和传输模式

    • 数据的连接模式,分为主动模式和被动模式。
    • 数据的传输模式,分别为ASCII模式(文本序列)和Binary(二进制)模式。
  4. FTP的主动模式和被动模式

    • 主动模式(Standard,PORT):

      • 主动模式的工作顺序:
        - Client先和Server通过21端口建立连接;
        - Client向Server发送指令,指令中包含了Client要通过 N 号端口来传输什么数据;
        - Server打开自己的20端口,去 主动连接 Client的 N 号端口来传输数据。
      • 缺点:
        - 主动FTP 对FTP服务器的管理有利,但 对客户端的管理不利
        - 因为FTP服务器企图与客户端的高位随机端口建立连接,而这个端口很有可能被客户端的防火墙阻塞掉。
    • 为了解决服务器发起到客户的连接的问题,人们开发了一种不同的FTP连接方式。当客户端通知服务器它处于被动模式时才启用。

    • 被动模式(Passive,PASV):
      • 被动模式的工作顺序:
        - 建立连接的方式和主动模式相同;
        - 建立连接后,与主动方式不同,Client不会提交PORT命令并允许Server来回连它的数据端口,而是提交 PASV命令。
        - Server会开启一个任意的非特权端口(P > 1024),并发送PORT P命令给Client。
        - Client发起从本地端口到Server的端口 P 的连接用来传送数据。
      • 缺点:
        - 被动FTP 对FTP服务器的管理不利,但对客户端的管理有利
        - 因为客户端要与服务器端建立两个连接,其中一个连到一个大于1024的随机端口,而这个端口很有可能被服务器端的防火墙阻塞掉。
    • 既然我们是做服务的,就要有一种原则,就是麻烦自己,服务客户。
    • 关于如何配置被动模式的防火墙规则,以后关于iptables的文章会提及。(博文更新后,我会来附一条连接)
  5. FTP的用户类型

    • 匿名用户
      • “ftp”或者“anonymous”。
      • 这类用户是指在FTP服务器中没有指定帐户,但是其仍然可以进行匿名访问某些公开的资源。
      • 为什么要用匿名用户?
        - 默认情况下,FTP服务器会把建立的所有帐户都归属为真实用户。
        - 但是,这往往不符合企业安全的需要。给其他用户所在的空间带来一定的安全隐患。
      • 值得注意的是,匿名FTP不适用于所有FTP服务器,它只适用于那些提供了这项服务的服务器。
    • 本地(真实)用户
      • 是FTP服务器本机的系统用户账号。
      • 当这类用户登录FTP服务器的时候,其默认的主目录就是其帐号命名的目录。
      • 但是,其还可以变更到其他目录中去。如系统的主目录等等。
      • 当开放本地账户的时候,我们往往会做chroot(禁锢家目录)来保证安全。具体的配置在接下来的文章有讲解。
    • 虚拟用户
      • 账号信息存放在独立的文件或者数据库内。
      • 不是本地账号,不能登陆操作系统,安全性比较高。
      • 虚拟用户的特点:
        - 只能访问服务器为其提供的FTP服务,而不能访问系统的其它资源。
        - 所以,如果想让用户对FTP服务器站内具有写权限(可以上传数据到服务器),但又不允许访问系统其它资源,可以使用虚拟用户来提高系统的安全性。
        - 创建虚拟用户需要使用pam,等我的博文更新到pam的时候,会做一个链接。
        <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/markdown_views-ea0013b516.css">
            </div>
  1. 什么是FTP

    • FTP(File Transfer Protocol)是文件传输协议,使用TCP来传输。
    • 基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。
    • FTP使用中的两个概念:上传和下载。
    • “下载”文件就是从远程主机拷贝文件至自己的计算机上;”上传”文件就是将文件从自己的计算机中拷贝至远程主机上。简单的来说就是“上传”和“下载”文件。
  2. FTP的运行机制

    • FTP是一个C/S(Client/Server)架构的网络服务。
    • FTP的运行顺序:
      • 用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。
      • 用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。
      • 客户机程序代表用户接收到这个文件,将其存放在用户目录中。
    • FTP会话属于复合TCP连接,主动模式中开放20和21端口。
      • 控制连接: TCP port 21 ,负责发送FTP的命令信息(比如说登陆的指定,用户名和密码等)。
      • 数据连接: TCP port 20 ,负责上传/下载数据。
  3. FTP的连接模式和传输模式

    • 数据的连接模式,分为主动模式和被动模式。
    • 数据的传输模式,分别为ASCII模式(文本序列)和Binary(二进制)模式。
  4. FTP的主动模式和被动模式

    • 主动模式(Standard,PORT):

      • 主动模式的工作顺序:
        - Client先和Server通过21端口建立连接;
        - Client向Server发送指令,指令中包含了Client要通过 N 号端口来传输什么数据;
        - Server打开自己的20端口,去 主动连接 Client的 N 号端口来传输数据。
      • 缺点:
        - 主动FTP 对FTP服务器的管理有利,但 对客户端的管理不利
        - 因为FTP服务器企图与客户端的高位随机端口建立连接,而这个端口很有可能被客户端的防火墙阻塞掉。
    • 为了解决服务器发起到客户的连接的问题,人们开发了一种不同的FTP连接方式。当客户端通知服务器它处于被动模式时才启用。

    • 被动模式(Passive,PASV):
      • 被动模式的工作顺序:
        - 建立连接的方式和主动模式相同;
        - 建立连接后,与主动方式不同,Client不会提交PORT命令并允许Server来回连它的数据端口,而是提交 PASV命令。
        - Server会开启一个任意的非特权端口(P > 1024),并发送PORT P命令给Client。
        - Client发起从本地端口到Server的端口 P 的连接用来传送数据。
      • 缺点:
        - 被动FTP 对FTP服务器的管理不利,但对客户端的管理有利
        - 因为客户端要与服务器端建立两个连接,其中一个连到一个大于1024的随机端口,而这个端口很有可能被服务器端的防火墙阻塞掉。
    • 既然我们是做服务的,就要有一种原则,就是麻烦自己,服务客户。
    • 关于如何配置被动模式的防火墙规则,以后关于iptables的文章会提及。(博文更新后,我会来附一条连接)
  5. FTP的用户类型

    • 匿名用户
      • “ftp”或者“anonymous”。
      • 这类用户是指在FTP服务器中没有指定帐户,但是其仍然可以进行匿名访问某些公开的资源。
      • 为什么要用匿名用户?
        - 默认情况下,FTP服务器会把建立的所有帐户都归属为真实用户。
        - 但是,这往往不符合企业安全的需要。给其他用户所在的空间带来一定的安全隐患。
      • 值得注意的是,匿名FTP不适用于所有FTP服务器,它只适用于那些提供了这项服务的服务器。
    • 本地(真实)用户
      • 是FTP服务器本机的系统用户账号。
      • 当这类用户登录FTP服务器的时候,其默认的主目录就是其帐号命名的目录。
      • 但是,其还可以变更到其他目录中去。如系统的主目录等等。
      • 当开放本地账户的时候,我们往往会做chroot(禁锢家目录)来保证安全。具体的配置在接下来的文章有讲解。
    • 虚拟用户
      • 账号信息存放在独立的文件或者数据库内。
      • 不是本地账号,不能登陆操作系统,安全性比较高。
      • 虚拟用户的特点:
        - 只能访问服务器为其提供的FTP服务,而不能访问系统的其它资源。
        - 所以,如果想让用户对FTP服务器站内具有写权限(可以上传数据到服务器),但又不允许访问系统其它资源,可以使用虚拟用户来提高系统的安全性。
        - 创建虚拟用户需要使用pam,等我的博文更新到pam的时候,会做一个链接。
        <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/markdown_views-ea0013b516.css">
            </div>

猜你喜欢

转载自blog.csdn.net/hunjiancuo5340/article/details/80870186