Chinaunix首页 | 论坛 | 博客
  • 博客访问: 131521
  • 博文数量: 44
  • 博客积分: 171
  • 博客等级: 入伍新兵
  • 技术积分: 441
  • 用 户 组: 普通用户
  • 注册时间: 2011-05-20 01:02
文章分类
文章存档

2013年(37)

2012年(7)

我的朋友

分类: LINUX

2013-04-18 09:34:06

FTP服务器使用了两个联机,分别是命令信道与数据流通道(ftp-data).

主动式 (active) 联机模式
1.建立命令通道的联机
客户端会随机取一个大于1024以上的端口来与FTP服务器端的port21达成联机,达成联机后客户端便可以透过这个联机来对FTP服务器下达指令,包括查询文件名、下载、上传等指令都是利用这个通道来下达的;

2.FTP服务器端使用主动式(active且告知连接的端口号)
FTP 服务器的 21 端口主要用在命令的下达,但是当牵涉到数据流时,就不是使
用这个联机了。 客户端在需要数据的情况下,会告知服务器端要用什么方式来
联机,如果是主动式 (active) 联机时, 客户端会先随机启用一个端口,且透过命令通道告知 FTP 服务器这两个信息,并等待 FTP 服务器的联机;

3. FTP 服务器[主动]向客户端联机
FTP 服务器由命令通道了解客户端的需求后,会主动的由 20 这个端口向客户端
来进行联机, 这个联机当然也会经过三向交握啦!此时 FTP 的客户端与
服务器端共会建立两条联机,分别用在命令的下达与数据的传递。 而预设 FTP 
服务器端使用的主动联机端口号就是 port 20 啰!

如此一来则成功的建立起[命令]与[数据传输]两个信道!不过,要注意的是,
[数据传输信道]是在有数据传输的行为时才会建立的通道喔!并不是一开始连接到
FTP 服务器就立刻建立的通道呢!留意一下啰!

被动式联机模式 passive

那么什么是被动式联机呢?

1. 用户与服务器建立命令信道:

同样的需要建立命令通道,透过三向交握就可以建立起这个通道了。
2. 客户端发出 PASV 的联机要求:
当有使用数据信道的指令时,客户端可透过命令通道发出 PASV 的被动式联机要
求 (Passive 的缩写), 并等待服务器的回应;
3.FTP 服务器启动数据端口口,并通知客户端联机:
如果你的 FTP 服务器是能够处理被动式联机的,此时 FTP 服务器会先启动一个
埠口在监听。 这个端口口号码可能是随机的,也可以自定义某一范围的端口号,

端看你的 FTP 服务器软件而定。 然后你的 FTP 服务器会透过命令通道告知客
户端该已经启动的埠口 (图中的 port PASV), 并等待客户端的联机。
4.    客户端随机取用大于 1024 的埠口进行连接:
然后你的客户端会随机取用一个大于 1024 的端口号来对主机的 port PASV 联
机。 如果一切都顺利的话,那么你的 FTP 数据就可以透过 port BB 及 port 
PASV 来传送了。
发现上面的不同点了吗?被动式 FTP 数据信道的联机方向是由客户端向服务器端
联机的喔!  如此一来,在 NAT 内部的客户端主机就可以顺利的连接上 FTP Server 了!
但是,万一 FTP 主机也是在 NAT 后端那怎么办...呵呵!那可就糗了吧~ @_@这里就
牵涉到更深入的 DMZ 技巧了,我们这里暂不介绍这些深入的技巧,先理解一下这些特
殊的联机方向, 这将有助于你未来服务器架设时候的考虑因素喔!
此外,不晓得你有无发现,透过 PASV 模式,服务器在没有特别设定的情况下,会
随机选取大于 1024 的埠口来提供客户端连接之用。那么万一服务器启用的埠口被搞鬼
怎么办?而且, 如此一来也很难追踪来自入侵者攻击的登录信息啊!所以,这个时候
我们可以透过 passive ports 的功能来『限定』服务器启用的 port number 喔!
阅读(1268) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~