暴力破解FTP服务器技术探讨与防范措施分享

大家通常会认为暴力破解攻击只是针对某一种FTP服务器发起的攻击,能具有代表性吗?

  随着Internet的发展出现了由于大量傻瓜化黑客工具,任何一种黑客攻击手段的门槛都降低了很多,但是暴力破解法的工具制作都已经非常容易,大家通常会认为暴力破解攻击只是针对某一种FTP服务器发起的攻击,能具有代表性吗?可以拓展到其他的网络?或服务器上吗?答案当然是肯定的。暴力破解这种软件,使用起来没有什么技术含量原理就是一个接一个的试,直到试验出正确的密码,也就是破解成功了。不过这种破解方式成功几率不高,耗费时间多,技术成分低,不是迫不得已是不使用的。在网络的实际情况中,很多FTP服务器虽说都是经过了层层的安全防护的,即便是经过防护的FTP服务器,同样可以在攻击者简单地调整攻击方式以后,运用暴力破解快速突破。本文谈谈各种攻击技术对服务器的影响,仅供网络管理人员在平时工作中,制定安全防范策略时参考使用。

  一、网络本身的负载能力与高速网络

  所有的网络攻击,都是基于网络而发起的,这就决定了网络是一切网络攻击、安全防护技术的根本。如果攻击者处于一个网络资源极度缺乏的环境之中,想要发起高级的网络攻击也是力不从心的。同时,如果防御者处于一个并非优秀的网络中,网络正常服务本身都很难为正常用户提供,更不用说进行网络安全防护了。

  1. 网络带宽的束缚

  从国内刚刚出现互联网开始,到今天网络的普及,网龄比较长的网民都经历了使用调制解调器拨号上网的举步维艰,也都经历了1Mb/s、2Mb/s甚至10Mb/s的高速网络,而网络安全,同样经历了这样的一个由慢到快、从低速到高速的过程,在这个过程之中,很多原本看起来根本不可能的攻击技术,也已经可以很顺畅地发起了。很多攻击者在进行这样的攻击的时候,都会发现一个很奇特的现象:刚刚对目标发起了分布式的暴力破解攻击,10分钟后目标服务器因为带宽拥堵,竟然瘫痪了……

  对攻击者来说,这是很让人啼笑皆非的事情,因为攻击者的目标原本是为了通过暴力破解获得某些机密的、内部的FTP资料,但是无意间却造成了目标服器的整体瘫痪,这显然是攻击者不愿意看到的结果。这也是攻击者和网络安全工程师因为网络带宽造成的困扰之一。

  另一方面,暴力破解因为自身特性,所有的验证过程都是通过向服务器据提交信息、获得服务器返回信息并进行判断而进行的。在这个过程中,不管是服务器的网络带宽质量,还是攻击者使用的僵尸计算机本身的网络带宽速度,都在很大程度上决定了暴力破解整个完成时间的长短。就目前的网络带宽来说,要顺畅、高速地发起FTP的暴力破解攻击,还是有一定难度的。一般情况下攻击者动用上百台僵尸计算机进行攻击就已经是暴力破解的极限,因为即使再增加僵尸计算机,网络带宽的限制也不允许更多的数据收发的进行。所以,第二个限制暴力破解攻击整体效率提高的因素,就是僵尸计算机本身的网络带宽质量。

  从现阶段国内四处都在进行的轰轰烈烈的网络速度提升来看,不难预见不久后的将来,整体网络速度将有非常大的提高。就像今天国际公认的平均个人网速最快的国家韩国一样,人均网速达到10Mb/s,20Mb/s甚至更多。

  虽然网络速度的提升正在飞速的发展着,但是对攻击者来说,不可能恰好子就遇到拥有高速网络的僵尸计算机或者目标服务器。于是就有读者提问:现阶段的攻击者是如何解决网络带宽的问题的呢?以后如果出现网络整体速度都得到很大提升的时候,攻击者的暴力破解攻又将有怎么样的发展呢?

  2.内部高速网络和分布式破解解决带宽难题

  先解决第一个问题:现阶段的攻击者是如何解决网络带宽的问题的呢?举例来说,一个攻击者妄图获得某会员制网站的FTP账户权限,因为里面有很多内部付费使用的资料。但是这个会员制网站服务器的网络带宽质量并不高,如果采用分布式的暴力破解攻击,可能十几台僵尸计算机就足以让这个服务器瘫痪了,攻击者显然是不愿意看到这样情况的发生的。

  在实际的网络攻击案例中,很多攻击者都遇到了这样的问题,他们的解决方法也很巧妙,也非常实用:利用内部网络通信的高速来解决暴力破解的网络带宽难题。有一定网络经验的网民都知道,中国现在的服务器,一般都是托管在IDC或者机房的,而正常情况下IDC或者机房会进行很多的网络带宽限制,在机房的入口路由或者机柜的防火墙上限制带宽,让由外对内的网络带宽变得很窄-毕竟机房很多情况下都是通过带宽来进行托管收费的。

  现在的服务器配置一般都是千兆网卡,但是对外的网络带宽不可能做到千兆全开。一般中小站点能购买5~10Mb/s的独立带宽就很不错了,也就是说这样的服务器在提供对外的访问的时候,即使网络堵塞了,用户打不开网站了,FTP无法提供正常服务了。实际上就服务器本身的硬件性能来说,还有极大的容余可以用来提供网络服务,只是出入口网络带宽不足而已。就目前国内的整体网络安全意识来看,对资深的攻击者来说,在一个存放着几百台服务器的机房中找寻一台"肉鸡",并不是很难的技术问题。找到这样的内部服务器有什么用呢?攻击者当然可以选择用来发起暴力破解攻击。对一个千兆网卡来说,如果是在内部网络中进行访问,数据的中转和网络损耗本是可以忽视的。这就好比由一个1Mb/s的ADSL猫连接的两个家用计算机,虽然从网络上下载文件大概只有150Mb/s的速度,但是如果两个计算机之间传送文件的话,8Mb/s的内网速度还是很容易实现的。所以,现阶段的攻击者如果想要发起效率非常高的FTP暴力破解,在目标服务器的网络带宽存在束缚的时候,-机柜中的服务器,并利用内部网络高速的特点发起超快的FTP暴力破解。

  再说说另一个问题:以后如果出现网络整体速度都得到很大提升的情况,攻击者的暴力破解攻击又将有怎么样的发展呢? 其实同第一个问题相比,这个问题已经在大范围内得到了解决,而且很多攻击者现在就是这样发起攻击的,那就是:分布式暴力破解。在之所有有些攻击者因为网络带宽的问题无法发起大范围的分布式暴力破解攻击,原因更多的还是目标服务器的网络带宽限制,而不是僵尸计算机本身的网络带宽。因为僵尸计算机的网络带宽就算不足,就算很慢,攻击者完全可以使用数量代替质量的方式,利用很多网络带宽不好的僵尸计算机发起大规模的暴力破解,毕竟因为网络安全意识低下,僵尸计算机还是很容易捕获的。当目标服务器的带宽在不久后的未来得到大力提升的时候,攻击者完全可以利用成千上万的僵尸计算机发起大规模的分布式暴力破解攻击,只要目标计算机的网络带宽足以承受这样的攻击,那么攻击者在极短的时间内就可以完成看似非常庞大的密码集的暴力破解攻击。

  二、CPU运算、处理能力低下的解决方法

  同几年前的硬件性能相比,现在的计算机、服务器的运算处理能力已经得到了飞速的发展。正如计算机专家普遍认为的一样,可以预见的是,硬件处理能力的提高将在很长一段时间内,持续而稳定地高速进步。

  1. 运算处理能力的束缚

  单就暴力破解来说,运算处理能力包括两方面的束缚:一方面是目标服务器的处理能力,另一方面是发起攻击的计算机的处理能力。目标服务器的处理能力决定了攻击者可以运用多大量级的攻击规模。

  比如针对一个普通的小型FTP服务器,典型的配置是4GB左右的CPU速度,2~4GB的内存容量。针对这样的小型FTP服务器,在不考虑网络带宽的理论状态情况下,攻击者使用每秒10000~20000次左右的暴力破解攻击效率就基本达到了极限,就算攻击者发起更高效率的暴力破解也无法获得更快的结果。在实际情况中,攻击者要发起这样效率的攻击是比较简单的,甚至不用使用到大规模的僵尸计算机群就可以做到。

  随着计算机硬件的发展,如果服务器在处理包含了数个指令的FTP暴力破解信息的时候,能够做到每秒理论上数十万、数百万次的请求和应答运算,那攻击者完全就可以放开手脚进行暴力破解攻击了。

  现在的网络中,有些攻击者动用庞大的僵尸计算机群,发起每秒上十万次的FTP暴力破解请求,因为FTP暴力破解的过程是通过连接服务器→获得连接信息→发送账户→获得需求密码信息→发送可能的密码→获得反馈信息→再次发起服务器连接,这样的过程循环进行的,所以看似快速的服务器处理能力并不能满足不断堆积的攻击者计算机连接请求。这就导致了很多攻击计算机发送的密码验证信息被丢弃,攻击计算机无法获得正常的服务器返回信息,最终导致暴力破解失败。发起攻击的计算机的处理能力决定了攻击者是否需要动用分布式的暴力破解攻击。同被攻击目标服务器不同的是,被攻击者控制的僵尸计算机的运算能力并不直接决定暴力破解的成败,而是对暴力破解的整个时间和成功率有非常重要的影响。

  在理论极限中,不考虑网络带宽,只考虑硬件处理能力的情况下,假使FTP服务器每次处理一个完整的FTP连接请求需要万分之一秒,而同时能处理的请求数目是10000个。那么,最完美的暴力破解模型是使用10000个僵尸计算机,完成万分之一秒内的暴力破解攻击。也就是说,在最小的目标服务器的处理能力下,使用目标服务器最大的处理能力来进行暴力破解。这样的暴力破解攻击成功率理论是100%,而在保证了成功率的基础上,时间是最短的。那么,现在的攻击者是如何解决服务器和僵尸计算机运算处理能力的呢?

  2. 分布式暴力破解提高成功率

  分布式暴力破解在很多时候是提高成功率的保障。对攻击者来说,目标服务器的处理能力是不可控的,攻击者是无法提高目标服务器的处理能力的,所以必须适应目标服务器的处理能力,由此才采用了分布式的暴力破解技术。

  采用分布式穷举的好处是,在攻击者不知道目标服务器的负载能力的时候,可以通过灵活的调整僵尸计算机的数量,来逐渐摸索目标服务器的负载能力,以便达到在目标服务器不丢包、不误报的情况下,在保证最高成功率的前提下,尽量提升暴力破解的时间。举例来说,如果目标服务器的负载能力是每秒处理1000次FTP连接、账户密码验证、信息发送,攻击者如果使用每秒可以完成10次上述过程的僵尸计算机进行暴力破解,如果攻击者使用了10000台僵尸计算机,那目标服务器的运算能力显然是跟不上的,也就可能出现误报或者错误的情况,最佳的情况是使用100台僵尸计算机,满足目标服务器的运算处理能力最大化,并且也能够在保证100%成功的基础上最大化地缩小暴力破解时间。

  总的来说,分布式暴力破解是对攻击者的攻击经验的一种考验。如果分布的僵尸计算机数量太多,结果可能是很快完成了暴力破解,但是因为误报和丢弃的存在,而无法获得正确的密码:如果分布的僵尸计算机数量太少,虽然可以很稳妥地进行完全部的暴力破解攻击,获得想要的密码,但是时间可能极长。

  3.根据僵尸计算机的性能编写高效率的暴力破解程序

  另外一个能在保证成功率的前提下,同时大大缩短暴力破解的时间的方法是调整暴力破解程序的运行速度。一个适合僵尸计算机处理能力的暴力破解程序在攻击过程中是非常重要的。

  如果暴力破解程序在僵尸计算机上运行很吃力,已经超出了僵尸计算机的处理能力,结果可能是原本正确的密码也得不到相应的正确结果,因为僵尸计算机已经无法完成各种信息的收发和处理了。

  如果暴力破解程序在僵尸计算机上运行得很轻松,系统性能有很多的容余,这样的情况下,整个暴力破解的时间将会很长。所以,要发起一个在保证成功率的前提下,还要尽量缩短暴力破解时间的攻击,需要攻击者根据自己的僵尸计算机的情况,选择不同的暴力破解程序消耗,以尽量达到成功率和时间两者的平衡。

  三、 安全策略的突破

  如果苛刻地说网络带宽和运算处理能力都是非技术因素,无法可控地进行优化的话,那么安全策略就是最直接也是最有效的防御措施了。对暴力破解来说,安全策略在很大程度上对暴力破解的成功率、时间甚至是否能发起攻击都存在着很大的影响。不过之所以说暴力破解是一种放之四海而皆准的攻击方式,就在于它可以经过攻击者简单的变化,而达到突破安全策略的目的。需要指出的是,本节的安全策略是单独的和暴力破解相关的安全策略,并没有涉及诸如密码期限、密码长度、通信加密等与暴力破解无关的安全策略。

  1. 连接频率限制及其突破

  随着网络安全意识的逐渐提高,重视安全的管理员一般会限制FTP服务器的连接频率。所谓的连接频率是指管理员定义了在特定时间段内的同一用户的连接次数,在这个次数限制之内可以任意连接,如果超出这个次数限制则拒绝连接。

  网络安全工程师或管理员通过对连接频率的限制,一方面可以合理地分配FTP服务器的处理运算能力,避免出现某一个用户因为使用了超快的连接而大量占用服务器资源的情况,另一方面可以对普通的基于账户密码的暴力破解攻击进生行之有效地限制。

  大家注意实际网络中也存在其他时间和连连接频率限制的规则,不一定是5秒一次连接,也不一定是10秒后才允许下一次连接。如果是默认的高效率的FTP暴力破解,一般情况下都是一秒发起上百次连接尝试,大大地超出了服务器允许的范围,所以这样的暴力破解显然是不能成功的,会被服务器一直拒绝连接。针对这样的情况,有经验的攻击者在发现目标服务器存在这样的连接频率限制以后,会适当地修改暴力破解程序的连接频率,让攻击程序在满足安全策略的前提下进行暴力破解。

  比如,攻击者完全可以定义攻击程序每5.1秒进行一次FTP暴力破解尝试,以达到躲开安全策略限制的目的。这样的频率限制策略看似在效率上大大地阻碍了暴力破解的进行, 但是如果只有这一种安全策略的话,是无法阻挡攻击者发起高效的暴力破解的,实际上攻击者可以通过其他攻击策略的改变来变相提高整个暴力破解的效率。

  2. 尝试错误次数限制及其突破

  同连接频率相比,错误次数限制更常见一些,网络上很多FTP服务器的管理员或者工程师都使用了这个安全策略。尝试错误次数限制是指某FTP用户的错误发生次数,当该用户的密码尝试次数超过规定的次数以后,则短期拒绝该用户的连接。举例来说,网络安全工程师可以设定这样的安全策略:从某用户尝试登录开始,连续5次输入密码错误,则返回错误信息,并在FTP系统中拒绝该用户的下一次密码验证,直到超过设定的限制时间结束。

  这样做的好处可以在很大程度上限制普通暴力破解攻击的发起,因为很多暴力破解攻击都是在无数的错误中找寻一个正确的密码。如果遇到这样的策略,暴力破解就几乎没有成功率可言了。不过错误次数限制实际上也是可以突破的,而且突破的方法也并不难。

  对有经验的攻击者来说,一旦发现目标系统存在错误次数限制,则会通过手工验证的方式,彻底摸清究竟允许几次密码错误,后续的拒绝连接时间究竟是多少?一旦弄明白这两点,攻击者会很容易地调整暴力破解策略,突破次数限制。举例来说,如果管理员限制了5次连续错误后30秒不允许连接,则攻击者可以定义暴力破解程序以5次为一个循环,每发起5次攻击就暂停30秒,然后再继续尝试。 另外一种方式是每5次尝试一个新账户,在服务器开始拒绝当前账户连接的时候,使用新的账户进行暴力破解尝试,直到所有的用户名都尝试过一遍再重头开始。还有一个大多数攻击者采用的方式就是利用分布式的攻击来解决错误次数的限制,每个僵尸计算机都使用独立秒,然后再进行后续的尝试。

  3. IP锁定及其突破

  同上面的两种安全策略相比,IP锁定比较难解决一些,不过只要目标FTP考虑让正常用户使用,那暴力破解就肯定可以发起。IP锁定策略一般是和连接频率、错误次数策略配合使用,也就是说当某账户进行连接以后,如果连接频率过高,或者错误次数超过限制,则开始运用IP锁定策略。

  在实际网络中,IP锁定策略有两个典型的应用方式,一种是当某账户出现异常以后,FTP服务器记录这个账户的IP地址,然后加入自己的黑名单,从此以后均拒绝此IP的连接,除非该用户联系管理员解除黑名单限制;另一种方式是IP限制是暂时的,过一段时间会自动解除。针对自动解除限制的情况,攻击者可以制一样的方法,调整暴力破解的循环时间,在限制时间过后,继续发起暴力破解攻击。针对永久封锁IP的情况,有四种方法可以突破:

  (1).使用代理突破IP封锁

  单纯地使用代理来进行FTP暴力破解是无法突破IP锁定的,只有暴力破解程序可以自动读取代理列表,然后在目标系统允许的情况下,发起几次暴力破解,然后再更换代理继续发起攻击。这个方法实现起来虽然简单,但是实际效果并不好,因为就算是网络攻击者也不能够保证构建一个拥有足够多代理,并且连接速度稳定、不产生意外数据接收错误的代理群,如何获得更多的代理呢?我们可以去网页上搜索,也可以自己用代理猎手来找代理,他最大的特点是搜索速度快,最快可以在十几分钟内搜完一个B类地址。如果单纯的代理无法满足需要的话我们还可以换用Muti Proxy实现IP动态自由切换功能,通过使用Sockscap+Sksockserver实现完美组合以达到组合代理的需求。如下图1、2所示。

  

  图1

  

  图2

  2) .使用ADSL类的动态IP机制突破IP封锁

  很多人都知道ADSL每次重新拨号以后都会分配一个新的IP,而且网络中也已经存在很多不断自动拨号的程序,如果攻击者愿意,自己编写一个类似的程序和暴力破解程序相配合,完全可以做到无差别的暴力破解。当然,使用网络上己有的自动拨号程序也可以满足要求。

  这个方法总的来说是比较好的,但是对攻击者的僵尸计算机有一定的要求。

  3) .使用SteganosIntemet Anonym Pro和Hide Ip Easy之类的程序突破IP封锁

  

  图3

  Steganos Internet Anonym Pro是国外顶级黑客研究出的自动变化IP,的程序,是一套功能强大的网络身份隐藏工具软件,用户可以通过该软件很简单地隐藏自已的IP、更换自己的IP。一般情况下,Steganos Internet Anonym Pro的IP变化是1秒钟变一次,而IP地址的位置一会儿在英国,一会儿在加拿大,变换频率非常快。从原理上讲,Steganos Intemet Anonym Pro是通过代理方式实现IP地址不停变化目的的,因此在IP地址变换之前,需要先测试该程序内置代理服务器的工作是否正常,并根据测试结果筛选出工作性能最稳定的代理服务器,如图4所示。使用Steganos Intemet Anonym Pro发起暴力破解攻击的话,攻击者如果适当地调整了暴力破解程序和循环间隔,以适应SteganosIntemet Anonym Pro的IP变换间隔,完全可以做到无视IP限制策略。

  

  图4

  4). 计算机标识限制及其突破

  最烦琐的FTP安全策略就是使用用户计算机的标识来进行限制了。所谓用户计算机的标识是指在FTP服务器和用户计算机的交互中,服务器通过某种途径记录了用户计算机的某些标识,如MAC地址、Ccookies信息、硬件编号等。当管理员设置的连接频率、错误次数限制达到的时候,FTP服务器就会根据计算机标识来识别用户计算机,进而进行连接限制。

  这样的限制方法在网络上出现的不多,不过国外的某些营利性组织经常使用这样的方法来进行安全保障,比如投资公司、股票顾问、非法博彩等站点。从技术上说,这样的策略是比较狠的,要对这样策略下的FTP服务器进行暴力破解攻击,比较难--但不是说毫无办法。举例来说,常见的这种限制是通过网卡的MAC地址识别来实现的,而MAC地址是可以更改的,攻击者完全可以自己编写程序,每次暴力破解发起的时候,都改变一次MAC地址。当然,网络中到处都是MAC地址的改变程序,甚至很多硬件信息也是可以随意生成的,如Mac MakeUp等,如图5

  

  图5

  如果目标FTP服务器是通过cookies等信息来辅助验证的话,突破方法就更为简单了。攻击者可以自己编程实现每次暴力破解前都清空一次cookies,也可以使用SteganosIntemet Anonym Pro等工具实现cookies自动删除、浏览记录自动删除等。

