У меня много запросов из дата-центров на мой веб-сервер во FreeBSD, и иногда у меня возникают проблемы с производительностью моих веб-проектов. Добавление в список IPFW всех дата-центров IP невозможно.
Я не хочу использовать большие системы Anti-DDoS, вместо этого хочу создать bash-скрипт для получения соединений с моим сервером, фильтровать по IP и добавлять в IP-таблицу IPFW IP-адреса, которые теперь подключаются более чем в 5 потоках. Или может быть создание нескольких таблиц в IPFW и добавление по таблицам:
Фильтр по IP должен пропускать IP-адреса Google и других поисковых систем по имени хоста.
Это мой скрипт для соединений grep и сортировки:
netstat -nptcp | egrep -v 'Active|Address' | awk '{print $5}' | cut -d. -f 1-4 | sort | uniq -c | sort -n | tail -n 30
Разбор файлов журналов — это тоже плохая идея, потому что файл журналов иногда бывает большим, и мне нужно на дополнительных ресурсах веб-сервера разбирать и сортировать.
Итак, я уже подумал, может быть, создание этого скрипта на PHP? Но если PHP падает, сервер не будет защищен.
Есть ли еще какие-то соображения, о которых мне нужно знать?
Выполнение этой работы на PHP будет плохой идеей; если у вас есть опыт работы с нижеприведенными скриптовыми интерфейсами, я настоятельно рекомендую это сделать; в противном случае у вас нет другого выбора, кроме PHP, в котором это можно сделать без особых проблем.
Сбой PHP-скрипта не такая уж большая проблема по сравнению с проблемами, перечисленными ниже.
Возможно, вы захотите попробовать BASH / Perl / Python, в зависимости от того, что вам удобно, и создать отдельный скрипт в песочнице (создайте пользователя и добавьте для него разрешение в sudoers только для необходимых задач и держите его подальше от пользователя, выполняющего вебсервер или любая другая задача в интернете)
Других решений пока нет …