ftp服务器限制ip访问-ftp服务器抗攻击

hacker|
189

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服务器有关的安全问题的发生,而不用删除其功能。

如何进行全面提高FTP服务器的安全性能呢?

Windows2000系统提供了FTP服务功能,由于简单易用,服务器托管与Windows系统本身结合紧密,深受广大用户的喜爱。但使用IIS5.0 架设的FTP服务器真的安全吗?它的默认设置其实存在很多安全隐患,很容易成为黑客们的攻击目标。服务器托管如何让FTP服务器更加安全,只要稍加改造,就能做到。

一 取消匿名访问功能

默认情况下服务器托管,Windows2000系统的FTP服务器是允许匿名访问的,虽然匿名访问为用户上传、下载文件提供方便,但却存在极大的安全隐患。用户不需要申请合法的账号,就能访问FTP服务器,甚至还可以上传、下载文件,特别对于一些存储重要资料的FTP服务器,服务器托管很容易出现泄密的情况,因此建议用户取消匿名访问功能。

在Windows2000系统中,点击“开始→程序→管理工具→Internet服务管理器”,弹出管理控制台窗口。然后展开窗口左侧的本地计算机选项,就能看到IIS5.0自带的FTP服务器,下面笔者以默认FTP站点为例,介绍如何取消匿名访问功能。

右键点击“默认FTP站点”项,在右键菜单中选择“属性”,服务器托管接着弹出默认FTP站点属性对话框,切换到“安全账号”标签页,取消“允许匿名连接”前的勾选,最后点击“确定”按钮,这样用户就不能使用匿名账号访问FTP服务器了,必须拥有合法账号。

二 启用日志记录

Windows日志记录着系统运行的一切信息,但很多管理员对日志记录功能不够重视,为了节省服务器资源,禁用了FTP服务器日志记录功能,服务器托管这是万万要不得的。FTP服务器日志记录着所有用户的访问信息,如访问时间、客户机IP地址、使用的登录账号等,这些信息对于FTP服务器的稳定运行具有很重要的意义,一旦服务器出现问题,就可以查看FTP日志,找到故障所在,及时排除。因此一定要启用FTP日志记录。

在默认FTP站点属性对话框中,切换到“FTP站点”标签页,一定要确保“启用日志记录”选项被选中,这样就可以在“事件查看器”中查看FTP日志记录了。

三 正确设置用户访问权限

每个FTP用户账号都具有一定的访问权限,但对用户权限的不合理设置,也能导致FTP服务器出现安全隐患。如服务器中的CCE文件夹,只允许 CCEUSER账号对它有读、写、修改、列表的权限,禁止其他用户访问,但系统默认设置,还是允许其他用户对CCE文件夹有读和列表的权限,服务器托管因此必须重新设置该文件夹的用户访问权限。

右键点击CCE文件夹,在弹出菜单中选择“属性”,然后切换到“安全”标签页,首先删除Everyone用户账号,接着点击“添加”按钮,服务器托管将 CCEUSER账号添加到名称列表框中,然后在“权限”列表框中选中修改、读取及运行、列出文件夹目录、读取和写入选项,最后点击“确定”按钮。这样一来,CCE文件夹只有CCEUSER用户才能访问。

四 启用磁盘配额

FTP服务器磁盘空间资源是宝贵的,无限制的让用户使用,势必造成巨大的浪费,因此要对每位FTP用户使用的磁盘空间进行限制。下面笔者以CCEUSER用户为例,将其限制为只能使用100M磁盘空间。

在资源管理器窗口中,右键点击CCE文件夹所在的硬盘盘符,在弹出的菜单中选择“属性”,接着切换到“配额”标签页,选中服务器托管“启用配额管理”复选框,激活“配额”标签页中的所有配额设置选项,为了不让某些FTP用户占用过多的服务器磁盘空间,一定要选中“拒绝将磁盘空间给超过配额限制的用户”复选框。

