這裡蒐索程式師資訊,查找有用的技術資料
当前位置:首页 » 文件传输 » ftp服务器文件防盗链
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

ftp服务器文件防盗链

发布时间: 2022-09-19 16:45:47

① 什么是FTP下载

HTTP和FTP是两种网络传输协议的缩写,FTP是File Transportation Protocol(文件传输协议)的缩写,而HTTP则是Hyper Text Transportation Protocol(超文本传输协议)的缩写,它们是计算机之间交换数据的方式,也是两种最经典的文件下载方式。FTP专门用来下载,而HTTP的主要工作是用来浏览网页,不过也能用来下载。这两种下载方式的原理并不复杂,就是用户按照一定的规则(协议)和提供文件的服务器取得联系并将文件搬到自己的计算机中来。FTP下载方式最古老,在没有WWW的日子里,FTP就已经广为使用了。HTTP出现的较晚,但现在也应用的相当广泛。其实,如果你仅仅是为了下载而下载,那么你完全没必要把他们分的那么清,这两种使用的下载方式、下载工具几乎是一模一样的。

在进行FTP或者HTTP下载之前你必须获得有效的资源链接或者服务器地址。比如,FTP下载链接通常是这样的:

ftp://ftp.ftpserver.com/1/2/3/file.exe或者ftp://20.102.192.34/1/2/3/file.exe

来看一下这个地址的结构,这里有很多斜杠(“ /”),是不是有些似曾相识的感觉?其实他们的作用和Windows中用来表示目录的反斜杠(“”)的作用是完全一样的。理解了这一点,这个FTP下载链接的含义就很清楚了,它代表某个服务器(服务器既可以用域名ftp.ftpserver.com来表示,也可以用IP地址来表示202.102.192.34,他们的作用是完全一样的)上,子目录1/2/3(三个斜杠代表三个子目录)下面的一个名称文件为file.exe的文件。

有时候,你可能得的FTP地址相识被砍去了尾巴的,比如

ftp://ftp.ftpserver.com/或者ftp://20.102.192.34/

这个地址没有告诉你具体能够下载的内容,利用这个地址可以连接上FTP服务器看他有哪些文件然后由选择地进行下载。

需要特别提一点,所有的FTP服务器都是需要帐号和密码才能登录的。不过有相当一部分FTP服务器提供了匿名登录,对于这些服务器我们可以使用通用的帐号和密码登录(通常是帐号Anonymous密码anonymous),也许你登录这些FTP服务器是没有提示你输入帐号和密码,实际上Windows或者FTP软件自动帮你完成了匿名登陆操作。

还有一部分FTP服务器出于各种原因,没有提供匿名登录,那么你就需要手工登录了。假设我们在FTP服务器ftp://20.102.192.34/上有一组帐号和密码是user和password,那么如何才能够登录呢?这里有一个非常简便的方法,在IE的地址栏中输入:user:password@ftp://20.102.192.34就可以登录了。
简单总结一下,FTP(或者HTTP)下载链接无非三种:

带文件名的

不带文件名

带帐号和密码的

IE直接下载

Http方式

前面说过,Http是超文本传输协议,我们平常上网的浏览器(比如IE)的“本职工作”就是解读按照这种协议制作的网页。Web网页上的各种资源都有一个URL,比方说某个图片的URL是http://www.aaa.com/a.jpg,某个页面的URL是http://www.aaa.com/default.html等等。当IE看到这些URL时,他会将其显示出来。但是如果碰到http://www.aaa.com/a.exe这种扩展名为exe的文件怎么办呢?这种文件可不能“显示”出来,否则就以一堆乱码,这时IE会弹出一个对话框�视没�欠褚��募�4娴奖镜兀�略鼐褪钦庋��嫉摹?

1、在页面上单击一个提供下载的链接

2、设置一个文件名和保存位置然后单击“保存”按钮。

3、当显示“下载完毕”后,你可以直接单击“打开”按钮将下载的文件打开,也可以单击“打开文件夹”打开下载文件所在的文件夹。

