Переработал скрипт из поста "Парсим лог Exim (борьба с Brute force)"
Главная суть переделки - оформление кода как модуля, теперь его можно использовать из других скриптов Python. Причина, по которой это потребовалось, описана в примечаниях к вышеупомянутому посту.
Окончательный текст скрипта:
Главная суть переделки - оформление кода как модуля, теперь его можно использовать из других скриптов 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]:
Как видим по сравнению с тем что было в начале земля и небо. Результат считаю полученным!
Комментариев нет:
Отправить комментарий