Мощный сервер спокойно падает от ДДоса

Den73
На сайте с 26.06.2010
Offline
523
#71

шило на мыло 🍾

зачем нужен barf, этот же функционал реализуется в 1 строку средствами системных утилит.

G2
На сайте с 16.02.2013
Offline
35
#72
Den73:
шило на мыло 🍾

зачем нужен barf, этот же функционал реализуется в 1 строку средствами системных утилит.

Пример можно?:)

Den73
На сайте с 26.06.2010
Offline
523
#73
grisha2217:
Пример можно?:)

то что делает барф


awk '/REGEX/{print $1}' /var/log/nginx/access.log | sort | uniq -c | awk '{if($1 > 10) print "ipset -A ban " $2}' | sh

REGEX - что искать.

если нужно по коду ответа то


awk '{if($8 == '200')print $1}' /var/log/nginx/access.log | sort | uniq -c | awk '{if($1 > 10) print "ipset -A ban " $2}' | sh

$8 может отличаться, в зависимости от структуры логов.

и т.д

ipset нужен и белый список в нем.

можно вообще еще сократить. на чистом awk

G2
На сайте с 16.02.2013
Offline
35
#74
Den73:
то что делает барф



REGEX - что искать.

если нужно по коду ответа то



$8 может отличаться, в зависимости от структуры логов.

и т.д

ipset нужен и белый список в нем.

можно вообще еще сократить. на чистом awk

Наконец-то! Рабочее решение☝

СПАСИБО ВАМ ОГРОМНОЕ.

так как у меня ipset выключен, я довел команду до такого вида:

awk '/?True/{print $1}' /tmp/ban_location.log | sort | uniq -c | awk '{if($1 > 10) print "iptables -I INPUT -j DROP -s " $2}' | sh

🍿🍿🍿

Den73
На сайте с 26.06.2010
Offline
523
#75

если что то находите на просторах сети то изучайте что бы понимать как оно работает иначе последствия могут быть непредсказуемые.

G2
На сайте с 16.02.2013
Offline
35
#76

Если по крону выполнять этот скрипт, примерно раз в 12 минут, будет ли нагрузка?

Den73
На сайте с 26.06.2010
Offline
523
#77
grisha2217:
Если по крону выполнять этот скрипт, примерно раз в 12 минут, будет ли нагрузка?

о ротации логов не забывайте, нагрузка зависит от кол. записей в логе и от текущего состояния системы в целом.

вы можете провести тестирование например распарсив лог с 1млн записей.

время выполнения можно узнать так


time команда
G2
На сайте с 16.02.2013
Offline
35
#78
Den73:
о ротации логов не забывайте, нагрузка зависит от кол. записей в логе и от текущего состояния системы в целом.
вы можете провести тестирование например распарсив лог с 1млн записей.

время выполнения можно узнать так


time команда

А как сделать, чтобы большой лог записывался в архив, ну а дальше по крону?

Andreyka
На сайте с 19.02.2005
Offline
822
#79

Ротировать его - man logrotate

Не стоит плодить сущности без необходимости
G2
На сайте с 16.02.2013
Offline
35
#80

Сделал "по-китайски" выполнение неких скриптов в crontab:


*/1 * * * * tail -n 10000 /tmp/ban_location.log | grep '444' | awk '{print $1}' | sort -u > /tmp/ips
*/1 * * * * for i in `cat /tmp/ips | sort -u`; do iptables -A INPUT -s $i -j DROP; done
*/1 * * * * rm /tmp/ips
*/1 * * * * rm /tmp/ban_location.log

Будут ли эти команды выполняться по порядку? Или же они будут выполняться одновременно? Если второе, то как сделать выполнение этих команд по порядку?

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий