Как узнать какой ip забивает мой сайт?

610
AMB

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

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-адрес слишком много запросов на мой сайт?

3
Я не думаю, что вы можете предотвратить прокси-доступ людей на ваш сайт ... кроме того, что вы просматриваете логи вашего веб-сервера и запрещаете любые IP-адреса, которые являются весьма подозрительными (из-за чрезмерного количества запросов на страницы с одного IP-адреса) , Связанный: https://serverfault.com/questions/419784/how-to-automatics-and-temporary-block-an-ip-address-making-too-many-hits-on Darius 6 лет назад 1
Подождите, Cloudflare уже не отправляет вам IP-адреса всех посетителей через X-Forwarded-For? grawity 6 лет назад 2
@ Grawity это делает, но значит ли это, что я должен регистрировать каждый ip и считать его запросы в течение последних нескольких минут, а затем забанить его вручную? или есть что-то готовое? Спасибо AMB 6 лет назад 0
Вы запрещаете банить его автоматически с [Fail2ban] (https://www.fail2ban.org) Josem 6 лет назад 1
Запрет законных пользователей, которые неосознанно приходят на ваш сайт через прокси-сервер, - верный способ потерять трафик или получить плохую репутацию. harrymc 6 лет назад 0
@harrymc это не просто прокси, это обратный прокси-сервер, поэтому серферы не приходят на мой сайт, они попадают на другой сайт, который обратно проксирует мой сайт, что означает, что он поглощает мои ресурсы и не дает мне рекламный доход., спасибо AMB 6 лет назад 0

2 ответа на вопрос

4
davidgo

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

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

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

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

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

4
harrymc

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

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

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

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

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

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

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

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

Похожие вопросы