四、应对措施第三方软件Fail2ban加固方法

魔高一尺道高一丈,总的来说,只要FTP服务器妄图让正常用户使用,要彻底地杜绝FTP的暴力破解攻击就非常困难,至少目前没有办法实现,下面我们用第三方软件来进行加固,经过笔者长期对比发现Fail2ban对于解决暴力破解、非法扫描能起到比较好的效果,它是一个基于防火墙链添加新规则构成,并发送e-mail通知系统管理员。Fail2ban不仅可以使用自动识别可能的暴力入侵,而且可按照快速且简易的用户自定义规则去分析,因为fail2ban 的原理是调用iptables 实时阻挡外界的攻击,按照你的要求在一段时间内找出符合条件的日志,然后动作,所以你的系统里必选装有iptables,以及Python的支持。

1.下载安装:

在基于debian系统下安装fail2ban是非常畅快的。以root用户执行下列命令

# apt-get install fail2ban

在GNU/Linux 系统上源码安装,为了编译Fail2ban,你需要下载最新的源码(http://sourceforge.net/projects/fail2ban )。当获取后,你可以该改变你的源码目录,并执行下列命令:

#tar xvjf fail2ban-x.x.x.tar.bz2

你会在当前工作目录下得到一个Fail2ban的解压后的源码目录。你须CD到新的目录中。现在以root用户执行安装:

#./setup.py install

Fail2ban 会安装在 /usr/share/fail2ban/ 和 /usr/bin/目录中,装好后,稍微根据自己的情况改一下配置就可以使用了。

2.系统配置

一个典型的配置文件如下:

/etc/fail2ban/
├── action.d
│   ├── dummy.conf
│   ├── hostsdeny.conf
│   ├── iptables.conf
│   ├── mail-whois.conf
│   ├── mail.conf
│   └── shorewall.conf
├── fail2ban.conf
├── fail2ban.local
├── filter.d
│   ├── apache-auth.conf
│   ├── apache-noscript.conf
│   ├── couriersmtp.conf
│   ├── postfix.conf
│   ├── proftpd.conf
│   ├── qmail.conf
│   ├── sasl.conf
│   ├── sshd.conf
│   └── vsftpd.conf
├── jail.conf
└── jail.local

每个.conf文件都会被名为 .local的文件覆盖。.conf首先被读取,其次是.local。新的配置会覆盖早先的。因此,.local 文件不必包含每个相应于.conf中的选项,只是填写你想要覆盖的设置。

首先编辑fail2ban.conf

#vi /etc/fail2ban.conf                         #以 daemon 方式启动 fail2ban
background = true                          #允许尝试次数
maxfailures = 3                           #触发 maxfailures 之後的封锁时间(秒); 设为 -1 表示永远封锁
bantime = 3600                             #以 findtime (秒) 时间内的错误记录作为 maxfailures 的计数基准
findtime = 600                             #排除 IP 范围, 以空白隔开
ignoreip = 127.0.0.1 192.168.0.0/24        #不启用 mail 通知
[MAIL]enabled = false                      #修改自 VSFTPD, 未提及的部份保持原设定
[PROFTPD]enabled = true
logfile = /var/log/proftpd/proftpd.log
failregex = no such user|Incorrect password #未提及的部份保持原设定
[SSH]enabled = true
logfile = /var/log/secureservice fail2ban

开始启动这个服务启动以后,每天都能在 /var/log/fail2ban.log 中看到有攻击的肉鸡被 ban 了。

下面一步就复制初始化脚本到系统的 /etc/init.d 目录下,执行chkconfig 和update-rc.d或手工创建一个符号链接,设置权限


# chmod 755 /etc/init.d/fail2ban
#chkconfig -a fail2ban
#ln -s /etc/init.d/fail2ban /etc/rc2.d/S20fail2ban

最后,整合fail2ban到日志循环中


创建文件:"/etc/logrotate.d/fail2ban":
/var/log/fail2ban.log {
    weekly
    rotate 7
    missingok
    compress
    postrotate
      /usr/local/bin/fail2ban-client reload 1>/dev/null || true
    endscript

最后是Iptables微调,只允许每组IP同时5个21端口转发 ,类似功能大家可以去发挥。

#iptables -A FORWARD -p tcp --syn --dport 21 -m connlimit --connlimit-above 5 --connlimit-mask 24 -j DROP

好了,经过安装、配置下面我们看看使用它的效果吧,先浏览一下iptables

#iptables -L -nv
pkts  bytes  target        protopt in     out     source       destination        
301   12740  fail2ban-ftp  tcp --  *       *     0.0.0.0/0      0.0.0.0/0       tcp dpt:21
3354   253K  fail2ban-SSH  tcp --  *       *     0.0.0.0/0      0.0.0.0/0       tcp dpt:22
438   33979  fail2ban-httpdtcp --  *       *     0.0.0.0/0      0.0.0.0/0       tcp dpt:80
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target     prot opt in     out     source               destination        
Chain OUTPUT (policy ACCEPT 5703 packets, 829K bytes)
pkts bytes target     prot opt in     out     source               destination        
Chain fail2ban-SSH (1 references)
pkts bytes target     prot opt in     out     source               destination        
3354 253K RETURN     all -- *      *       0.0.0.0/0            0.0.0.0/0          
Chain fail2ban-ftp (1 references)
pkts bytes target     prot opt in     out     source               destination        
301 12740 RETURN     all -- *      *       0.0.0.0/0            0.0.0.0/0          
Chain fail2ban-httpd (1 references)
pkts bytes target     prot opt in     out     source               destination        
438 33979 RETURN     all -- *      *       0.0.0.0/0            0.0.0.0/0

查看fail2ban的日志

通过以下命令就能方便的查看到被记录的非法暴力破解IP

# cat fail2ban.log | grep '] Ban ' 

最后,我们要注意fail2ban是一个日志分析器,在写入日志前不会做任何事情。大多数系统日志守护进程都会缓冲他们的输出。这可能会和fail2ban性能有所冲突。因此,最好能禁止缓冲你的系统日志守护进程,以提高性能。目前来看,只要FTP服务器希望让正常用户使用,要完全杜绝FTP暴力破解攻击就会很难,因此要从细微之处入手,尽量降低被暴力破解的概率。

(0)

相关推荐

  • 忘记ftp密码使用python ftplib库暴力破解密码的方法示例

    python具体强大的库文件,很多功能都有相应的库文件,所以很有必要进行学习一下,其中有一个ftp相应的库文件ftplib,我们只需要其中的登录功能,然后利用多线程调用相应字典里面的字段进行登录,还能根据自己的需要,根据自身的情况编写需要的程序,让程序代替我们去做一些枯燥的重复工作. 下面直接上代码,下面是主文件 复制代码 代码如下: import os import time import threading class mythread(threading.Thread): def __in

  • win2003防止暴力破解的防范方法

    最近发现我的服务器上 winlogon.exe 和 csrss.exe 这两个进程一直不断的启动.关闭,怀疑是被暴力破解了,我试了下,只要你用远程连到服务器上就会启动这两个进程,关闭远程就会结束这两个进程,说明我的推断是正确的. 所以得赶紧禁止这样 管理工具->本地安全设置->本地策略->安全选项->网络访问: 不允许 SAM 账户和共享的匿名枚举 启用即可 鉴于有些朋友不会操作,特弄个图文的 开始 -> 运行  gpedit.msc 第二步: 应用确定以后就可以了. 为了防

  • 用shell脚本防ssh和vsftpd暴力破解的详解讲解

    脚本需求如下:此SHELL脚本放在crontab计划任务里,每隔6小时(此时间根据实际情况来定义)就去读取/var/log/secure脚本,取出里面恶意猜测IP,如果单位时间内(一星期)的连接数是高于一个阀值,例如100(此阀值也可以根据实际情况来定义),则将其加进/etc/hosts.deny黑名单里,如果低于此阀值,则无视此IP. /var/log/secure里认证失败信息如下: 复制代码 代码如下: Nov 28 10:18:08 centos2 sshd[7556]: Connect

  • 暴力破解FTP服务器技术探讨与防范措施分享

    大家通常会认为暴力破解攻击只是针对某一种FTP服务器发起的攻击,能具有代表性吗? 随着Internet的发展出现了由于大量傻瓜化黑客工具,任何一种黑客攻击手段的门槛都降低了很多,但是暴力破解法的工具制作都已经非常容易,大家通常会认为暴力破解攻击只是针对某一种FTP服务器发起的攻击,能具有代表性吗?可以拓展到其他的网络?或服务器上吗?答案当然是肯定的.暴力破解这种软件,使用起来没有什么技术含量原理就是一个接一个的试,直到试验出正确的密码,也就是破解成功了.不过这种破解方式成功几率不高,耗费时间多,

  • python编写暴力破解FTP密码小工具

    python具体强大的库文件,很多功能都有相应的库文件,所以很有必要进行学习一下,其中有一个ftp相应的库文件ftplib,我们只需要其中的登录功能,然后利用多线程调用相应字典里面的字段进行登录,还能根据自己的需要,根据自身的情况编写需要的程序,让程序代替我们去做一些枯燥的重复工作. 下面直接上代码,下面是主文件 复制代码 代码如下: import os import time import threading class mythread(threading.Thread): def __in

  • IIS 架设FTP服务器图文教程

    在企业中,对于一些大文件的共享,通常采用FTP这种形式来完成,并且由于FTP能消除操作系统之间的差异,对于不同的操作系统之间共享文件的作用就显得尤为突出. 一.FTP服务器的工作方式 FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式.其中PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路.当需要传送数据时,服务器从20端口向客户端的空闲端口发送连接请求,建立一条数据链路来传送数据.而PASV(被动

  • python实现从ftp服务器下载文件的方法

    本文实例讲述了python实现从ftp服务器下载文件的方法.分享给大家供大家参考.具体实现方法如下: import ftplib ftp = ftblib.FTP("ftp.yourServer.com") ftp.login("username","password") filename = "index.html" ftp.storlines("STOR "+filename,open(filename

  • Python中FTP服务与SSH登录暴力破解的实现

    目录 前言 SSH爆破 脚本演示 信号量类 with 用法 FTP爆破 服务搭建 匿名扫描 暴力破解 总结 前言 本文继续学习下 Python 编程在网络攻防领域的应用,主要是通过 Python 脚本进行 SSH 登录爆破和 FTP 服务登录爆破. SSH爆破 演示环境借助 Kali 虚拟机进行自身的 SSH 服务的登录爆破,注意提前修改/etc/ssh/sshd_config配置文件并执行命令service ssh start运行 SSH 服务. 脚本演示 先来看看代码: from pexpe

  • JAVA技术实现上传下载文件到FTP服务器(完整)

    具体详细介绍请看下文: 在使用文件进行交互数据的应用来说,使用FTP服务器是一个很好的选择.本文使用Apache Jakarta Commons Net(commons-net-3.3.jar) 基于FileZilla Server服务器实现FTP服务器上文件的上传/下载/删除等操作. 关于FileZilla Server服务器的详细搭建配置过程,详情请见 FileZilla Server安装配置教程 .之前有朋友说,上传大文件(几百M以上的文件)到FTP服务器时会重现无法重命名的问题,但本人亲

  • 图解经典FTP服务器工具 SERV-U最安全的设置【防止被入侵】

    作为一款精典的FTP服务器软件,SERV-U一直被大部分管理员所使用,它简单的安装和配置以及强大的管理功能的人性化也一直被管理员们称颂.但是随着使用者越来越多,该软件的安全问题也逐渐显露出来. 首先是SERV-U的SITE CHMOD漏洞和Serv-U MDTM漏洞,即利用一个账号可以轻易的得到SYSTEM权限.其次是Serv-u的本地溢出漏洞,即Serv-U有一个默认的管理用户(用户名:localadministrator,密码:# @$ak#. k;0@p),任何人只要通过一个能访问本地端口

  • FileZilla Server ftp 服务器下通过alias别名设置虚拟目录(多个分区)

    最近检查服务器的时候发现磁盘空间不够用了,正好有两个硬盘正好,一个硬盘还空着,正好通过ftp服务器的别名功能实现添加空间了,这样就不用重新弄机器了 说明: FileZilla Server 的虚拟目录设置与其它 FTP 服务器软件有所不同.在 FileZilla Server 中设置虚拟目录,必须采用 FTP 根目录 + 虚拟目录名的形式来进行.比如你 FileZilla Server 的根目录(即 Home 目录)为 E:\ftp,现在你要将 D:\media 加入虚拟目录,则需要在 D:\m

  • Python脚本暴力破解栅栏密码

    今天遇到一个要破解的栅栏密码,先给大家介绍通用的脚本. 方法一(通用脚本): #!/usr/bin/env python # -*- coding: gbk -*- # -*- coding: utf_ -*- e = raw_input('请输入要解密的字符串\n') elen = len(e) field=[] for i in range(,elen): if(elen%i==): field.append(i) for f in field: b = elen / f result =

随机推荐