很多人都喜欢采用在文件链接上单击鼠标右键选择“目标另存为”的方式进行下载,如下图。通常这种方式和直接单击链接效果相同,但是要特别注意一个问题,现在很多提供软件下载的网站都有防盗链功能,因此直接使用“目标另存为”的方法可能无法成功下载。经常是,明明想下载的是一个EXE文件,可是一旦“目标另存为”之后就变成了一个HTML文件。对于这种情况一般没有特别有效的应付方法,只能使用左键单击的方式进行下载。

FTP方式

在IE中也可以直接访问FTP网站,假设我们知道了一个匿名FTP站点的地址是redhat.secsup.org,我们可以按照下面的步骤来访问这个站点。

1、在浏览器的地址栏中输入ftp://redhat.secsup.org来登录该FTP站点。强调一下,直接输入这样的地址的前提是,FTP站点必须是匿名的。如果是非匿名的FTP,必须按照前面在“说点原理”那个小节中说的方式把用户名和密码也带上。

② 如何保证文件传输服务器FTP的安全

,系统的安全性是非常重要的,这是建立FTP服务器者所考虑的第一个问题。其安全性主要包括以下几个方面:一、 未经授权的用户禁止在服务器上进行FTP操作。
二、 FTP用户不能读取未经系统所有者允许的文件或目录。
三、 未经允许,FTP用户不能在服务器上建立文件或目录。
四、 FTP用户不能删除服务器上的文件或目录。
只有在服务器的/etc/passwd文件中存在名为"FTP"的用户时,服务器才可以接受匿名FTP连接,匿名FTP用户可以使用"anonymous"或"FTP"作为用户名,自己的Internet电子邮件地址作为保密字。为了解决上述安全性的另外三个问题,应该对FTP主目录下的文件属性进行管理,建议对每个目录及其文件采取以下一些措施:FTP主目录:将这个目录的所有者设为"FTP",并且将属性设为所有的用户都不可写,防止不怀好意的用户删改文件。
FTP/bin目录:该目录主要放置一些系统文件,应将这个目录的所有者设为"root"(即超级用户),并且将属性设为所有的用户都不可写。为保证合法用户可显示文件,应将目录中的ls文件属性设为可执行。
FTP/etc目录:将这个目录的所有者设为"root",并且将属性设为所有的用户都不可写。将目录下的group文件和passwd文件的属性设为所有用户只读属性,并用编辑器将passwd文件中用户加过密的口令删掉。
###NextPage###FTP/pub目录:将这个目录的所有者置为"FTP",并且将它的属性设为所有用户均可读、写、执行。
这样经过设置,既保证了系统文件不被删改,又保证了FTP合法用户的正常访问。
作为Internet上的FTP服务器,系统的安全性是非常重要的,这是建立FTP服务器者所考虑的第一个问题。其安全性主要包括以下几个方面:一、 未经授权的用户禁止在服务器上进行FTP操作。
二、 FTP用户不能读取未经系统所有者允许的文件或目录。
三、 未经允许,FTP用户不能在服务器上建立文件或目录。
四、 FTP用户不能删除服务器上的文件或目录。
只有在服务器的/etc/passwd文件中存在名为"FTP"的用户时,服务器才可以接受匿名FTP连接,匿名FTP用户可以使用"anonymous"或"FTP"作为用户名,自己的Internet电子邮件地址作为保密字。为了解决上述安全性的另外三个问题,应该对FTP主目录下的文件属性进行管理,建议对每个目录及其文件采取以下一些措施:FTP主目录:将这个目录的所有者设为"FTP",并且将属性设为所有的用户都不可写,防止不怀好意的用户删改文件。
FTP/bin目录:该目录主要放置一些系统文件,应将这个目录的所有者设为"root"(即超级用户),并且将属性设为所有的用户都不可写。为保证合法用户可显示文件,应将目录中的ls文件属性设为可执行。
FTP/etc目录:将这个目录的所有者设为"root",并且将属性设为所有的用户都不可写。将目录下的group文件和passwd文件的属性设为所有用户只读属性,并用编辑器将passwd文件中用户加过密的口令删掉。
FTP/pub目录:将这个目录的所有者置为"FTP",并且将它的属性设为所有用户均可读、写、执行。
这样经过设置,既保证了系统文件不被删改,又保证了FTP合法用户的正常访问。

