首页 » VPS 知识 » 浏览内容

自写程序防止Linux FTP爆力破解


2012-12-29 21:50:44 1,589 0 发表评论 字体: 作者:C.K.

体验版 88 元,个人版 128 元,多用户版 288元个人版160元升级到多用户版。

最近发现Linux扫描SSH,MYSQL,FTP进行用户爆力破解越来越猖獗!特意写了脚本程序来解决下,理论上说:只要是对外网络应用服务,此脚本可以通用,因为它的实现原理很简单“通过程序读取->带登录信息验证的日志文件->调用iptables直接进行封杀”

脚本下载地址:

我以FTP举列,我使用Pure-ftp作为FTP服务器,它日志文件跟系统日志文件绑定在一起:/var/log/messages 知道这些以后,我说下如何使用此脚本

一:修改脚本参数如下

1. vi ftp 打开此脚本,找到#Basic steup对如下5个参数跟据你实际需求修改.

#Basic steup  
  • ftp= '21'  服务端口
  • log_path = '/var/log/messages' FTP日志文件位置
  • ip_count= '30' 累计验证失败多次,进行封杀
  • aut_message = tm[4:10]+ '.*pure-ftpd.*failed.*' 抓取FTP日志失败验证信息
  • list_path='ip_list.txt 记录封杀IP列表目录(此文件程序会自动创建)
  • 注意:aut_message = tm[4:10]+ '.*pure-ftpd.*failed.* 这可能有些人迷糊,这怎么改啊。
  • A: tm[4:10]代表当前时间,这个不需要改

    B: .* 代表多个字符串

    下面是我的失败验证信息格式,这句意思:tm[4:10](当前时间)+ ‘.*pure-ftpd.*(从pureftpd)failed.*(到failed及后面结尾) 明白了吧

    Aug 20 21:44:54 localhost pure-ftpd: (?@192.168.2.2) [WARNING] Authentication failed for user [kkk]

    说明:通过修改如上5个参数,可以得出结论是:当天同一个IP使用FTP登录验证失败30次以上,进行IP封杀

    二:使用脚本

    1:chmod 700 ftp 设置权限

    2:./ftp 手动运行该脚本,如果发现如下报错,是因为日志文件内容中没有登录失败信息,这个报错可以忽略!

    Traceback (most recent call last):
  • File "./ftp", line 49, in <module>
  • D.iptables()
  • File "./ftp", line 40, in iptables
  • for ip in self.ip_list.readlines():
  • AttributeError: port instance has no attribute 'ip_list'
  • 3:vi /etc/crontab 在计划任务里面,创建每隔1分钟运行一次

    * * * * * root /ftp

    三:测试脚本是否成功

    怎么测试呢,5个基本参数中ip_count 数字改小,我这里改成ip_count= ‘1’

    然后使用FTP故意输错密码,让它验证下,

    然后等一分钟,使用iptables –list 看看是否被封杀了

    在重新登录FTP试试,连登录信息没木有了,完全屏蔽了

    好了就到这里了,祝大家好运!最后附下原代码

      网站统计 Statistics

      • 创建时间: 2005年1月3日 距今4942 天
      • 日志总数: 2461
      • 评论总数: 630
      • 标签总数: 654
      • 链接总数: 273
      • 最后更新: 2017-7-1 18:16:33
      • 您是本站第 13705999 位访客

      广告区 Guǎng Gào