Страница 1 из 1

[3.2] Многочисленные запросы на Ajax Base

Добавлено: 13.11.2018 12:48
demonlibra
После проблем с повышенной нагрузкой на сервер из китайских сетей начал анализировать поступающие запросы.
Форум, мягко говоря мало посещаемый, так что аномалии сразу бросаются в глаза.

Написал небольшой bash-скрипт для подсчета запросов с разных IP и последующей сортировкой.
bash-скрипт 

Код: Выделить всё

log_file="xxx.xxx.ru.access_log"
statistic_file="statistic"
statistic_sort="statistic_sort"

clear

#Копирование файла лог с сервера
echo "Для копирования файла лог введите пароль или нажмите CTRL+c для отмены"
scp -C xxx@ssh.xxx.nichost.ru:/var/log/$log_file /mnt/data/$log_file

lines=`wc -l $log_file`
lines=${lines/$log_file/""}
echo
echo "Количество строк = " $lines

cp /dev/null $statistic_file

j=100
while read LINE
    do
		#Вывод номера обработанной строки
		i=$(($i + 1))
		if [ $i = $j ]
			then 
				echo -ne "Обработано $i строк из $lines\r"
				j=$(($j + 100))
		fi
		
        ip=${LINE%%-*}
        ip=`echo $ip | sed s/" "//g`
        
        #Записать IP в результат, если встречается впервые
        if [[ `cat "$statistic_file" | grep -c "$ip"` = 0 ]]
            then
				counter=`cat $log_file | grep -c "$ip"`
				echo -e $counter"\t"$ip >> $statistic_file;
        fi
done < $log_file

echo -ne "Обработано $i строк из $lines\r"

count_ip=`wc -l $statistic_file`
count_ip=${count_ip%%" "*}
echo "Количество уникальных ip = " $count_ip #> $statistic_file

#Сортировка результата по количеству запросов
cat $statistic_file | sort -gr > $statistic_sort

#Вывод в терминал IP с самым большим количеством запросов
echo
echo "Список IP с самыми многочисленными запросами:"
echo
head -n 30 $statistic_sort

#Вывод в терминал IP с самым большим количеством запросов с сортировкой по IP
echo
echo "Список самых частых запросов с сортировкой по IP:"
echo
head -n 30 $statistic_sort | sort -k 2
Результат за последние 12 часов 
Слева - количество запросов

Код: Выделить всё

5568 109.252.69.206
132  217.20.164.113
118  66.102.9.57
113  85.93.59.120
112  66.102.9.55
112  66.102.9.53
111  46.216.24.154
109  195.206.51.98
101  78.85.14.197
96   95.43.62.167
76   46.56.196.214
75   5.227.64.140
70   93.76.162.31
62   217.79.0.210
61   8.37.234.212
61   36.80.232.231
59   103.5.132.8
58   5.145.215.248
56   176.59.212.183
55   5.149.203.16
53   109.252.61.106
52   176.213.151.19
51   94.25.167.1
51   92.50.156.22
51   85.140.6.255
51   46.133.152.84
49   90.188.20.43
49   37.235.48.244
49   31.23.18.11
Наблюдаю частые обращения к выключенному модулю Ajax Base. Например в последнем логе это был адрес 109.252.69.206, вчера 77.40.57.81
Начало всех запросов с этих адресов следующие:
GET /app.php/ajax_base/statistics
GET /app.php/ajax_base/who_is_online
К другим страницам с этих адресов запросы отсутствуют.

Как-то можно с этим бороться? Не смотря на то что ответы на эти запросы 404 186 нагрузку на сервер это тоже создает.

Re: [3.2] Многочисленные запросы на Ajax Base

Добавлено: 13.11.2018 12:58
Siava
demonlibra, частые запросы на ajax - это норма.
Как давно вы этот модуль отключили?

Re: [3.2] Многочисленные запросы на Ajax Base

Добавлено: 13.11.2018 13:08
demonlibra
Siava писал(а): 13.11.2018 12:58 Как давно вы этот модуль отключили?
С неделю назад. После "нашествия китайцев".

Смущает следующее:
  • большое количество запросов,
  • с одного адреса,
  • этот адрес только к ajax_base обращается
  • все запросы как по расписанию каждые 15 секунд круглосуточно
Часть файла лог 
109.252.69.206 - - [13/Nov/2018:07:56:07 +0300] "GET /app.php/ajax_base/who_is_online
109.252.69.206 - - [13/Nov/2018:07:56:07 +0300] "GET /app.php/ajax_base/statistics
109.252.69.206 - - [13/Nov/2018:07:56:22 +0300] "GET /app.php/ajax_base/statistics
109.252.69.206 - - [13/Nov/2018:07:56:22 +0300] "GET /app.php/ajax_base/who_is_online
109.252.69.206 - - [13/Nov/2018:07:56:37 +0300] "GET /app.php/ajax_base/statistics
109.252.69.206 - - [13/Nov/2018:07:56:37 +0300] "GET /app.php/ajax_base/who_is_online
109.252.69.206 - - [13/Nov/2018:07:56:52 +0300] "GET /app.php/ajax_base/statistics
109.252.69.206 - - [13/Nov/2018:07:56:52 +0300] "GET /app.php/ajax_base/who_is_online

Re: [3.2] Многочисленные запросы на Ajax Base

Добавлено: 13.11.2018 13:10
Siava
demonlibra, если кто-то открыл ваш форум ещё до того, как было отключено расширение ajax base, то после его отключения браузер будет продолжать слать ajax-запросы каждые n-секунд до тех пор, пока пользователь не обновит страницу или не выключит комп :)
Моё предположение :)

Re: [3.2] Многочисленные запросы на Ajax Base

Добавлено: 13.11.2018 13:13
demonlibra
Не сходится. Ajax Base был отключен неделю назад. А этот IP бомбит только сегодня. Вчера было то же самое с другого IP.

Пока мы тут общались еще тысяча запросов набралась.

Re: [3.2] Многочисленные запросы на Ajax Base

Добавлено: 13.11.2018 13:25
Siava
demonlibra, значит бот собрал базу ссылок с вашего форума, когда работал ajax base и бомбит теперь по ним.

Re: [3.2] Многочисленные запросы на Ajax Base

Добавлено: 13.11.2018 20:56
Sheer
Запретите этот IP на уровне .htaccess

Re: [3.2] Многочисленные запросы на Ajax Base

Добавлено: 14.11.2018 9:36
demonlibra
Sheer писал(а): 13.11.2018 20:56 Запретите этот IP на уровне .htaccess
Сделал так с двумя IP. Запросы с этих IP сразу прекратились. Спасибо.

Re: [3.2] Многочисленные запросы на Ajax Base

Добавлено: 15.11.2018 21:15
demonlibra
Продолжает долбиться 77.40.57.81
Больше 10 тысяч запросов в день. В .htaccess этот адрес запретил. Надеюсь отправка страницы 403 расходует меньше ресурсов, чем отображение страницы форума с сообщением об отсутствующей страницы.

Re: [3.2] Многочисленные запросы на Ajax Base

Добавлено: 09.12.2019 19:35
jd8615
Чтобы темы не плодить (т.к. расширение с бородой и всем известное) спрошу тут.

И мой форум и phpbbguru.net не проходит валидацию. Конкретно это расширение даёт 2 ошибки:
123.jpg
Я уж чего только не пробовал делать и с шаблонами и с listner.php... Поправить верстку получалось для валидатора, но при этом работа расширения становилось кривой - То строчка с легендой пропадала, то дублировалась строка с текущими посетителями.

У кого то мыли будут как поправить?