③ 如何保证文件传输服务器FTP的安全

,系统的安全性是非常重要的,这是建立
FTP服务器
者所考虑的
第一个问题
。其安全性主要包括以下几个方面:一、
未经授权的用户禁止在服务器上进行FTP操作。
二、
FTP用户不能读取未经系统所有者允许的文件或目录。
三、
未经允许,FTP用户不能在服务器上建立文件或目录。
四、
FTP用户不能删除服务器上的文件或目录。
只有在服务器的/etc/passwd文件中存在名为"FTP"的用户时,服务器才可以接受
匿名FTP
连接,匿名FTP用户可以使用"
anonymous
"或"FTP"作为用户名,自己的Internet
电子邮件地址
作为保密字。为了解决上述安全性的另外三个问题,应该对FTP主目录下的
文件属性
进行管理,建议对每个目录及其文件采取以下一些措施:FTP主目录:将这个目录的所有者设为"FTP",并且将属性设为所有的用户都不可写,防止不怀好意的用户删改文件。
FTP/bin目录:该目录主要放置一些
系统文件
,应将这个目录的所有者设为"root"(即
超级用户
),并且将属性设为所有的用户都不可写。为保证合法用户可显示文件,应将目录中的ls文件属性设为可执行。
FTP/etc目录:将这个目录的所有者设为"root",并且将属性设为所有的用户都不可写。将目录下的group文件和passwd文件的属性设为所有用户只读属性,并用编辑器将passwd文件中用户加过密的口令删掉。
###NextPage###FTP/pub目录:将这个目录的所有者置为"FTP",并且将它的属性设为所有用户均可读、写、执行。
这样经过设置,既保证了系统文件不被删改,又保证了FTP合法用户的正常访问。
作为Internet上的FTP服务器,系统的安全性是非常重要的,这是建立FTP服务器者所考虑的第一个问题。其安全性主要包括以下几个方面:一、
未经授权的用户禁止在服务器上进行FTP操作。
二、
FTP用户不能读取未经系统所有者允许的文件或目录。
三、
未经允许,FTP用户不能在服务器上建立文件或目录。
四、
FTP用户不能删除服务器上的文件或目录。
只有在服务器的/etc/passwd文件中存在名为"FTP"的用户时,服务器才可以接受匿名FTP连接,匿名FTP用户可以使用"anonymous"或"FTP"作为用户名,自己的Internet电子邮件地址作为保密字。为了解决上述安全性的另外三个问题,应该对FTP主目录下的文件属性进行管理,建议对每个目录及其文件采取以下一些措施:FTP主目录:将这个目录的所有者设为"FTP",并且将属性设为所有的用户都不可写,防止不怀好意的用户删改文件。
FTP/bin目录:该目录主要放置一些系统文件,应将这个目录的所有者设为"root"(即超级用户),并且将属性设为所有的用户都不可写。为保证合法用户可显示文件,应将目录中的ls文件属性设为可执行。
FTP/etc目录:将这个目录的所有者设为"root",并且将属性设为所有的用户都不可写。将目录下的group文件和passwd文件的属性设为所有用户只读属性,并用编辑器将passwd文件中用户加过密的口令删掉。
FTP/pub目录:将这个目录的所有者置为"FTP",并且将它的属性设为所有用户均可读、写、执行。
这样经过设置,既保证了系统文件不被删改,又保证了FTP合法用户的正常访问。

④ 请问如何保证FTP服务器的安全

