Есть портал с авторизацией и его иногда пытаются брутфорсить. С самыми злостными нужно как то бороться. Есть два лог файла:
- Логи авторизации (к сожалению там нету IP, гораздо облегчило б работу)
- Access логи (тут пишутся IP)
И так, делаем выборку по времени когда срабатывал fail авторизации
1 |
cat auth.log|grep UserLogin|awk '{print $3}'| awk -F, '{print $1}' |
Получаем:
10:33:28
10:33:30
10:33:49
10:33:51
10:33:52
10:33:54
………
Далее выбираем по времени и POST-запросу IP злоумышленника:
1 |
cat localhost_access_log.2014-08-21.txt |grep 10:33:51|grep 'post /login?user' | awk '{print $1}' >> dosIP |
92.0.33.219
213.104.211.226
151.231.220.209
2.29.218.82
2.96.56.50
151.228.37.251
188.31.7.219
78.150.232.53
5.67.12.59
Напишем не большой скрипт для выборки всех IP:
1 2 3 4 5 6 7 |
#!/bin/bash for i in `tail -n 100000 ums.log|grep UserLogin|awk '{print $3}'| awk -F, '{print $1}'` do echo "time $i" cat localhost_access_log.2014-08-21.txt |grep $i|grep grep 'post /login?user'| awk '{print $1}' >> dosIP done |
И выбираем 10 лидеров:
1 |
cat dosIP | sort | uniq -c | sed -r 's/^[ \t]*([0-9]+) (.*)$/\1 --- \2/' | sort -rn |head -10 |
2612 — 81.110.XXX.XXX
668 — 92.28.XXX.XXX
411 — 87.112.XXX.XXX
384 — 86.134.XXX.XXX
307 — 86.168.XXX.XXX
288 — 87.242.XXX.XXX
267 — 82.14.XXX.XXX
245 — 81.108.XXX.XXX
164 — 90.211.XXX.XXX
163 — 5.70.XXX.XXX