Как настроить nginx или ufw для блокировки ботов?

Как можно настроить правило на сервере для блокировки ботов аналогично тому, что можно сделать с помощью сервиса Cloudflare, чтобы избежать показа капчи и снизить процент отказов в метрике?
Изображение к вопросу
  • 3 октября 2023 г. 12:37
Ответы на вопрос 5
Существует несколько способов настроить Nginx или UFW для блокировки ботов. Ниже приведены два распространенных метода:

1. Используя модуль Nginx "ngx_http_access_module":
   - Откройте конфигурационный файл Nginx (обычно расположен в `/etc/nginx/nginx.conf` или `/etc/nginx/conf.d/default.conf`).
   - В блок `http` добавьте следующий код:

     ```
     http {
       # ...
      
       # Блокировка ботов
       include blockbots.conf; # Импорт файла с правилами
      
       # ...
     }
     ```

   - Создайте файл `blockbots.conf` в том же каталоге и добавьте нужные правила блокировки для ботов. Например:

     ```
     # Блокировка по user-agent'у (строка в заголовке запроса)
     if ($http_user_agent ~* "bot|crawler|spider") {
         return 403; # Возвращаем ошибку доступа (403 Forbidden)
     }
     ```

   - Перезапустите Nginx с помощью команды `sudo service nginx restart`.

2. Используя UFW (Uncomplicated Firewall):
   - Установите UFW, если он не установлен, с помощью команды `sudo apt-get install ufw`.
   - Включите UFW командой `sudo ufw enable`. Убедитесь, что UFW разрешает входящий HTTP-трафик командой `sudo ufw allow 'Nginx HTTP'`.
   - Добавьте правило для блокировки IP-адресов:
   
     ```shell
     sudo ufw insert 1 deny from <IP-адрес> to any
     ```
     
     Замените `<IP-адрес>` на фактический IP-адрес, который вы хотите заблокировать.
     
   - Сохраните изменения командой `sudo ufw reload`.

При использовании любого из этих методов важно знать, что некоторые боты могут обходить эти правила и анализировать ваш сайт. Поэтому, чтобы обеспечить лучшую защиту, рекомендуется использовать комбинацию разных методов, а также регулярно обновлять правила блокировки.
https://habr.com/ru/articles/437032/ 
 Рекомендую прочитать эту статью на Хабре, она содержит полезные советы по защите от ботов.

https://www.vpsbasics.com/security/how-to-block-bad-bots-with-nginx/ 
 Вот здесь можно найти инструкцию по блокированию вредоносных ботов с использованием Nginx.

https://selfhosted.libhunt.com/bunkerized-nginx-challenge-page 
 Этот ресурс предлагает использовать специальный JavaScript для борьбы с ботами.
Похожие вопросы