其安全性主要包括以下几个方面:
一、 未经授权的用户禁止在服务器上进行FTP操作。
二、 FTP用户不能读取未经系统所有者允许的文件或目录。
三、 未经允许,FTP用户不能在服务器上建立文件或目录。
四、 FTP用户不能删除服务器上的文件或目录。
FTP服务器采取了一些验明用户身份的办法来解决上述第一个问题,主要包括以下几个措施:
FTP主目录:将这个目录的所有者设为"FTP",并且将属性设为所有的用户都不可写,防止不怀好意的用户删改文件。
FTP/bin目录:该目录主要放置一些系统文件,应将这个目录的所有者设为"root"(即超级用户),并且将属性设为所有的用户都不可写。为保证合法用户可显示文件,应将目录中的ls文件属性设为可执行。
FTP/etc目录:将这个目录的所有者设为"root",并且将属性设为所有的用户都不可写。将目录下的group文件和passwd文件的属性设为所有用户只读属性,并用编辑器将passwd文件中用户加过密的口令删掉。
###NextPage### FTP/pub目录:将这个目录的所有者置为"FTP",并且将它的属性设为所有用户均可读、写、执行。
这样经过设置,既保证了系统文件不被删改,又保证了FTP合法用户的正常访问。
作为Internet上的FTP服务器,系统的安全性是非常重要的,这是建立FTP服务器者所考虑的第一个问题。其安全性主要包括以下几个方面:
一、 未经授权的用户禁止在服务器上进行FTP操作。
二、 FTP用户不能读取未经系统所有者允许的文件或目录。
三、 未经允许,FTP用户不能在服务器上建立文件或目录。
四、 FTP用户不能删除服务器上的文件或目录。
FTP服务器采取了一些验明用户身份的办法来解决上述第一个问题,主要包括以下几个措施:
FTP主目录:将这个目录的所有者设为"FTP",并且将属性设为所有的用户都不可写,防止不怀好意的用户删改文件。
FTP/bin目录:该目录主要放置一些系统文件,应将这个目录的所有者设为"root"(即超级用户),并且将属性设为所有的用户都不可写。为保证合法用户可显示文件,应将目录中的ls文件属性设为可执行。
FTP/etc目录:将这个目录的所有者设为"root",并且将属性设为所有的用户都不可写。将目录下的group文件和passwd文件的属性设为所有用户只读属性,并用编辑器将passwd文件中用户加过密的口令删掉。
FTP/pub目录:将这个目录的所有者置为"FTP",并且将它的属性设为所有用户均可读、写、执行。
这样经过设置,既保证了系统文件不被删改,又保证了FTP合法用户的正常访问。

⑤ 如何破解FTP服务器上防复制

您好:你说破解防复制,其实它就是不让下载,这是ftp服务器的权限设置,
要想有下载权限,就是黑客问题了,有各种思路:
1.ftp漏洞利用
2.从其他途径(如网站提权等)得到服务器操作权限,就可以做各种事了
不过比较复杂的,没有一个人说一定可以行的

⑥ 如何提高FTP服务器安全性

一、禁止系统级别用户来登录FTP服务器。

为了提高FTP服务器的安全,系统管理员最好能够为员工设置单独的FTP帐号,而不要把系统级别的用户给普通用户来使用,这会带来很大的安全隐患。在VSFTP服务器中,可以通过配置文件vsftpd.ftpusers来管理登陆帐户。不过这个帐户是一个黑名单,列入这个帐户的人员将无法利用其帐户来登录FTP服务器。部署好VSFTP服务器后,我们可以利用vi命令来查看这个配置文件,发现其已经有了许多默认的帐户。其中,系统的超级用户root也在其中。可见出于安全的考虑,VSFTP服务器默认情况下就是禁止root帐户登陆FTP服务器的。如果系统管理员想让root等系统帐户登陆到FTP服务器,则知需要在这个配置文件中将root等相关的用户名删除即可。不过允许系统帐户登录FTP服务器,会对其安全造成负面的影响,为此我不建议系统管理员这么做。对于这个文件中相关的系统帐户管理员最好一个都不要改,保留这些帐号的设置。

如果出于其他的原因,需要把另外一些帐户也禁用掉,则可以把帐户名字加入到这个文件中即可。如在服务器上可能同时部署了FTP服务器与数据库服务器。那么为了安全起见,把数据库管理员的帐户列入到这个黑名单,是一个不错的做法。

二、加强对匿名用户的控制。

