Python - 创建在authlog中具有超过5次失败登录尝试的IP地址的黑名单文件

时间:2010-03-24 17:51:48

标签: python ip-address syslog blacklist

基本上我有一个authlog / syslog文件,其中包含登录尝试和IP地址列表 - 我需要制作一个Python程序,它将创建一个txt文件,其中包含超过5次失败登录尝试的所有IP地址 - 一种“黑名单”。

所以基本上是这样的:

如果“uniqueipaddress”和“authentication failure”出现超过5次,请将uniqueipaddress添加到txt文件。

任何帮助都将不胜感激 - 请尽量使其简单,因为我在Python编程方面非常非常缺乏经验!感谢。

2 个答案:

答案 0 :(得分:1)

对于每一行:

  • 读取IP并尝试状态
  • 按IP保存字典

然后翻阅字典:

  • 使用5次或更多次尝试打印以归档所有IP

Python提示:

  • 逐行阅读文件:for line in open(filename)
  • 解析日志行完全取决于其格式。一些有用的Python工具是字符串的split方法和正则表达式
  • 保留字典,即ips[ip]是尝试次数

答案 1 :(得分:0)

以下代码应该与您正在寻找的内容类似。它并不完美,但它是一个很好的跳跃点。

ips = {}
for line in open('your_log.txt'):
    parts = line.split(' ') #assuming this is a good place to split
    if parts[1] == "AuthenticationFailure":
        if parts[0] in ips:
            ips[parts[0]] += 1
        else:
            ips[parts[0]] = 0

for ip in [k for k,v in ips.iteritems() if v >= 5]:
    #WRITE TO FILE HERE

这假设您的日志文件结构如下:

1.1.1.1 LoginSuccess
2.2.2.2 LoginSuccess
3.3.3.3 AuthenticationFailure