Содержание
24 февраля Интернет
Недавно я заметил значительное увеличение трафика на сайт, как ни странно, весь трафик был прямым трафиком и, похоже, исходит от одного провайдера — xlhost.com inc. После небольшого исследования я обнаружил, что этот провайдер печально известен тем, что позволяет людям запускать VPS с ботами, скребками и т. Д. И общими плохими намерениями.
Мне нужно было найти способ блокировать весь трафик от этого провайдера, что заставило меня задуматься о том, как я могу это сделать, я решил взглянуть на две вещи — диапазон IP-адресов и также бороться с ботами, которых мы можем блокировать пользовательскими агентами, которые, будучи Используется для очистки сайта. Цель этого поста — предоставить руководство о том, как заблокировать эти IP-адреса и любые другие IP-адреса, которые вы, возможно, не захотите посещать на своем веб-сайте. Со временем я добавлю в этот список с вашей помощью.
Блокировка пользовательских агентов в NGINX
Это очень просто сделать, но только действительно полезно, если они нарушают IP, используют там своего собственного бота, нам нужно убедиться, что журналы доступа включены в первую очередь (нажмите на ссылку). После просмотра этих журналов для нарушающих IP и пользовательских агентов я выделю один, который мы заблокируем ниже.
Интересующая нас часть заключается в следующем:
WeSEE: реклама / PageBot (http://www.wesee.com/bot/
Похоже, это любопытный бот, пытающийся увидеть, что запускает реклама techieshelp, и пришло время его убрать. Для этого нам нужно отредактировать блок сервера для нашего сайта, который обычно находится в следующем каталоге и назван в честь вашего сайта.
/ И т.д. / Nginx / сайты, есть в наличии /
После того, как вы нашли свой файл, добавьте следующее в свой блок сервера, как упомянуто в этом примере, мы блокируем WeSEE: Ads / PageBot (http://www.wesee.com/bot.
if ($ http_user_agent = "WeSEE: Ads / PageBot (http://www.wesee.com/bot") { возврат 403;}
Это должно выглядеть так, как показано ниже, очевидно, вы можете заменить пользовательский агент любым пользовательским агентом.
Вы должны добавить вышеупомянутое для каждого пользовательского агента, что заставило меня думать, что блокировка IP-адресов или подсетей была бы лучше.
Блокировка IP-адреса или подсети в NGINX
В этом примере я блокирую подсети на xlhost.com, но со временем добавлю больше к файлу deny, который мы создаем. Процесс, описанный ниже, включает создание файла deny.conf и включение его в файл nginx.conf в нашем блоке http — так все будет в порядке. Сначала давайте найдем подсети, которые мы хотим заблокировать. В своем журнале доступа, как упоминалось выше, найдите нарушающий IP-адрес, а затем воспользуйтесь сайтом ниже, чтобы получить свою подсеть благодаря @linevty !.
http://bgp.he.net/
Это даст вам подсеть, как видно из моего примера.
Теперь вернемся на ваш сервер и запустите следующую команду для создания deny.conf:
nano /etc/nginx/deny.conf
Сейчас мы находимся в этом файле, и нам нужно добавить следующее, чтобы заблокировать подсети, которые мы не хотим разрешать просматривать на нашем сайте — здесь я блокирую большинство подсетей xlhosts — пожалуйста, пришлите мне больше, если вы знаете о них!
отрицать 209.51.197.0/24; # XLHOST IP отказать 209.190.121.32/27; #XLHOST IP отказать 209.190.0.0/17; # XLHOST IP отказать 173,45,64,0/18; # XLHOST IP отрицать 64.79.64.0/19; # XLHOST IP отрицать 64.79.89.0/19; # XLHOST IP отрицать 64.79.85.0/19; # XLHOST IP отрицать 207.182.155.96/28; #AXARNET отказать 207.182.158.136/29; #AXARNET отказать 91.142.208.0/20; #AXARNET отказать в 95.141.32.0/20; # SeFlow.it отказать 82.103.128.0/18; #EASYSPEEDY внешняя сеть
После сохранения этого файла нам нужно получить nginx для вызова этого файла. Отредактируйте файл NGINX.CONF с помощью следующей команды.
nano /etc/nginx/nginx.conf
Вам будет представлен экран, аналогичный приведенному ниже, выделите раздел, в котором указано access_log off: и измените его на on.
Затем найдите блок HTML и добавьте следующую строку в блок HTML, он должен выглядеть как в примере ниже.
include /etc/nginx/deny.conf;
Сохраните файл, и нам нужно перезапустить службу NGINX с помощью следующей команды.
sudo service nginx restart
Теперь вы заблокировали подсети с хоста xl, используйте тот же процесс, чтобы заблокировать другие нарушающие ips и подсети. Если у вас были проблемы с различными ботами, пользовательскими агентами и неприятными IP-подсетями, тогда, пожалуйста, прокомментируйте ниже, и мы можем составить главный список запретов.
NGINX IP DENY MASTER LIST
отрицать 209.51.197.0/24; # XLHOST IP отказать 209.190.121.32/27; #XLHOST IP отказать 209.190.0.0/17; # XLHOST IP отказать 173,45,64,0/18; # XLHOST IP отрицать 64.79.64.0/19; # XLHOST IP отрицать 64.79.89.0/19; # XLHOST IP отрицать 64.79.85.0/19; # XLHOST IP отрицать 207.182.155.96/28; #AXARNET отказать 207.182.158.136/29; #AXARNET отказать 91.142.208.0/20; #AXARNET отказать в 95.141.32.0/20; # SeFlow.it отказать 82.103.128.0/18; #EASYSPEEDY внешняя сеть