匿名用户是指那些在FTP服务器中没有定义相关的帐户,而FTP系统管理员为了便于管理,仍然需要他们进行登陆。但是他们毕竟没有取得服务器的授权,为了提高服务器的安全性,必须要对他们的权限进行限制。在VSFTP服务器上也有很多参数可以用来控制匿名用户的权限。系统管理员需要根据FTP服务器的安全级别,来做好相关的配置工作。需要说明的是,匿名用户的权限控制的越严格,FTP服务器的安全性越高,但是同时用户访问的便利性也会降低。故最终系统管理员还是需要在服务器安全性与便利性上取得一个均衡。

下面是我推荐的几个针对匿名用户的配置,大家若不清楚该如何配置的话,可以参考这些配置。这些配置兼顾了服务器的安全与用户的使用便利。

一是参数anon_world_readable_only。这个参数主要用来控制匿名用户是否可以从FTP服务器上下载可阅读的文件。如果FTP服务器部署在企业内部,主要供企业内部员工使用的话,则最好把这个参数设置为YES。然后把一些企业常用表格等等可以公开的文件放置在上面,让员工在匿名的情况下也可以下载这些文件。这即不会影响到FTP服务器的安全,而且也有利于其他员工操作的便利性上。

二是参数anon_upload_enable。这个参数表示匿名用户能否在匿名访问的情况下向FTP服务器上传文件。通常情况下,应该把这个参数设置为No。即在匿名访问时不允许用户上传文件。否则的话,随便哪个人都可以上传文件的话,那对方若上传一个病毒文件,那企业不是要遭殃了。故应该禁止匿名用户上传文件。但是这也有例外。如有些企业通过FTP协议来备份文件。此时如果企业网络的安全性有所保障的话,可以把这个参数设置为YES,即允许操作系统调用FTP命令往FTP服务器上备份文件。

⑦ FTP服务器如何设置防盗链

防盗链,禁止从外部站点下载: <% http=Request.ServerVariables("HTTP_REFERER") http2=Cstr(Request.ServerVariables("SERVER_NAME")) if mid(http,8,len(http2))<>http2 then response.write "本站禁止从外部站点下载!" else response.redirect "download.doc" 'download.doc为下载文件名 end if %>

⑧ 我用FlashFxp上传文件后(比如EXE文件)。。。。

FTP空间设置了防盗链.估计是希望下载者通过网页形式登陆他们的网站,以此在页面宣传他们自己或者做广告,直接FTP的不允许操作.
技术上可能是先得到访问者浏览特定页面返回的IP,然后才允许这个IP进行FTP下载.
到他们主页看看吧,估计有说明的,另外FTP连接完成的时候(客户端软件)一般会有说明信息/欢迎信息.

⑨ HTTP FTP

HTTP和FTP是两种网络传输协议的缩写,FTP是File Transportation Protocol(文件传输协议)的缩写,而HTTP则是Hyper Text Transportation Protocol(超文本传输协议)的缩写,它们是计算机之间交换数据的方式,也是两种最经典的文件下载方式。FTP专门用来下载,而HTTP的主要工作是用来浏览网页,不过也能用来下载。这两种下载方式的原理并不复杂,就是用户按照一定的规则(协议)和提供文件的服务器取得联系并将文件搬到自己的计算机中来。FTP下载方式最古老,在没有WWW的日子里,FTP就已经广为使用了。HTTP出现的较晚,但现在也应用的相当广泛。其实,如果你仅仅是为了下载而下载,那么你完全没必要把他们分的那么清,这两种使用的下载方式、下载工具几乎是一模一样的。

在进行FTP或者HTTP下载之前你必须获得有效的资源链接或者服务器地址。比如,FTP下载链接通常是这样的:

ftp://ftp.ftpserver.com/1/2/3/file.exe或者ftp://20.102.192.34/1/2/3/file.exe

来看一下这个地址的结构,这里有很多斜杠(“ /”),是不是有些似曾相识的感觉?其实他们的作用和Windows中用来表示目录的反斜杠(“”)的作用是完全一样的。理解了这一点,这个FTP下载链接的含义就很清楚了,它代表某个服务器(服务器既可以用域名ftp.ftpserver.com来表示,也可以用IP地址来表示202.102.192.34,他们的作用是完全一样的)上,子目录1/2/3(三个斜杠代表三个子目录)下面的一个名称文件为file.exe的文件。

有时候,你可能得的FTP地址相识被砍去了尾巴的,比如

ftp://ftp.ftpserver.com/或者ftp://20.102.192.34/

这个地址没有告诉你具体能够下载的内容,利用这个地址可以连接上FTP服务器看他有哪些文件然后由选择地进行下载。

需要特别提一点,所有的FTP服务器都是需要帐号和密码才能登录的。不过有相当一部分FTP服务器提供了匿名登录,对于这些服务器我们可以使用通用的帐号和密码登录(通常是帐号Anonymous密码anonymous),也许你登录这些FTP服务器是没有提示你输入帐号和密码,实际上Windows或者FTP软件自动帮你完成了匿名登陆操作。

还有一部分FTP服务器出于各种原因,没有提供匿名登录,那么你就需要手工登录了。假设我们在FTP服务器ftp://20.102.192.34/上有一组帐号和密码是user和password,那么如何才能够登录呢?这里有一个非常简便的方法,在IE的地址栏中输入:user:password@ftp://20.102.192.34就可以登录了。
简单总结一下,FTP(或者HTTP)下载链接无非三种:

带文件名的

不带文件名

带帐号和密码的

IE直接下载

Http方式

前面说过,Http是超文本传输协议,我们平常上网的浏览器(比如IE)的“本职工作”就是解读按照这种协议制作的网页。Web网页上的各种资源都有一个URL,比方说某个图片的URL是http://www.aaa.com/a.jpg,某个页面的URL是http://www.aaa.com/default.html等等。当IE看到这些URL时,他会将其显示出来。但是如果碰到http://www.aaa.com/a.exe这种扩展名为exe的文件怎么办呢?这种文件可不能“显示”出来,否则就以一堆乱码,这时IE会弹出一个对话框�视没�欠褚��募�4娴奖镜兀�略鼐褪钦庋��嫉摹?

1、在页面上单击一个提供下载的链接

2、设置一个文件名和保存位置然后单击“保存”按钮。

3、当显示“下载完毕”后,你可以直接单击“打开”按钮将下载的文件打开,也可以单击“打开文件夹”打开下载文件所在的文件夹。

很多人都喜欢采用在文件链接上单击鼠标右键选择“目标另存为”的方式进行下载,如下图。通常这种方式和直接单击链接效果相同,但是要特别注意一个问题,现在很多提供软件下载的网站都有防盗链功能,因此直接使用“目标另存为”的方法可能无法成功下载。经常是,明明想下载的是一个EXE文件,可是一旦“目标另存为”之后就变成了一个HTML文件。对于这种情况一般没有特别有效的应付方法,只能使用左键单击的方式进行下载。

FTP方式

在IE中也可以直接访问FTP网站,假设我们知道了一个匿名FTP站点的地址是redhat.secsup.org,我们可以按照下面的步骤来访问这个站点。

1、在浏览器的地址栏中输入ftp://redhat.secsup.org来登录该FTP站点。强调一下,直接输入这样的地址的前提是,FTP站点必须是匿名的。如果是非匿名的FTP,必须按照前面在“说点原理”那个小节中说的方式把用户名和密码也带上。

2、登录成功之后你会看到和资源管理器几乎一模一样的界面,选择需要的文件或者文件夹,单击鼠标右键,从弹出的菜单中选择“复制到文件夹”。

⑩ FTP的防范与攻击如何实现