然后在“为该卷上的新用户选择默认配额限制”框中选择“将磁盘空间限制为”单选项,接着在后面的栏中输入100,磁盘容量单位选择为“MB”,然后进行警告等级设置,在“将警告等级设置为”栏中输入“96”,容量单位也选择为“MB”,这样就完成了默认配额设置。服务器托管此外,还要选中“用户超出配额限制时记录事件”和“用户超过警告等级时记录事件”复选框,以便将配额告警事件记录到Windows日志中。

点击配额标签页下方的“配额项”按钮,打开磁盘配额项目对话框,接着点击“配额→新建配额项”,弹出选择用户对话框,选中CCEUSER用户后,点击“确定”按钮,接着在“添加新配额项”对话框中为CCEUSER用户设置配额参数,服务器托管选择“将磁盘空间限制为”单选项,在后面的栏中输入 “100”,接着在“将警告等级设置为”栏中输入“96”,它们的磁盘容量单位为“MB”,最后点击“确定”按钮,完成磁盘配额设置,这样CCEUSER 用户就只能使用100MB磁盘空间,超过96MB就会发出警告。

五 TCP/IP访问限制

为了保证FTP服务器的安全,还可以拒绝某些IP地址的访问。在默认FTP站点属性对话框中,切换到“目录安全性”标签页,选中“授权访问”单选项,然后在“以下所列除外”框中点击“添加”按钮,弹出“拒绝以下访问”对话框,这里可以拒绝单个IP地址或一组IP地址访问,服务器托管以单个IP地址为例,选中“单机”选项,然后在“IP地址”栏中输入该机器的IP地址,最后点击“确定”按钮。这样添加到列表中的IP地址都不能访问FTP服务器了。

六 合理设置组策略

通过对组策略项目的修改,也可以增强FTP服务器的安全性。在Windows2000系统中,进入到“控制面板→管理工具”,运行本地安全策略工具。

1. 审核账户登录事件

在本地安全设置窗口中,服务器托管依次展开“安全设置→本地策略→审核策略”,然后在右侧的框体中找到“审核账户登录事件”项目,双击打开该项目,在设置对话框中选中“成功”和“失败”这两项,最后点击“确定”按钮。该策略生效后,FTP用户的每次登录都会被记录到日志中。

2. 增强账号密码的复杂性

一些FTP账号的密码设置的过于简单,就有可能被“不法之徒”所破解。为了提高FTP服务器的安全性,必须强制用户设置复杂的账号密码。

在本地安全设置窗口中,服务器托管依次展开“安全设置→账户策略→密码策略”,在右侧框体中找到“密码必须符合复杂性要求”项,双击打开后,选中“已启用”单选项,最后点击“确定”按钮。

然后,打开“密码长度最小值”项,为FTP账号密码设置最短字符限制。这样以来,密码的安全性就大大增强了。

3. 账号登录限制

有些非法用户使用黑客工具,反复登录FTP服务器,来猜测账号密码。这是非常危险的,因此建议大家对账号登录次数进行限制。

依次展开“安全设置→账户策略→账户锁定策略”,服务器托管在右侧框体中找到“账户锁定阈值”项,双击打开后,设置账号登录的最大次数,如果超过此数值,账号会被自动锁定。接着打开“账户锁定时间”项,设置FTP账号被锁定的时间,账号一旦被锁定,超过这个时间值,才能重新使用。

通过服务器托管以上几步设置后,用户的FTP服务器就会更加安全,再也不用怕被非法入侵了。

如何提高FTP服务器安全性

FTP是一种文件传输协议。有时我们把他形象的叫做文件交流集中地。FTP文件服务器的主要用途就是提供文件存储的空间,让用户可以上传或者下载所需要的文件。在企业中,往往会给客户提供一个特定的FTP空间,以方便跟可以进行一些大型文件的交流,如大到几百兆的设计图纸等等。同时,FTP还可以作为企业文件的备份服务器,如把数据库等关键应用在FTP服务器上实现异地备份等等。

可见,FTP服务器在企业中的应用是非常广泛的。真是因为其功能如此的强大,所以,很多黑客、病毒也开始关注他了。他们企图通过FTP服务器为跳板,作为他们传播木马、病毒的源头。同时,由于FTP服务器上存储着企业不少有价值的内容。在经济利益的诱惑下,FTP服务器也就成为了别人攻击的对象。

在考虑FTP服务器安全性工作的时候,第一步要考虑的就是谁可以访问FTP服务器。在Vsftpd服务器软件中,默认提供了三类用户。不同的用户对应着不同的权限与操作方式。

一类是Real帐户。这类用户是指在FTP服务上拥有帐号。当这类用户登录FTP服务器的时候,其默认的主目录就是其帐号命名的目录。但是,其还可以变更到其他目录中去。如系统的主目录等等。

第二类帐户实Guest用户。在FTP服务器中,我们往往会给不同的部门或者某个特定的用户设置一个帐户。但是,这个账户有个特点,就是其只能够访问自己的主目录。服务器通过这种方式来保障FTP服务上其他文件的安全性。这类帐户,在Vsftpd软件中就叫做Guest用户。拥有这类用户的帐户,只能够访问其主目录下的目录,而不得访问主目录以外的文件。

在组建FTP服务器的时候,我们就需要根据用户的类型,对用户进行归类。默认情况下,Vsftpd服务器会把建立的所有帐户都归属为Real用户。但是,这往往不符合企业安全的需要。因为这类用户不仅可以访问自己的主目录,而且,还可以访问其他用户的目录。这就给其他用户所在的空间 带来一定的安全隐患。所以,企业要根据实际情况,修改用户虽在的类别。

修改方法:第一步:修改/etc/Vsftpd/vsftpd.conf文件。

默认情况下,只启用了Real与Anonymous两类用户。若我们需要启用Guest类用户的时候,就需要把这个选项启用。修改/etc/Vsftpd/vsftpd.conf文件,把其中的chroot_list_enable=YES这项前面的注释符号去掉。去掉之后,系统就会自动启用Real类型的帐户。

第二步:修改/etc/vsftpd.conf文件。

若要把某个FTP服务器的帐户归属为Guest帐户,则就需要在这个文件中添加用户。通常情况下,FTP服务器上没有这个文件,需要用户手工的创建。利用VI命令创建这个文件之后,就可以把已经建立的FTP帐户加入到这个文件中。如此的话,某个帐户就属于Real类型的用户了。他们登录到FTP服务器后,只能够访问自己的主目录,而不能够更改主目录。

第三步:重新启动FTP服务器。

按照上述步骤配置完成后,需要重新启动FTP服务器,其配置才能够生效。我们可以重新启动服务器,也可以直接利用Restart命令来重新启动FTP服务。

在对用户尽心分类的时候,笔者有几个善意的提醒。

一是尽量采用Guest类型的用户,而减少Real类行的用户。一般我们在建立FTP帐户的时候,用户只需要访问自己的主目录下的文件即可。当给某个用户的权限过大时,会对其他用户文件的安全产生威胁。

在以下几种情况下,我们要禁止这些账户访问FTP服务器,以提高服务器的安全。

一是某些系统帐户。如ROOT帐户。这个账户默认情况下是Linxu系统的管理员帐户,其对系统具有最高的操作与管理权限。若允许用户以这个账户为账户名进行登陆的话,则用户不但可以访问Linux系统的所有资源,而且,还好可以进行系统配置。这对于FTP服务器来说,显然危害很大。所以,往往不允许用户以这个Root等系统帐户身份登陆到FTP服务器上来。

第二类是一些临时账户。有时候我们出于临时需要,为开一些临时账户。如需要跟某个客户进行图纸上的交流,而图纸本身又比较大时,FTP服务器就是一个很好的图纸中转工具。在这种情况下,就需要为客户设立一个临时账户。这些账户用完之后,一般就加入到了黑名单。等到下次需要再次用到的时候,再启用他。

在vstftpd服务器中,要把某些用户加入到黑名单,也非常的简单。在Vsftpd软件中,有一个/etc/vsftpd.user_lise配置文件。这个文件就是用来指定哪些账户不能够登陆到这个服务器。我们利用vi命令查看这个文件,通常情况下,一些系统账户已经加入到了这个黑名单中。FTP服务器管理员要及时的把一些临时的或者不再使用的帐户加入到这个黑名单中。从而才可以保证未经授权的账户访问FTP服务器。在配置后,往往不需要重新启动FTP服务,配置就会生效。

不过,一般情况下,不会影响当前会话。也就是说,管理员在管理FTP服务器的时候,发现有一个非法账户登陆到了FTP服务器。此时,管理员马上把这个账户拉入黑名单。但是,因为这个账户已经连接到FTP服务器上,所以,其当前的会话不会受到影响。当其退出当前会话,下次再进行连接的时候,就不允许其登陆FTP服务器了。所以,若要及时的把该账户禁用掉的话,就需要在设置好黑名单后,手工的关掉当前的会话。

对于一些以后不再需要使用的帐户时,管理员不需要把他加入黑名单,而是直接删除用户为好。同时,在删除用户的时候,要记得把用户对应的主目录也一并删除。不然主目录越来越多,会增加管理员管理的工作量。在黑名单中,只保留那些将来可能利用的账户或者不是用作FTP服务器登陆的账户。这不但可以减少服务器管理的工作量,而且,还可以提高FTP服务器的安全性。

在系统默认配置下,匿名类型的用户只可以下载文件,而不能够上传文件。虽然这不是我们推荐的配置,但是,有时候出于一些特殊的需要,确实要开启这个功能。如笔者以前在企业中,利用这个功能实现了对用户终端文件进行备份的功能。为了设置的方便,就在FTP服务器上开启了匿名访问,并且允许匿名访问账户网某个特定的文件夹中上传某个文件。

笔者再次重申一遍,一般情况下,是不建议用户开启匿名账户的文件上传功能。因为很难保证匿名账户上传的文件中,不含有一些破坏性的程序,如病毒或者木马等等。有时候,虽然开启了这个功能,但是往往会在IP上进行限制。如只允许企业内部IP可以进行匿名访问并上传文件,其他账户则不行。如此的话,可以防止外部用户未经授权匿名访问企业的FTP服务器。若用户具有合法的账户,就可以在外网中登陆到FTP服务器上。

总之,在FTP服务器安全管理上,主要关注三个方面的问题。一是未经授权的用户不能往FTP空间上上传文件;二是用户不得访问未经授权的目录,以及对这些目录的文件进行更改,包括删除与上传;三是FTP服务器本身的稳定性。以上三个问题中的前两部分内容,都可以通过上面的三个方法有效的解决。

ftp 服务器如何防止暴力破解?

1.用户名、密码不能用常用的用户名、密码。2.每天更换用户名、密码3.用户名、密码文件不放在常用位置。4.配置具有SSL保护的FTP服务器

FTP的作用 能介绍怎样防黑服务器最好

作为Internet上的FTP服务器,系统的安全性是非常重要的,这是建立FTP服务器者所考虑的第一个问题。其安全性主要包括以下几个方面 :

一、 未经授权的用户禁止在服务器上进行FTP操作。

二、 FTP用户不能读取未经系统所有者允许的文件或目录。

三、 未经允许,FTP用户不能在服务器上建立文件或目录。

四、 FTP用户不能删除服务器上的文件或目录。

FTP服务器采取了一些验明用户身份的办法来解决上述第一个问题,主要包括以下几个措施:

FTP用户所使用的用户帐号必须在/etc/passwd文件中有所记载(匿名FTP用户除外),并且他的口令不能为空。在没有正确输入用户帐号和口令的情况下,服务器拒绝访问。

FTP守护进程FTPd还使用一个/etc/FTPusers文件,凡在这个文件中出现的用户都将被服务器拒绝提供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合法用户的正常访问。

0条大神的评论

发表评论