4

У меня есть веб-сайт, который недавно получил так много трафика, что нагрузка на мой сервер достигла небес.

load average: 83.99, 72.89, 77.70

Мой сайт размещен на выделенном сервере с 64 ГБ оперативной памяти и процессором Intel i7 6700k. и стоит за облачной вспышкой.

Я не использую аналитику для отслеживания посетителей.

За последние 3-4 дня трафик увеличился, и у меня сложилось впечатление, что это обычный трафик на моем сайте, пока я не обнаружил, просматривая другие сайты с помощью поиска Google, что какой-то другой сайт действовал как онлайн / обратный прокси и загружал мой сайт. так как их собственный и его сайт имели гораздо больше трафика, чем мой, поэтому я получил доступ

https://www.whatismyip.com/

используя прокси этого сайта, например

www.example.com/proxy_url=https://www.whatismyip.com

чтобы получить IP-адрес, а затем заблокировал его IP-адрес в cloudflare. Этот метод невозможен каждый раз, когда кто-то переходит на мой сайт.

Итак, как я могу узнать, делает ли какой-либо IP-адрес слишком много запросов на мой сайт?


Проблема решена. Что я сделал 1) Включить журналы на NGINX

nginx.conf

http{
  #main log format for capturing real ip addresses
log_format main '$http_x_forwarded_for - $remote_user [$time_local] "$host" "$request" '
            '$status $body_bytes_sent "$http_referer" '
            '"$http_user_agent" $request_time';
}

mydomain.com.conf

server{
access_log  /usr/local/nginx/logs/access.log main;
}

nginx -t

service nginx restart

2) я пошел на сайт, который был обратным прокси на мой сайт. и попытался получить доступ к какой-то несуществующей странице.

например, https://www.proxy-example.com/proxy_url=https://www.my-example.com/BAN_THIS_IP

3) Я проверил свои журналы для BAN_THIS_IP

cat /usr/local/nginx/logs/access.log | grep BAN_THIS_IP

и нашел IP-адрес сервера.

4) Добавлен этот IP-адрес в cloudflare и установлен на Block.

Спасибо

2 ответа2

5

Простого решения вашей проблемы не существует, так как оно недостаточно четко определено (особенно в отношении того, как оно достигает вашей сети), однако в вашем наборе инструментов есть ряд инструментов, в том числе -

  1. Cloudflare передает заголовки CF-Connecting-IP и X-Forwarded-For. Вы должны зарегистрировать эту информацию вместе с запросом - как вы это сделаете, будет зависеть от вашего веб-сервера. Вот ссылка на то, как это сделать в Apache.

  2. Получив вышеуказанную информацию, вы можете настроить fail2ban для подсчета количества обращений к этому файлу журнала за заданное время и черного списка на основе большого количества обращений. Не указывайте это ниже, поскольку каждый элемент будет записан в этот файл журнала.

  3. Большинство хороших веб-серверов позволяют вам обрабатывать трафик на основе различных переменных - одна из них - строка USER-AGENT - если это стандартный прокси-сервер, он, вероятно, установит строку user-agent так, как вы можете поднимите это.

  4. Используйте IPTables - вы можете ограничить максимальное количество соединений на IP-адрес с помощью модуля connlimit. Посмотрите здесь для реализации. К сожалению, это не будет работать слишком хорошо, если вы используете cloudflare, поскольку все ваши соединения будут происходить с одного IP-адреса.

4

Запрет законных пользователей, которые неосознанно приходят на ваш сайт через прокси-сервер, - верный способ потерять трафик или получить плохую репутацию. Вам лучше атаковать прокси через его провайдера.

Ответ на StackOverflow подробно объясняет способ использования в nginx комбинации заголовков для обслуживания запросов, которые адресованы вам только через правильное имя хоста. Вы можете адаптировать это решение для определения имени прокси-сервера, использованного в запросе клиента, и использовать это имя, как описано ниже.

Хороший совет дает этот другой ответ :

Вот несколько стратегий, которые вы можете рассмотреть:

1. Из журналов вашего сервера выясните, с помощью чего прокси-сервер загружает ваш сайт, и выборочно меняйте ответы для него.
например, если он использует одного конкретного поставщика, заблокировать или изменить ответы для своего адресного пространства

2. Может быть вполне достаточно просто неофициально уведомить провайдера о прокси
Обязательно свяжитесь напрямую с их отделом злоупотреблений, а не с продавцами. если IP-адрес их сервера зарегистрирован другой компанией, а не регистратором домена, выберите путь наименьшего сопротивления - сначала обратитесь к поставщику со штаб-квартирой в стране, которая ближе к вашей.

3. В зависимости от ДВУ, будет практически невозможно определить оператора сайта и / или получить судебный приказ, который вынудит их DNS-провайдера отказаться от него.

4. Сообщить о них в Google Safe Browsing
Используйте опцию Report Phishing Page. Это - если наши повелители Google примут такое решение - создаст большое жирное предупреждение для пользователей прокси и удалит сайт из результатов поиска. Большинство пользователей большинства браузеров используют списки блокировки безопасного просмотра Google, так что это повлияет не на всех, а на близких.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .