ТС помог с одной проблемкой, быстро пофиксил. Советую.
iptables -I INPUT -m set --match-set dropip src --dport 80 -j DROP
iptables v1.4.7: unknown option `--dport'
Вроде куда-то нужно tcp вписать, не?
У меня форум, в .htaccess есть не только реврайты.
Ну вот я поставлю эту связку. Будет рост в производительности, с ддосом будет легче бороться?
Какие подводные камни?
Дак там прокси обычные. Буржуйские, русские и прочие. А если будет реальный ддос, т.е. ботнет. Что я буду делать?
Вообще, найти бы мне пример отказа от апача.
Стоит скрипт:
#!/bin/bash SLEEP_TIME=5 while true; do awk '{print "ipset -A dropip " $1}' /tmp/bad_request.log | sort -u | sh; cat /dev/null > /tmp/bad_request.log sleep $SLEEP_TIME; done
и в предыдущем каталоге есть скрипты подобного содержания:
#!/bin/bash ./scripts/ban_by_ip.sh &
#!/bin/bash killall ban_by_ip.sh 2>&1>/dev/null
В bad_request.log идут айпишники, которые получили 444.
Увидел, что есть 1 айпишник в логе. Посмотрел, в списке бана его нет. Занес его сам через команду ipset -A dropip *IP*, потом гляжу логи, но там всё равно айпишник этот есть. В чем проблема?
awk '{print "ipset -A dropip " $1}' /tmp/ban_location.log | sort -u | sh;
Спасибо вам, разжевываете мне)
Хорошо.
Тогда как будет выглядеть новый скрипт без поиска 444?
Первый вариант.
В кроне где-то ошибка была, один человек помог вынести в bash скрипт и запускать раз в 5 секунд
#!/bin/bash SLEEP_TIME=5 while true; do awk -F '|' '{if($8 == " 444 ")print $1}' /tmp/ban_location.log | awk '{print $1}' | sort -u | awk '{print "ipset -A dropip " $1}' | sh; cat /dev/null > /tmp/ban_location.log sleep $SLEEP_TIME; done
Да я же вам вроде говорил. Это access_log из локейшена.