Andreyka, может быть, вы не любите пролетариат ? (с) в смысле не оказываете услуги действительно широким массам клиентов.
iptables-restore не добавляет правила, а перезаписывает всю таблицу. Ро мере роста списка придется постоянно перезаписывать одни и те же IP. Выгоднее запустить одну команду iptables. На больших объемах уже выгоднее ipset.
ТС уже признал, что просто не осилил sudo. Откуда у вас это стремление оставить за собой последнее слово?
Только при нехватке свободных воркеров, а в описанном мной синтетическом тесте нехватка возникает постоянно, их придется убить и создать новых с полной инциализацией php.
Теоретически, на неком синтетическом тесте, если на сервере множество разных сайтов с разными сайтопользователями и нагрузка распределена на них всех равномерно, обычный apache с mod_php может даже обойти php-fpm, за счет отсутствия необходимости порождать процессы каждый раз под разными пользователями. То есть, эта связка даже хуже :)
Если не требуется разграничение прав, то лучше использовать nginx и обычный mod_php.
Неужели с такими параметрами VPS вы еще и собираетесь хостинг устраивать? причем бы тут apache2-itk ?
Если кто-то хочет формировать команды для iptables из под рута, не имея рута - скорее всего, что он делает это из под apache. Иначе их можно просто запустить. В простых решениях вообще не делают разграничений. Есть root и пользователь_для_php - вот и все.
На практике такое не нужно - скрипт от рута может (и должен) уже сразу по обнаружении запускать команды iptables и блокировать гораздо быстрее чем по cron.
В mod_evasive прописывается реакция на атаку в виде программы. Обычно это sudo +iptables с аргументами. Аргумент командной строки переданный в программу перебить нельзя и никаких race conditions не возникает.
myhand, а я и обратил. Это подтверждает, что вы, ориентируясь только на известные условия, не видите в чем конечная цель.
Разумеется в /tmp создается скрипт из под пользователя apache как и результат работы всех остальных скриптов или, например, модуля mod_evasive.
Я уж молчу про классический race condition в таких унылскриптах проверяющих владельца и разрешения.
sudo не просто так рекомендован.
myhand, смотрите ширше - товарищ защиту от ддос делает и запись у него в /tmp. Доверия к контенту скрипта в /tmp как раз нет. Изначально в руководствах для mod_evasive все-таки sudo. То, что кто-то не смог в нем разобраться, это другой вопрос.
Если "добрый друг" пущеный похоститься закачает скрипт в /tmp или в другое место, где создаются команды для рута - все закончится плачевно.
Я правильно понимаю, что вы не нашли другого способа запускать iptables из под рута кроме как через cron ?
Похоже, вам стоит изучить запуск команд через sudo. А то в /tmp вам понапишут однажды скриптов.
Вообще это НЕ GeoIP, а база в текстовом виде. GeoIP специальным образом упаковывают и поиск по ней относительно быстр.