нужен bash-скрипт для массового бана IP по условию

12 3
[Удален]
2104

Уважаемые коллеги.

Нужен bash-скрипт (сижу на Debian 7), который позволит массово (в цикле или еще как) забанить те IP, которым выдавалась ошибка 503 в error.log сервера nginx.

Спасибо :)

Могу закинуть денег на пиво на ЯД или вебмани, чей скрипт сработает.

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

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

там в 1 строку. пишите, за пиво можно но я пью дорогое.

[Удален]
#2
Den73:
там в 1 строку. пишите, за пиво можно но я пью дорогое.

Что писать, простите? :)

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

в лс или асю

Den73
На сайте с 26.06.2010
Offline
523
#4
marazmus:
отписал в аську :)

там буду позже

ipset


awk '{if($7 == 503) print $1}' /var/log/nginx/access.log | sort -u | awk '{print "ipset -A ban "$1}' | sh

iptables


awk '{if($7 == 503) print $1}' /var/log/nginx/access.log | sort -u | awk '{print "iptables -A INPUT -s "$1" -j DROP"}' | sh

если парсите error.log то $7 нужно менять.

Evas EvaSystems
На сайте с 31.05.2012
Offline
104
#5

А вы им 444 отдавайте и дело с концом)

Системный администратор Linux. Настройка, сопровождение и оптимизация серверов. Отзывы - searchengines.guru/ru/forum/1017473
pupseg
На сайте с 14.05.2010
Offline
347
#6

решилась проблема ?

Ден, поправь мессадж, на тему того - что в сет в iptables еще создать надо, а то толку? ну засунет он в ipset 100500 айпишников - а они хрен банятся))

Качественная помощь в обслуживании серверов. (/ru/forum/661100) Бесплатных консультаций не даю, не помогаю, не обучаю. Минималка от 100$. Как пропатчить KDE-просьба не спрашивать. Есть форумы (http://linux.org.ru) и полезные сайты (http://www.opennet.ru/).
Himiko
На сайте с 28.08.2008
Offline
560
#7
pupseg:
решилась проблема ?
Ден, поправь мессадж, на тему того - что в сет в iptables еще создать надо, а то толку? ну засунет он в ipset 100500 айпишников - а они хрен банятся))

Полностью как-то так:

apt-get install ipset

ipset -N badip iphash

iptables -A INPUT -p tcp -m tcp -m set --match-set badip src -j DROP

cat /var/log/nginx/access.log | grep " 503 " | awk '{print "ipset -A badip "$1}' | sort -n | uniq | sh; cat /dev/null > /var/log/nginx/access.log

После отработки команды очищается лог, чтобы повторно не банить одних и тех же.

Профессиональное администрирование серверов (https://systemintegra.ru). Круглосуточно. Отзывы (/ru/forum/834230) Лицензии (http://clck.ru/Qhf5) ISPManager,VDSManager,Billmanager e.t.c. по низким ценам.
ngsv
На сайте с 12.10.2012
Offline
47
#8
Himiko:
apt-get install ipset

на ядре 2.6.32 и выше

apt-get install module-assistant xtables-addons-source

m-a prepare && m-a a-i xtables-addons-source && depmod -a
SIQWELL (http://siqwell.com/) - Быстро. Качественно. Дорого.
P
На сайте с 08.03.2007
Offline
250
#9

Почему бы не использовать fail2ban ?

kxk
На сайте с 30.01.2005
Offline
970
kxk
#10

Чем собравшимся не нравится ip route?

Я предлагаю

awk '{if($7 == 503) print $1}' /var/log/nginx/access.log | sort -u | awk '{print "ip route add blackhole "$1}' | sh

И никаких плясок с установкой доп ПО или модулей ядра :)

Ваш DEVOPS
12 3

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