среда, 24 июля 2019 г.

Борьба с Brut Force в Exim v2

Переработал скрипт из поста "Парсим лог Exim (борьба с Brute force)"
Главная суть переделки - оформление кода как модуля, теперь его можно использовать из других скриптов Python. Причина, по которой это потребовалось, описана в примечаниях к вышеупомянутому посту.
Окончательный текст скрипта:


#!/usr/bin/env python3.6
# -*- coding: utf8 -*-
import subprocess,os,sys,string

def brut_kill():
    srcips=str(subprocess.check_output("awk '/LOGIN authenticator failed / {print $8}' /var/log/exim/mainlog | tr -d '[]:' | sort",shell=True)).split('\\n')
    ips=[]
    for i in srcips:
        if (i !="'") and (i not in ips) and (srcips.count(i)>2):
            ips.append(i)
            subprocess.call(["/sbin/ipfw", "table", "5", "add", i])

if __name__ == "__main__":
    brut_kill()
Теперь в любом скрипте Python можно выполнить:
import brutforce
brutforce.brut_kill()

При предыдущей реализации в первую минуту каждого часа (причина описана в первой версии поста) проскакивало 2-3 попытки от наших друзей, теперь у каждого IP будет небольшой шанс при ротации логов.
Жду новых результатов.

Результаты:


#awk '/LOGIN authenticator failed / {print $1, $2, $8}' /var/log/exim/mainlog
2019-07-25 00:58:26 [182.108.3.23]:
2019-07-25 00:58:44 [182.108.3.23]:
2019-07-25 00:59:02 [182.108.3.23]:
2019-07-25 00:59:21 [182.108.3.23]:
2019-07-25 00:59:39 [182.108.3.23]:
2019-07-25 00:59:57 [182.108.3.23]:
2019-07-25 01:00:15 [182.108.3.23]:
2019-07-25 03:00:08 [185.137.111.5]:
2019-07-25 05:00:04 [185.137.111.239]:
2019-07-25 05:03:08 [194.110.84.152]:
2019-07-25 05:03:14 [194.110.84.152]:
2019-07-25 05:03:24 [194.110.84.152]:
2019-07-25 05:03:41 [194.110.84.152]:
2019-07-25 06:00:08 [185.137.111.239]:

Содержимое таблицы:


#ipfw table 5 list
182.108.3.23/32 0
185.137.111.5/32 0
185.137.111.23/32 0
185.137.111.123/32 0
185.137.111.132/32 0
185.137.111.200/32 0
185.137.111.239/32 0
185.234.216.105/32 0
185.234.216.164/32 0
185.234.218.126/32 0
193.169.252.174/32 0
194.110.84.152/32 0
203.163.247.143/32 0
223.247.94.157/32 0
Как видим новенькие появляются и рубятся

P.S.

Вот распарсенный лог за сутки:
2019-07-25 03:00:08 [185.137.111.5]:
2019-07-25 05:00:04 [185.137.111.239]:
2019-07-25 05:03:08 [194.110.84.152]:
2019-07-25 05:03:14 [194.110.84.152]:
2019-07-25 05:03:24 [194.110.84.152]:
2019-07-25 05:03:41 [194.110.84.152]:
2019-07-25 06:00:08 [185.137.111.239]:
2019-07-25 14:31:26 [93.139.162.204]:
2019-07-26 03:24:07 [2.233.194.151]:
Как видим по сравнению с тем что было в начале земля и небо. Результат считаю полученным!

Комментариев нет:

Отправить комментарий