2022年主动FTP vs. 被动FTP 权威解释FTP服务器教程.docx
-
资源ID:61849762
资源大小:14.43KB
全文页数:9页
- 资源格式: DOCX
下载积分:9.9金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
2022年主动FTP vs. 被动FTP 权威解释FTP服务器教程.docx
2022年主动FTP vs. 被动FTP 权威解释FTP服务器教程摘要:主动FTP vs. 被动FTP 权威说明感谢b:ab43763758pidan/b:ab43763758和b:ab43763758missing-cn/b:ab43763758翻译本文!原文地址wolfg 回复于:2022-07-09 22:34:58b:1ce3d48ea7size=18:1ce3d48ea7主动FTP与被动FTP权威说明/size:1ce3d48ea7/b:1ce3d48ea7b:1ce3d48ea7size=16:1ce3d48ea7书目/size:1ce3d48ea7/b:1ce3d48ea7list:1ce3d48ea7*:1ce3d48ea7开场白*:1ce3d48ea7基础*:1ce3d48ea7主动FTP*:1ce3d48ea7主动FTP的例子*:1ce3d48ea7被动FTP*:1ce3d48ea7被动FTP的例子*:1ce3d48ea7总结*:1ce3d48ea7参考资料*:1ce3d48ea7附录1:配置常见FTP服务器/list:u:1ce3d48ea7b:1ce3d48ea7size=16:1ce3d48ea7开场白/size:1ce3d48ea7/b:1ce3d48ea7处理防火墙和其他网络连接问题时最常见的一个难题是主动FTP与被动FTP的区分以及如何完备地支持它们。幸运地是,本文能够帮助你清除在防火墙环境中如何支持FTP这个问题上的一些混乱。本文或许不像题目声称的那样是一个权威说明,但我已经听到了许多好的反馈看法,也看到了本文在很多地方被引用,知道了许多人都认为它很有用。虽然我始终在找寻改进的方法,但假如你发觉某个地方讲的不够清晰,须要更多的说明,请告知我!最近的修改是增加了主动FTP和被动FTP会话中吩咐的例子。这些会话的例子应当对更好地理解问题有所帮助。例子中还供应了特别棒的图例来说明FTP会话过程的步骤。现在,正题起先了.b:1ce3d48ea7size=16:1ce3d48ea7基础/size:1ce3d48ea7/b:1ce3d48ea7FTP是仅基于TCP的服务,不支持UDP。别出心裁的是FTP运用2个端口,一个数据端口和一个吩咐端口(也可叫做限制端口)。通常来说这两个端口是21吩咐端口和20数据端口。但当我们发觉依据(FTP工作)方式的不同数据端口并不总是20时,混乱产生了。b:1ce3d48ea7size=16:1ce3d48ea7主动FTP/size:1ce3d48ea7/b:1ce3d48ea7主动方式的FTP是这样的:客户端从一个随意的非特权端口N(N>1024)连接到FTP服务器的吩咐端口,也就是21端口。然后客户端起先监听端口N+1,并发送FTP吩咐“portN+1”到FTP服务器。接着服务器会从它自己的数据端口(20)连接到客户端指定的数据端口(N+1)。针对FTP服务器前面的防火墙来说,必需允许以下通讯才能支持主动方式FTP:list=1:1ce3d48ea7*:1ce3d48ea7任何端口到FTP服务器的21端口(客户端初始化的连接S<-C)*:1ce3d48ea7FTP服务器的21端口到大于1024的端口(服务器响应客户端的限制端口S->C)*:1ce3d48ea7FTP服务器的20端口到大于1024的端口(服务器端初始化数据连接到客户端的数据端口S->C)*:1ce3d48ea7大于1024端口到FTP服务器的20端口(客户端发送ACK响应到服务器的数据端口S<-C)/list:o:1ce3d48ea7画出来的话,连接过程也许是下图的样子:img:1ce3d48ea7在第1步中,客户端的吩咐端口与FTP服务器的吩咐端口建立连接,并发送吩咐“PORT1027”。然后在第2步中,FTP服务器给客户端的吩咐端口返回一个"ACK"。在第3步中,FTP服务器发起一个从它自己的数据端口(20)到客户端从前指定的数据端口(1027)的连接,最终客户端在第4步中给服务器端返回一个"ACK"。主动方式FTP的主要问题事实上在于客户端。FTP的客户端并没有实际建立一个到服务器数据端口的连接,它只是简洁的告知服务器自己监听的端口号,服务器再回来连接客户端这个指定的端口。对于客户端的防火墙来说,这是从外部系统建立到内部客户端的连接,这是通常会被堵塞的。b:1ce3d48ea7size=16:1ce3d48ea7主动FTP的例子/size:1ce3d48ea7/b:1ce3d48ea7下面是一个主动FTP会话的实际例子。当然服务器名、IP地址和用户名都做了改动。在这个例子中,FTP会话从(192.168.150.80),一个运行标准的FTP吩咐行客户端的Linux工作站,发起到(192.168.150.90),一个运行ProFTPd1.2.2RC2的Linux工作站。debugging(-d)选项用来在FTP客户端显示连接的具体过程。红色的文字是debugging信息,显示的是发送到服务器的实际FTP吩咐和所产生的回应信息。服务器的输出信息用黑色字表示,用户的输入信息用粗体字表示。细致考虑这个对话过程我们会发觉一些好玩的事情。我们可以看到当PORT吩咐被提交时,它指定了客户端(192.168.150.80)上的一个端口而不是服务器的。当我们用被动FTP时我们会看到相反的现象。我们再来关注PORT吩咐的格式。就象你在下面的例子看到的一样,它是一个由六个被逗号隔开的数字组成的序列。前四个表示IP地址,后两个组成了用于数据连接的端口号。用第五个数乘以256再加上第六个数就得到了实际的端口号。下面例子中端口号就是(14*256)+178)=3762。我们可以用netstat来验证这个端口信息。testbox1:{/home/p-t/slacker/public_html}%b:1ce3d48ea7ftp-dtestbox2/b:1ce3d48ea7C.FTPserverready.Name(testbox2:slacker):b:1ce3d48ea7slacker/b:1ce3d48ea7color=#FF0000:1ce3d48ea7->USERslacker/color:1ce3d48ea7331Passwordrequiredforslacker.Password:b:1ce3d48ea7TmpPass/b:1ce3d48ea7color=#FF0000:1ce3d48ea7->PASSXXXX/color:1ce3d48ea7230Userslackerloggedin.color=#FF0000:1ce3d48ea7->SYST215UNIXType:L8/color:1ce3d48ea7RemotesystemtypeisUNIX.Usingbinarymodetotransferfiles.ftp>b:1ce3d48ea7ls/b:1ce3d48ea7color=#FF0000:1ce3d48ea7ftp:setsockopt(ignored):Permissiondenied->PORT192,168,150,80,14,178/color:1ce3d48ea7200PORTcommandsuccessful.color=#FF0000:1ce3d48ea7->LIST/color:1ce3d48ea7150OpeningASCIImodedataconnectionforfilelist.drwx-3slackerusers104Jul2701:45public_html226Transfercomplete.ftp>b:1ce3d48ea7quit/b:1ce3d48ea7color=#FF0000:1ce3d48ea7->QUIT/color:1ce3d48ea7221Goodbye.b:1ce3d48ea7size=16:1ce3d48ea7被动FTP/size:1ce3d48ea7/b:1ce3d48ea7为了解决服务器发起到客户的连接的问题,人们开发了一种不同的FTP连接方式。这就是所谓的被动方式,或者叫做PASV,当客户端通知服务器它处于被动模式时才启用。在被动方式FTP中,吩咐连接和数据连接都由客户端,这样就可以解决从服务器到客户端的数据端口的入方向连接被防火墙过滤掉的问题。当开启一个FTP连接时,客户端打开两个随意的非特权本地端口(N>1024和N+1)。第一个端口连接服务器的21端口,但与主动方式的FTP不同,客户端不会提交PORT吩咐并允许服务器来回连它的数据端口,而是提交PASV吩咐。这样做的结果是服务器会开启一个随意的非特权端口(P>1024),并发送PORTP吩咐给客户端。然后客户端发起从本地端口N+1到服务器的端口P的连接用来传送数据。对于服务器端的防火墙来说,必需允许下面的通讯才能支持被动方式的FTP:list=1:1ce3d48ea7*:1ce3d48ea7从任何端口到服务器的21端口(客户端初始化的连接S<-C)*:1ce3d48ea7服务器的21端口到任何大于1024的端口(服务器响应到客户端的限制端口的连接S->C)*:1ce3d48ea7从任何端口到服务器的大于1024端口(入;客户端初始化数据连接到服务器指定的随意端口S<-C)*:1ce3d48ea7服务器的大于1024端口到远程的大于1024的端口(出;服务器发送ACK响应和数据到客户端的数据端口S->C)/list:o:1ce3d48ea7画出来的话,被动方式的FTP连接过程也许是下图的样子:img:1ce3d48ea7在第1步中,客户端的吩咐端口与服务器的吩咐端口建立连接,并发送吩咐“PASV”。然后在第2步中,服务器返回吩咐"PORT2024",告知客户端(服务器)用哪个端口侦听数据连接。在第3步中,客户端初始化一个从自己的数据端口到服务器端指定的数据端口的数据连接。最终服务器在第4步中给客户端的数据端口返回一个"ACK"响应。被动方式的FTP解决了客户端的很多问题,但同时给服务器端带来了更多的问题。最大的问题是须要