Написать bash скрипт для анализа логов nginx и создания списка блокировки IP

ОС Debian 9

Пример лог-файлов прикреплен к заданию

Функции:

Поиск лог файлов по путям /var/www/*/log/access.log

·        IP адреса, совершившие запросы «GET /wp-login.php» и «POST /wp-login.php»

·        IP адреса, получившие более 5 ответов 404 на свои запросы в течении 30 секунд

·        IP адреса, получившие более 5 ответов 400 на свои запросы в течении 30 секунд

·        IP адреса, User agent которых включал в себя:

o  X11; Ubuntu;

o  DotBot/1.1

o  AhrefsBot

o  SeznamBot

o  Список useragent будет дополняться – его необходимо вынести в отдельный файл, который будет загружаться при каждом запуске скрипта

 

Не менее 3 вхождений wp-login.php

Для файлов /var/www/*/log/error.log

·        Собирать IP с вхождением подстроки «access forbidden by rule

·        Собирать IP с вхождением подстроки «GET /wp-login.php»

·        Собирать IP с вхождением подстроки «POST /wp-login.php»

·        Собирать IP с вхождением подстроки «POST /xmlrpc.php»

·        Собирать IP с 10 и более последовательными обращениями к разным страницам сайта с интервалом менее 1-3 секунды между каждым запросом

Результатом работы скрипта должны быть следующие действия:

1.      Лог файл в csv формате с колонками ip;количество запросов, совершенных к моему серверу

2.      Внесение в список блокировки ip tables IP адресов из п.1

3.      Архивация проанализированных файлов access.log, error.log,

4.      удаление исходных файлов access.log, error.log

5.      перезапуск сервера nginx

Скрипт будет работать из директории /var/www, запускаться с правами пользователя script:www-data.

Все логи принадлежат пользователям из группы www-data

5 лет назад
robertkein
Роман 
41 год
14 лет в сервисе
Был
9 месяцев назад

Выбранный исполнитель

vaxvms
50 лет
12 лет в сервисе
Был
7 часов назад
5 лет назад
$40
1 день
Алексей справился с нетривиальной задачей более чем хорошо. Объяснил абсурдность некоторых требований и сделал все в лучшем виде. Настоятельно рекомендую к сотрудничеству и сам буду обращаться в будущем. Благодарю.
Роман - профессиональный заказчик! Всегда на связи, четкие задачи, мгновенная оплата! Очень приятно работать, буду очень рад дальнейшим задачам!

Заявки фрилансеров

Денис
 
34 года
5 лет в сервисе
Был
4 года назад
1 отзыв
5 лет назад
vaxvms
50 лет
12 лет в сервисе
Был
7 часов назад
5 лет назад
#1
Системное администрирование