FTP基础

什么是FTP

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

FTP的运行机制

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

FTP的连接模式和传输模式

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

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的文章会提及。(博文更新后,我会来附一条连接)

FTP的用户类型

匿名用户
“ftp”或者“anonymous”。
这类用户是指在FTP服务器中没有指定帐户,但是其仍然可以进行匿名访问某些公开的资源。
为什么要用匿名用户?

  • 默认情况下,FTP服务器会把建立的所有帐户都归属为真实用户。
  • 但是,这往往不符合企业安全的需要。给其他用户所在的空间带来一定的安全隐患。
    值得注意的是,匿名FTP不适用于所有FTP服务器,它只适用于那些提供了这项服务的服务器。
    本地(真实)用户
    是FTP服务器本机的系统用户账号。
    当这类用户登录FTP服务器的时候,其默认的主目录就是其帐号命名的目录。
    但是,其还可以变更到其他目录中去。如系统的主目录等等。
    当开放本地账户的时候,我们往往会做chroot(禁锢家目录)来保证安全。具体的配置在接下来的文章有讲解。
    虚拟用户
    账号信息存放在独立的文件或者数据库内。
    不是本地账号,不能登陆操作系统,安全性比较高。
    虚拟用户的特点:
  • 只能访问服务器为其提供的FTP服务,而不能访问系统的其它资源。
  • 所以,如果想让用户对FTP服务器站内具有写权限(可以上传数据到服务器),但又不允许访问系统其它资源,可以使用虚拟用户来提高系统的安全性。
  • 创建虚拟用户需要使用pam,等我的博文更新到pam的时候,会做一个链接。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值