Всем привет!
Имеется FreeBSD, Apache и Nginx.
есть файл /etc/nginx/имя_сайта.site.conf
есть лог /var/log/имя_сайта.access_log
в логе есть строчки такого вида:
178.204.35.111 - - [27/Mar/2016:12:47:41 +0300] "POST / HTTP/1.0" 403 1480 "-" "ApacheBench/2.3"
178.204.35.111 - - [27/Mar/2016:12:47:41 +0300] "POST / HTTP/1.0" 403 1480 "-" "ApacheBench/2.3"
178.204.35.111 - - [27/Mar/2016:12:47:41 +0300] "POST / HTTP/1.0" 403 1480 "-" "ApacheBench/2.3"
178.204.35.111 - - [27/Mar/2016:12:47:41 +0300] "POST / HTTP/1.0" 403 1480 "-" "ApacheBench/2.3"
178.204.35.111 - - [27/Mar/2016:12:47:41 +0300] "POST / HTTP/1.0" 403 1480 "-" "ApacheBench/2.3"
нужно отслеживать в логе появление новых строк, содержащих строку «ApacheBench» (или код возврата 403) и банить ip из этой строки путем добавления его к команде deny в файл /etc/nginx/имя_сайта.site.conf:
server {
deny 178.204.35.111;
...
}
После каждого изменения файла /etc/nginx/имя_сайта.site.conf требуется перегружать nginx командой /etc/rc.d/nginx restart.
вот и все, что должен делать скриптик... Поможете? :)
P.S. Цель скрипта - отражение пианэрских ddos атак))