------------------------FTP安全考虑—RFC2577----------------------------------
1.简介
文件传输协议规范(FTP)[PR85]提供了一种允许客户端建立FTP控制连接并在两台
FTP服务器间传输文件的机制。这种“代理FTP”机制可以用来减少网络的流量,客户端命
令一台服务器传输文件给另一台服务器,而不是从第一台服务器传输文件给客户端,然后从
客户端再传输给第二台服务器。当客户端连接到网络的速度特别慢时,这是非常有用的。但
同时,代理FTP还带来了一个安全问题——“跳转攻击(bounce attack)”[CERT97:27]。除
了“跳转攻击”,FTP服务器还可以被攻击者通过强力来猜测密码。
本文档并不考虑当FTP和一些强壮的安全协议(比如IP安全)联合使用的情况。虽然
这些安全关注并不在本文档的考虑范围内,但是它们也应该被写成文档。
本文给FTP服务器的实现者和系统管理员提供了一些信息,如下所示。第二章描述了
FTP“跳转攻击”。第三章提供了减少“跳转攻击”的建议。第四章给基于网络地址限制访
问的服务器提供了建议。第五章提供了限制客户端强力“猜测密码”的建议。接着,第六章
简单的讨论了改善保密性的机制。第七章给出了阻止猜测用户身份的机制。第八章讨论了端
口盗用。最后,第九章讨论了其它跟软件漏洞有关而跟协议本身无关的FTP安全问题。
2.跳转攻击(Bounce Attack)
RFC959[PR85]中规定的FTP规范提供了一种攻击知名网络服务器的一种方法,并且使
攻击者很难被跟踪。攻击者发送一个FTP"PORT"命令给目标FTP服务器,其中包含该主机
的网络地址和被攻击的服务的端口号。这样,客户端就能命令FTP服务器发一个文件给被
攻击的服务。这个文件可能包括根被攻击的服务有关的命令(如SMTP,NNTP等)。由于是
命令第三方去连接到一种服务,而不是直接连接,就使得跟踪攻击者变得困难,并且还避开
了基于网络地址的访问限制。
例如,客户端上载包含SMTP命令的报文到FTP服务器。然后,使用正确的PORT命
令,客户端命令服务器打开一个连接给第三方机器的SMTP端口。最后,客户端命令服务
器传输刚才上载的包含SMTP命令的报文给第三方机器。这就使得客户端不建立任何直接
的连接而在第三方机器上伪造邮件,并且很难跟踪到这个攻击者。
3.避免跳转攻击
原来的FTP规范[PR85]假定使用TCP进行数据链接,TCP端口号从0到1023时报留给
一些众所周知的服务的,比如邮件,网络新闻和FTP控制链接。FTP规范对数据链接没有
限制TCP端口号。因此,使用代理FTP,客户端就可以命令服务器去攻击任何机器上众所
周知的服务。
为了避免跳转攻击,服务器最好不要打开数据链接到小于1024的TCP端口号。如果服
务器收到一个TCP端口号小于1024的PORT命令,那么可以返回消息504(对这种参数命
令不能实现)。但要注意这样遗留下那些不知名服务(端口号大于1023)易受攻击。
一些建议(例如[AOM98]和[Pis94])提供了允许使用除了TCP以外的其他传输协议来
建立数据连接的机制。当使用这些协议时,同样要注意采用类似的防范措施来保护众所周知
的服务。
另外,我们注意到跳转攻击一般需要攻击者首先上载一个报文到FTP服务器然后再下
载到准备攻击的服务端口上。使用适当的文件保护措施就可以阻止这种情况发生。然而攻击
者也可能通过从远程FTP服务器发送一些能破坏某些服务的数据来攻击它。
禁止使用PORT命令也是避免跳转攻击的一种方法。大多数文件传输可以仅通过PASV
命令来实现。但这样做的缺点就是丧失了使用代理FTP的能力,当然代理FTP并不是在所
有场合都需要的。
4.受限制的访问
一些FTP服务器希望有基于网络地址的访问控制。例如,服务器可能希望限制来自某
些地点的对某些文件的访问(例如为了某些文件不被传送到组织以外)。在这种情况下,服
务器在发送受限制的文件之前应该首先确保远程主机的网络地址在本组织的范围内,不管是
控制连接还是数据连接。通过检查这两个连接,服务器就被保护避免了这种情况:控制连接
用一台可信任的主机连接而数据连接不是。同样的,客户也应该在接受监听模式下的开放端
口连接后检察远程主机的IP地址,以确保连接是由所期望的服务器建立的。
注意,基于网络地址的受限访问留下了FTP服务器易受“地址盗用(spoof)”攻击。在
spoof攻击中,攻击机器可以冒用在组织内的机器的网络地址,从而将文件下载到在组织之
外的未授权的机器上。只要可能,就应该使用安全鉴别机制,比如在[HL97]中列出的安全鉴
别机制。
5.保护密码
为了减少通过FTP服务器进行强力密码猜测攻击的风险,建议服务器限制尝试发送正
确的密码的次数。在几次尝试(3~5次)后,服务器应该结束和该客户的控制连接。在结束
控制连接以前,服务器必须给客户端发送一个返回码421(“服务不可用,关闭控制连接”
[PR85])。另外,服务器在相应无效的“PASS”命令之前应暂停几秒来消减强力攻击的有效
性。若可能的话,目标操作系统提供的机制可以用来完成上述建议。
攻击者可能通过与服务器建立多个、并行的控制连接破坏上述的机制。为了搏击多个并
行控制连接的使用,服务器可以限制控制连接的最大数目,或探查会话中的可疑行为并在以
后拒绝该站点的连接请求。然而上述两种措施又引入了“服务否决”攻击,攻击者可以故意
的禁止有效用户的访问。
标准FTP[PR85]在明文文本中使用“PASS”命令发送密码。建议FTP客户端和服务器
端使用备用的鉴别机制,这种鉴别机制不会遭受窃听。比如,IETF公共鉴别技术工作组开
发的机制[HL97]。
6.私密性
在FTP标准中[PR85]中,所有在网络上被传送的数据和控制信息(包括密码)都未被
加密。为了保障FTP传输数据的私密性,应尽可能使用强壮的加密系统。在[HL97]中定义
了一个这样的机制。
7.保护用户名
当“USER”命令中的用户名被拒绝时,在FTP标准中[PR85]中定义了相应的返回码530。
而当用户名是有效的但却需要密码,FTP将使用返回码331。为了避免恶意的客户利用USER
操作返回的码确定一个用户名是否有效,建议服务器对USER命令始终返回331,然后拒绝
对无效用户名合并用户名和密码。
8.端口盗用
许多操作系统以递增的顺序动态的分配端口号。通过合法的传输,攻击者能够观察当前
由服务器端分配的端口号,并“猜”出下一个即将使用的端口号。攻击者可以与这个端口建
立连接,然后就剥夺了下一个合法用户进行传输的能力。或者,攻击者可以盗取给合法用户
的文件。另外,攻击者还可能在从授权用户发出的数据流中插入伪造的文件。通过使FTP
客户和服务器随机的给数据连接分配端口号,或者要求操作系统随机分配端口号,或者使用
与系统无关的机制都可以减少端口盗用的发生。
9.基于软件的安全问题
本文档的重点是和协议相关的安全问题。另外还有一些成文的FTP安全问题是由于不
完善的FTP实现造成的。虽然这种类型的问题的细节超出本文档的范围,还是有必要指出
以下那些过去曾被误用,今后的实现应该慎重考虑的FTP特性。
? 匿名FTP
匿名FTP服务使客户端用最少的证明连接到FTP服务器分享公共文件。如果这样的用
户能够读系统上所有的文件或者能建立文件,那么问题就产生了。[CERT92:09] [CERT93:06]

? 执行远程命令
FTP扩展命令"SITE EXEC"允许客户端执行服务器上任意的命令。这种特性显然需要非
常小心的实现。已经有几个成文的例子说明攻击者利用FTP“SITE EXEC”命令可以破坏服
务器的安全性。[CERT94:08] [CERT95:16]

? 调试代码
前面的一些跟FTP有关危及安全的问题是由于置入了调试特性的软件造成的。
[CERT88:01]

本文建议有这些功能的FTP服务器的实现者在发布软件之前参阅所有的CERT有关这
些问题的攻击以及类似机制的忠告。
10.结论
使用以上建议可以减少和FTP服务器有关的安全问题的发生,而不用删除其功能。