Как обезопасить свой WordPress Сайт с правилами брандмауэра Cloudflare
Если вы веб-мастер, ведущий блог или веб-сайт на WordPress, скорее всего, веб-безопасность является одним из ваших главных приоритетов. Пока ваш домен поддерживает Cloudflare, вы можете Добавить WordPress-специфические правила брандмауэра Cloudflare чтобы повысить безопасность вашего сайта и даже предотвратить атаки задолго до того, как они попадут на ваш сервер.
Если вы используете бесплатный план Cloudflare, у вас есть возможность добавить 5 правил (в профессиональном плане их 20).
Cloudflare позволяет легко и быстро создавать правила брандмауэра, и каждое правило обеспечивает потрясающую гибкость: Мало того, что вы можете многое сделать с каждым правилом, правила часто можно объединять, освобождая место для вас, чтобы сделать еще больше.
В этой статье я подробно рассмотрю некоторые из различных правил брандмауэра, которые вы можете применить, чтобы дополнить и улучшить WordPress существующие функции безопасности сайта.
Резюме: Как защитить WordPress веб-сайт с брандмауэром Cloudflare
- Брандмауэр веб-приложений Cloudflare (WAF) это программный инструмент, который позволяет защитить WordPress Веб-сайт.
- Правила брандмауэра Cloudflare позволяют запросы в черный или белый список в соответствии с гибкими критериями, которые вы устанавливаете.
- к создать герметичную защиту для вашего WordPress сайт, с помощью Cloudflare вы можете: внести в белый список свой собственный IP-адрес, защитить свою административную область, заблокировать посетителей по региону или стране, заблокировать вредоносных ботов и атаки методом перебора, заблокировать атаки XML-RPC и предотвратить спам в комментариях.
Белый список вашего собственного IP-адреса
Чтобы избежать проблем в пути, внесение в белый список IP-адреса вашего собственного веб-сайта должно быть первой задачей в вашем списке до вы включаете любые правила брандмауэра.
Зачем и как внести свой IP-адрес в белый список в Cloudflare
Это в первую очередь потому, что вы можете оказаться заблокированным на своем собственном веб-сайте, если решите заблокировать свой WordPress админку от других.
Чтобы внести IP-адрес вашего веб-сайта в белый список, перейдите в раздел «Безопасность» панели инструментов Cloudflare и выберите «WAF». Затем нажмите «Инструменты» и введите свой IP-адрес в поле «Правила IP-доступа» и выберите «белый список» в раскрывающемся меню.
Чтобы узнать свой IP-адрес, вы можете сделать Google выполните поиск «какой у меня IP», и он вернет ваш адрес IPv4, и если вам нужен IPv6, вы можете перейти к https://www.whatismyip.com/
Помните, что если ваш IP-адрес изменится, вам придется повторно ввести/внести в белый список свой новый IP-адрес, чтобы избежать блокировки из области администрирования.
Помимо внесения в белый список точного IP-адреса вашего сайта, вы также можете внести в белый список весь диапазон IP-адресов.
Если у вас есть динамический IP-адрес (т. е. IP-адрес, который настроен на постоянное незначительное изменение), то это, безусловно, лучший выбор для вас, поскольку постоянный повторный ввод и добавление новых IP-адресов в белый список будет серьезной проблемой.
Вы также можете внесите в белый список всю свою страну.
Это определенно наименее безопасный вариант, поскольку он потенциально оставляет вашу административную область открытой для атак из вашей страны.
Однако, если вы много путешествуете по работе и часто получаете доступ к своим WordPress сайта с разных подключений Wi-Fi, внесение вашей страны в белый список может оказаться для вас наиболее удобным вариантом.
Имейте в виду, что любой IP-адрес или страна, внесенные вами в белый список, будут освобождены от всех других правил брандмауэра, и поэтому вам не нужно беспокоиться об установке отдельных исключений для каждого правила.
Защитите WordPress Панель инструментов (область администрирования WP)
Теперь, когда вы добавили свой IP-адрес и/или страну в белый список, пришло время чтобы надежно заблокировать панель управления wp-admin, чтобы только вы могли получить к ней доступ.
Почему и как защищать WordPress Панель инструментов в Cloudflare
Само собой разумеется, что вы не хотите, чтобы неизвестные посторонние могли получить доступ к вашей области администрирования и вносить изменения без вашего ведома или разрешения.
Таким образом, вам нужно будет создать правило брандмауэра, которое предотвращает доступ извне к вашей панели инструментов.
Однако, до ты запираешь свой WordPress приборная панель, вам придется сделать два важных исключения.
- /wp-admin/admin-ajax.php. Эта команда позволяет вашему веб-сайту отображать динамический контент, и поэтому для ее работы требуется доступ извне для определенных плагинов. Таким образом, даже если он хранится в папке /wp-admin/, он должен быть доступен извне, если вы не хотите, чтобы ваш веб-сайт отображал сообщения об ошибках для посетителей.
- /wp-admin/theme-editor.php. Эта команда включает WordPress чтобы запускать проверку на наличие ошибок каждый раз, когда вы изменяете или редактируете тему своего сайта. Если вы не добавите это в качестве исключения, ваши изменения не будут сохранены, и вы получите сообщение об ошибке, которое гласит: «Невозможно связаться с сайтом для проверки на наличие фатальных ошибок».
Чтобы создать правило брандмауэра, сначала перейдите в «Безопасность» > «WAF» на панели инструментов Cloudflare, затем нажмите кнопку «Создать правило брандмауэра».
Чтобы добавить эти исключения при защите панели инструментов wp-admin, вам необходимо создать это правило:
- Поле: путь URI
- Оператор: содержит
- Значение: /wp-admin/
- Поле: путь URI
- Оператор: не содержит
- Значение: /wp-admin/admin-ajax.php
- Поле: путь URI
- Оператор: не содержит
- Значение: /wp-admin/theme-editor.php
Когда все будет готово, нажмите «Развертывание» чтобы установить правило брандмауэра.
Кроме того, вы можете нажать «Изменить выражение» и вставить следующее:
(http.request.uri.path contains "/wp-admin/" and not http.request.uri.path contains "/wp-admin/admin-ajax.php" and not http.request.uri.path contains "/wp-admin/theme-editor.php")
Блок стран/континентов
Так же, как вы можете добавить страну в белый список для доступа к панели администратора.
Вы также можете установите правило брандмауэра, чтобы страны и даже целые континенты были занесены в черный список для просмотра или доступа к вашему сайту.
Зачем и как блокировать страны/континенты в Cloudflare
Почему вы можете захотеть заблокировать доступ к вашему сайту для всей страны или континента?
Ну, если ваш веб-сайт обслуживает определенную страну или географический регион и не имеет глобального значения, то блокировка доступа из нерелевантных стран и/или континентов — это простой способ ограничить риск атак вредоносных программ и вредоносного трафика из-за рубежа, никогда не блокируя доступ к законной целевой аудитории вашего веб-сайта.
Чтобы создать это правило, вам снова нужно открыть панель инструментов Cloudflare и перейти к Безопасность> WAF> Создать правило брандмауэра.
Чтобы изменить настройки, чтобы разрешить только определенные страны, введите следующее:
- Поле: Страна или Континент
- Оператор: «Входит»
- Значение: выберите страны или континенты, которые вы хотите Белый список
(Примечание: если вы хотите разрешить трафик только из одной страны, вы можете ввести «равно» в качестве оператора.)
Если вместо этого вы решите заблокировать определенные страны или континенты, введите следующее:
- Поле: Страна или Континент
- Оператор: «Нет в»
- Значение: выберите страны или континенты, которые вы хотите блок
Примечание. Это правило может иметь неприятные последствия, если вам нужна техническая поддержка, а служба поддержки вашего веб-хостинга находится в стране или на континенте, которые вы заблокировали.
Вероятно, это не будет проблемой для большинства людей, но об этом следует знать.
Вот пример того, как запретить доступ к вашему сайту из определенной страны, где пользователям из этой страны показывается Вызов JavaScript прежде чем пытаться получить доступ к вашему сайту.
Блокировать вредоносных ботов
На основе их пользовательского агента, Cloudflare позволяет блокировать доступ вредоносных ботов, пытающихся проникнуть на ваш сайт.
Если вы уже используете 7G, вам не нужно беспокоиться об установке этого правила: 7G WAF блокирует угрозы на уровне сервера, ссылаясь на полный список вредоносных ботов.
Однако, если вы не используете 7G, вам нужно настроить правило брандмауэра, которое идентифицирует и блокирует плохих ботов, прежде чем они смогут причинить какой-либо ущерб.
Почему и как блокировать плохих ботов в Cloudflare
Как обычно, сначала перейдите на панель инструментов Cloudflare и перейдите в Безопасность> WAF> Создать правило брандмауэра.
Затем установите выражение правила брандмауэра следующим образом:
- Поле: Пользовательский агент
- Оператор: «Равно» или «Содержит»
- Значение: имя плохого бота или вредоносного агента, которого вы хотите заблокировать.
Как и в случае блокирующих стран, боты могут быть заблокированы индивидуально по имени. Чтобы заблокировать более одного бота одновременно, используйте опцию «ИЛИ» справа, чтобы добавить дополнительных ботов в список.
Затем нажмите «Развертывание» когда закончите.
Однако ручная блокировка плохих ботов стала избыточной, потому что Cloudflare запустил «Режим боя с ботом» для всех бесплатных пользователей.
и «Режим Супер Бота» для пользователей плана Pro или Business.
Это означает, что плохие боты теперь блокируются автоматически для всех типов пользователей Cloudflare.
Блокировать атаки грубой силы (wp-login.php)
Атаки грубой силы, также известные как атаки wp-login, являются наиболее распространенными атаками, направленными на WordPress сайтов.
На самом деле, если вы просмотрите журналы вашего сервера, вы, вероятно, найдете доказательства таких атак в виде IP-адресов из разных мест по всему миру, пытающихся получить доступ к вашему файлу wp-login.php.
К счастью, Cloudflare позволяет вам установить правило брандмауэра, чтобы успешно блокировать атаки грубой силы.
Почему и как защитить wp-login.php в Cloudflare
Хотя большинство атак методом грубой силы представляют собой автоматизированное сканирование, недостаточно мощное, чтобы пройти через WordPressзащиты, все же неплохо установить правило, чтобы заблокировать их и успокоить свой разум.
Однако, это правило работает, только если вы являетесь единственным администратором/пользователем на своем сайте. Если есть более одного администратора или если на вашем сайте используется плагин членства, вам следует пропустить это правило.
Чтобы создать это правило, вернитесь к Безопасность> WAF> Создать правило брандмауэра.
После того, как вы выбрали имя для этого правила, введите следующее:
- Поле: путь URI
- Оператор: содержит
- Значение: /wp-login.php
Кроме того, вы можете нажать «Изменить выражение» и вставить следующее:
(http.request.uri.path contains "/wp-login.php")
После развертывания правила Cloudflare начнет блокировать все попытки доступа к wp-login из любого источника, кроме вашего IP-адреса из белого списка.
В качестве дополнительного бонуса, вы можете убедиться, что эта защита включена и работает, заглянув в раздел событий брандмауэра Cloudflare, где вы сможете увидеть записи о любых попытках атак грубой силы.
Блокировать XML-RPC-атаки (xmlrpc.php)
Другой немного менее распространенный (но все же опасный) тип атаки — это Атака XML-RPC.
XML-RPC — это удаленная процедура, вызывающая WordPress, на которые злоумышленники могут потенциально нацелиться при атаке методом грубой силы для получения учетных данных для аутентификации.
Почему и как заблокировать XML-RPC в Cloudflare
Хотя XML-RPC можно использовать и в законных целях, например, для размещения контента на нескольких WordPress блоги одновременно или доступ к вашему WordPress сайт со смартфона, можно вообще развернуть это правило, не беспокоясь о непредвиденных последствиях.
Чтобы заблокировать атаки грубой силы, направленные на процедуры XML-RPC, сначала перейдите к Безопасность> WAF> Создать правило брандмауэра.
Затем создайте следующее правило:
- Поле: путь URI
- Оператор: содержит
- Значение: /xmlrpc.php
Кроме того, вы можете нажать «Изменить выражение» и вставить следующее:
(http.request.uri.path contains "/xmlrpc.php")
И вот так, всего за несколько простых шагов, вы защитили свой WordPress сайт от двух наиболее распространенных типов атак грубой силы.
Предотвращение спама в комментариях (wp-comments-post.php)
Если вы веб-мастер, спам на вашем сайте — это всего лишь один из раздражающих фактов жизни.
К счастью, Брандмауэр Cloudflare предлагает несколько правил, которые вы можете использовать для блокировки многих распространенных типов спама., включая спам в комментариях.
Почему и как заблокировать wp-comments-post.php в Cloudflare
Если спам в комментариях стал проблемой на вашем сайте (или, что еще лучше, если вы хотите заблаговременно предотвратить его превращение в проблему), вы можете ограничить wp-comments-post.php, чтобы ограничить трафик ботов.
Это делается на уровне DNS с помощью Cloudflare. вызов JS, и принцип его работы относительно прост: спам-комментарии автоматически обрабатываются, а автоматические источники не могут обрабатывать JS.
Затем они проваливают вызов JS, и вуаля — спам блокируется на уровне DNS, и запрос даже не доходит до вашего сервера.
Итак, как создать это правило?
Как обычно, перейдите на страницу «Безопасность» > «WAF» и выберите «Создать правило брандмауэра».
Убедитесь, что вы дали этому правилу узнаваемое имя, например «Спам в комментариях».
Затем установите следующее:
- Поле: URI
- Оператор: Равно
- Значение: wp-comments-post.php
- Поле: Метод запроса
- Оператор: Равно
- Значение: ПОСТ
- Поле: Реферер
- Оператор: не содержит
- Значение: [вашдомен.com]
[Действие: Вызов JS]
Будьте осторожны, чтобы установить действие на JS вызов, так как это гарантирует, что комментарий будет заблокирован, не мешая обычным действиям пользователя на сайте.
После того, как вы ввели эти значения, нажмите «Развернуть», чтобы создать правило.
Резюме: защита вашего WordPress Сайт с правилами брандмауэра Cloudflare
В гонке вооружений в области веб-безопасности правила брандмауэра Cloudflare являются одним из самых эффективных видов оружия в вашем арсенале.
Даже с бесплатной учетной записью Cloudflare вы можете установить множество различных правил для защиты вашего WordPress сайт от некоторых из наиболее распространенных угроз спама и вредоносного ПО.
Всего несколькими (в основном) простыми нажатиями клавиш вы можете повысить безопасность своего сайта. и поддерживать бесперебойную работу для посетителей.
Чтобы узнать больше об улучшении WordPress безопасность сайта, проверьте мой руководство по конвертации WordPress сайты в статический HTML.
Защита сайта от ботов и накруток с помощью сервиса Cloudflare на бесплатном тарифе
К нам обратился заказчик с проблемой. На его сайт обычно заходит около 500 человек в день, но в один из дней он обнаружил необоснованно резкий рост посещений (график ниже).
В определённый момент количество посещений достигло почти 50 000 в день – примерно в 100 раз больше, чем в обычные дни.
Чтобы решить эту проблему, отсечь ботов и убрать накрутку мы использовали сервис Cloudflare. Причём для решения задачи нам хватило их бесплатного тарифа.
Кратко, принцип работы сервиса Cloudflare:
Cloudflare ведёт весь трафик через себя и отфильтровывает подозрительных посетителей по заранее установленным правилам-условиям, блокируя их, или заставляя проходить проверку.
При этом большая часть обычных пользователей этого не замечают. Для них сайт открывается как обычно.
И только небольшая часть пользователей (3-10%) пару секунд видят экран “Проверки” от сервиса, а далее сайт открывается как обычно.
Ниже пошагово рассмотрим процесс настройки сервиса.
И сразу спойлер. После подключения сайта к Cloudflare и добавления правил фильтрации количество заходов в течение нескольких дней вернулось в норму (графики ниже).
В итоге общая картина посещений сайта выглядит следующим образом:
Как добавить сайт в сервис Cloudflare
- Переходим в панель Cloudflare по адресу https://dash.cloudflare.com/login и регистрируемся любым удобным способом
- После успешной регистрации откроется панель управления сервисом. Необходимо в левом меню перейти во вкладку “websites” и в правой части экрана нажать кнопку “add a site” (добавить сайт)
- В появившемся окне необходимо ввести название сайта и нажать кнопку “Add site”
- На следующем шаге необходимо выбрать подходящий тариф. Существует бесплатный вариант – он позволяет настроить базовую защиту сайта и является вполне достаточным для большинства задач. После выбора тарифа следует нажать кнопку “Continue” (продолжить)
- Далее Cloudflare определит текущие DNS записи домена и выведет их в виде таблицы. Это просто уведомление.
На данном шаге можно просто нажать кнопку “Continue”
- На следующем шаге сервис предложит заменить существующие ns-адреса домена на ns-адреса Cloudflare
Это необходимо, чтобы реализовать фильтрацию трафика — сначала он будет попадать на сервера cloudflare, там проверяться и фильтроваться, и лишь затем отправляться на тот сервер, где непосредственно лежит сайт.
Следует скопировать предлагаемые ns-адреса, и заменить существующие записи вашего домена на них.
Замена ns-записей происходит в панели регистратора домена — то есть на том сайте, или на том хостинге, где вы покупали домен для сайта. При регистрации у каждого домена есть некоторое количество “записей” — они отвечают за работу сайта и позволяют ему определить, с какого хостинга брать данные для открытия сайта.
Например, чтобы обновить записи на reg.ru необходимо кликнуть на имя аккаунта, перейти в раздел “Мои домены и услуги”.
Затем перейти в пункт меню “домены”, нажать кнопку с тремя точками в правой части строки и выбрать пункт “DNS-сервера и управление зоной”.
Нажать кнопку “изменить” и в появившемся окне вписать нужные значения.
После сохранения изменений необходимо дождаться, когда они применятся, обратите внимания на важный момент: NS-адреса могут обновляться до 72 часов. Обычно это происходит быстрее (в пределах 6-12 часов), но максимальный срок именно такой.
Пока адреса не обновились в панели Cloudflare рядом с сайтом будет отображаться иконка ожидания.
После успешного обновления около названия сайта появится галочка.
Как только появится галочка это будет означать, что сайт успешно добавлен в сервис и можно переходить непосредственно к настройке правил фильтрации.
Настройка правил фильтрации Cloudflare
У сервиса есть несколько сценариев работы со входящим трафиком: его можно полностью заблокировать, пропустить без проверки, или обязать пройти тест на робота.
В рамках бесплатной версии можно написать до 5 правил фильтрации. В общем случае нам потребуется 3-4 правила, а именно:
Правило 1. Прописываем условия беспрепятственного доступа на сайт для проверенных, “хороших” ботов (например ботов поисковых систем, Яндекс.Метрики и т.д.)
Правило 2. Проверяем всех тех, кто пытается попасть на сайт через http (намеренно вводя адрес сайта без безопасного соединения) или через IPV6 (пытаются попасть на сайт через его ip-адрес)
Правило 3. Проверяем прямые заходы и обращения с протоколом ниже HTTP/2 (специфичные заходы, чаще всего являются ботами)
Правило 4. Опциональное. Блокируем трафик из конкретных стран, или открываем трафик только для конкретных стран.
Правила записываются в разделе “Security” — “WAF”
Для того, чтобы перейти в этот раздел необходимо в панели cloudflare нажать на имя сайта, перейти в левом меню в нужный раздел и нажать кнопку “Create Rule” (создать правило)
Правило 1: Открываем доступ хорошим ботам
В верхней части экрана пишем название правила (произвольное, но понятное и однозначное для нас)
Далее прописываем условия:
Сначала просто пропускаем всех ботов, которые являются известными для Cloudflare (Для этого в записи Known Bots ставим зелёную галочку, как на скриншоте ниже)
Это хорошие боты, например, боты поисковых систем Google и Яндекс. Обязательно устанавливаем эту настройку, чтобы не мешать поисковикам индексировать сайт.
Во второй части правила мы добавляем конкретного бота Mail.ru — он является проверенным и безопасным, но не входит в белый список Cloudflare.
Важно поставить настройки, как на скриншоте ниже.
Обратите внимание, что между двумя частями правила стоит “Or”, что значит “Или”.
Т.е. для выполнения правила, нужно чтобы сработало хотя бы одно из двух условий.
Проще говоря, если Cloudflare знает этого бота или если это бот Mail.Ru, то пропускаем его на сайт без проверок.
Сразу под правилами автоматически появится надпись Expression Preview — это просто оформленные в виде кода выбранные нами выше условия, в этой строчке ничего менять не нужно.
И ниже мы выбираем что делать с теми заходами, которые попадают под данные условия: в данном случае мы их просто пропускаем (skip), не подвергая никаким проверкам, и галочками отмечаем все возможные проверки, которые эти боты проходить не будут.
Проще говоря, проверенных ботов Яндекса Google и т.п. мы просто пропускаем на сайт и не мешаем им работать 🙂
После написания каждого правила необходимо нажать “Save” (сохранить).
Правило 2: Проверяем всех тех, кто пытается попасть на сайт через http или через IPV6
В данном правиле условие будет выглядеть следующим образом:
То есть мы предлагаем пройти проверку всем сомнительным заходам, которые пытаются попасть на сайт по IP (первая строчка правила) или же не используют https.
Правило 3: Проверяем прямые заходы и обращения с протоколом ниже HTTP/2
Данное правило чуть более жёсткое чем предыдущее, и направлено на случаи, которые с большой вероятностью являются нежелательными для сайта.
Правило 4: Открываем доступ только конкретным странам
В данном правиле мы блокируем весь трафик, который попадает из неинтересных нам стран.
Например, у нас сайт на русском языке и в другие страны мы продавать не планируем.
А большая часть спамного трафика как раз идёт из-за границы. Тогда мы можем его безболезненно заблокировать.
Например, для нашего сайта, нам интересны посетители только из России, Казахстана, Белоруссии и Черногории (Montenegro). Поэтому всех остальных мы смело блокируем.
Нам необходимо использовать оператор AND (“и”) между правилами, так как мы блокируем всех, у кого страна НЕ Россия, и одновременно НЕ Казахстан и одновременно НЕ Беларусь и т.д.
Добавлятся страны через поле Country (“страна”) does not equal (“не равна”) Russian Federaion (“РФ”).
Порядок срабатывания правил, работа с поддоменами и SSL
После успешного добавления всех правил они появятся в списке в разделе “security” — “waf”
Чем выше правило — тем раньше оно срабатывает. Чтобы переместить правило выше-ниже можно использовать стрелки в левой части строки.
Если правило написано корректно, то уже через 15-20 минут справа от него появится график, на котором будет видно, что какую-то часть трафика это правило уже обработало.
В нашем примере есть правило, которое за время работы заблокировало 321 000 заходов. И из этого количества лишь 0.18% (то есть менее одного процента) были посетители, которые смогли пройти проверку и дальше перейти на сайт.
При работе Cloudflare с поддоменами может возникать ситуация, когда они перестают открываться. Или основной домен начинает некорректно отображаться из-за проблем с SSL-сертификатом.
В подобных случаях рекомендуется перейти в раздел “SSL/TLS” -> “Overview” и включить настройку SSL-сертификата Full (strict), как выбрано на картинке ниже.
А как всё вернуть, если что-то пошло не так?
Если вдруг настройка прошла некорректно, или возникли любые проблемы, которые требуют возвращения сайта к исходному состоянию, можно сделать следующее:
- Отключить все правила, просто убрав галочку активности в списке правил
- Вернуть обратно ns-записи на стороне регистратора, которые меняли на одном из первых шагов — это позволит полностью исключить Cloudflare из работы с сайтом. Обратите внимание, что в этом случае смена ns-записей также займет до 72 часов.
Успехов в победе над ботами!
Источники
- Интервью Артёма Акулова Михаилу Шакину — https://www.youtube.com/watch?v=wmu6LNOg-Sc
- Статья Ивана Зимина о настройках CloudFlare — https://vc.ru/seo/477451-nastraivaem-cloudflare-dlya-filtracii-botov
- Документация CloudFlare для разработчиков — https://developers.cloudflare.com/
- Статья «Cloudflare: what is it? And what can you do with it?» — https://www.hipex.io/en/cloudflare/
- Статья «The Definitive Guide For Cloudflare Free And Page Rules» — https://technoogies.com/the-definitive-guide-for-cloudflare-free-and-page-rules/
Как заблокировать ботов с помощью Cloudflare Firewall
Мануал
Автор cryptoparty На чтение 3 мин Опубликовано 27.06.2019
Получаете много запросов от сканеров и ботов, что не повышает ценность вашего бизнеса?
Тысячи сканеров / ботов посещают ваш сайт каждый день, и очень немногие полезны.
Некоторые из них считаются плохими ботами или спамом.
Откуда узнать, что боты посещают ваши сайты?
На это нет простого ответа.
Чтобы выяснить это, вам нужно просмотреть файл access.log вашего веб-сервера и найти столбец User-Agent.
Допустим, вы хотите перечислить всех ботов, кроме робота Google, для этого вы можете выполнить следующую команду на своем веб-сервере, где находится файл access.log.
grep bot access.log |grep -v Googlebot
Вы удивлены, увидев так много записей?
Я тоже, когда я проверил свои журналы.
root@gf-prod:nginx# grep bot access.log |grep -v Googlebot | wc -l 616834 root@gf-prod:nginx#
Прежде чем что-то блокировать, вам необходимо просмотреть их, чтобы убедиться, что вы не блокируете то, что может потребоваться для вашего бизнеса.
И есть много способов сделать это.
Причина проста – зачем позволять запросам попадать на веб-сервер, когда они вам вообще не нужны.
Как указано в заголовке статьи, давайте узнаем, как блокировать ненужных ботов с помощью брандмауэра Cloudflare.
Примечание: если вы управляете крупным бизнесом, вас может заинтересовать служба управления ботами Cloudflare.
- Войти в Cloudflare
- Перейдите на вкладку Firewall, а затем firewall rules и создайте правило брандмауэра.
- Введите название правила
- Выберите поле как User Agent, оператор contains и Value в качестве имени бота, которого вы хотите заблокировать
- Используйте условие or для добавления нескольких ботов в одно правило.
Примечание: боты, упомянутые на изображении выше, только для иллюстрации. Совсем не обязательно, что это плохие боты.
- а затем выберите действие как Block
- Если вы знаете выражение, то вы также можете написать его, щелкнув по редактированию вместо того, чтобы делать это через GUI. После развертывания вы должны увидеть вновь созданное правило в списке, и статус должен быть On.
Легко, не правда ли?
Что еще можно сделать с правилами брандмауэра?
Ну, намного больше для улучшения безопасности.
Давайте посмотрим на следующие условия блокировки.
- Если запрос приходит от определенного ASN, IP-адрес
- Соответствующие cookie, рефереры, ключевые слова X-Forwarded-for
- Ограничить обслуживание запросов всей страны
- Отключить нежелательный метод HTTP, такой как PUT, DELETE, OPTIONS, PURGE и т. д.
Все это вы можете сделать либо через GUI или написать свое выражение.
Применение изменений происходит практически мгновенно.
Заключение
Правила межсетевого экрана Cloudflare – отличный способ добавить защиту для ваших веб-приложений на границе сети без простоев.
Если это еще не так, вы также можете рассмотреть возможность использования Cloud WAF для повышения безопасности приложений и защиты от DDoS и других онлайн-уязвимостей.
Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий Отменить ответ
Виктор 14.01.2020 в 14:15
Вопрос такой, как мне наоборот разрешить вход Google ‘ Bota, если я заблокировал все ip из страны United Stated как сделать исключение правилом для Google BOT? Так как меня DDOS-сят.
cryptoparty автор 14.01.2020 в 14:23
Виктор 14.01.2020 в 14:54
Да я это уже нашел. Но Вы мне не подскажите как мне создать правило конкретно под cloudflare?
Дело в том что я не совсем понимаю в значениях firewall и смог только настроить блокировку по определенным странам. Дальше у меня не выходит разобраться чтобы не блокировались поисковые роботы из стран которые я заблокировал. Как сделать исключение.
cryptoparty автор 14.01.2020 в 15:02
Виктор 14.01.2020 в 15:21
Честно говоря не знаю как Вас зовут. Но я с радостью пожал бы вам руку в знак уважения. Не много встретишь таких людей которые отвечают почти сразу же, а самое главное по теме. За последние несколько лет ответ из блогов мне вообще не приходил потому что их все забросили.
cryptoparty автор 14.01.2020 в 15:29
Приятно слышать, надеюсь вы найдете решение
Виктор 14.01.2020 в 15:30
Видно что у вас ресурс занимается делом а не штаны просиживают как на многих других сайтах. Спасибо вам еще раз) Если прошлый комментарий не дошел, то я вам выразил благодарностей пачку целую!!
Александр 06.10.2020 в 15:02
А есть где-нибудь список ботов, которых точно нужно блокировать в cloudflare? Очень бы приголидся)
cryptoparty автор 06.10.2020 в 15:08
можно заблокировать все, за исключением “хороших”
Роман 24.06.2021 в 09:38
Здесь есть список, но все равно нужно мониторить. Кстати, в статье очень подробно всё описано и разжевано.
Роман 24.06.2021 в 09:39
Забыл ссылку дать: https://zahek.livejournal.com/455.html
БлагоЯр Тишина 14.10.2021 в 20:31
Поддержать нас
- Аудит ИБ (49)
- Вакансии (12)
- Закрытие уязвимостей (110)
- Книги (27)
- Мануал (2 359)
- Медиа (66)
- Мероприятия (39)
- Мошенники (23)
- Обзоры (831)
- Обход запретов (34)
- Опросы (3)
- Скрипты (116)
- Статьи (360)
- Философия (124)
- Юмор (18)
Наш Telegram
Социальные сети
Поделиться
Anything in here will be replaced on browsers that support the canvas element
- Каковы различные форматы сертификатов? 27.10.2023
Цифровые сертификаты могут использоваться для различных целей. Они могут использоваться для защиты соединений с веб-сайтами, для шифрования сообщений электронной почты или для проверки личности пользователя. Выбор правильного формата сертификата необходим для обеспечения безопасности и сохранности данных. Когда речь идет о различных форматах сертификатов, важно выбрать тот, который соответствует вашим потребностям Выберите формат сертификата, совместимый с […]
Преобразование файла PFX (PKCS #12) в формат PEM (Privacy Enhanced Mail) достаточно просто на Linux и Unix-подобных системах. В этой статье мы рассмотрим, как преобразовать файл сертификата в формате PFX в файл PEM с помощью OpenSSL из командной строки. Что такое файл PFX? PFX (также PKCS#12) – это формат файла, содержащего сертификат(ы) и закрытый(ые) ключ(ы), […]
Одним из основных нововведений, появившихся в Podman, стала возможность запуска контейнеров без прав root. С точки зрения безопасности это было существенным улучшением, поскольку потенциально скомпрометированный контейнер, запущенный от имени root, представляет собой угрозу безопасности для хост-системы. Чтобы добиться аналогичного поведения, последние версии Docker поддерживают запуск демона docker в пользовательском контексте. Почему процессы в контейнерах […]
Small Form Factor Pluggable (SFP) – это компактный приёмопередатчик, который устанавливается в SFP порт коммутатора Ethernet. Модуль используется для присоединения платы сетевого устройства к оптическому волокну или витой паре. Модули SFP заменили устаревшие модули GBIC благодаря своим миниатюрным размерам. Это преимущество в размерах позволяет им эффективно работать в ограниченных сетевых средах, обеспечивая быстрый обмен данными […]
Давайте поговорим о классификации вредоносных программ. Когда антивирусная программа или средство защиты от вредоносного ПО обнаруживает что-то потенциально вредоносное, она использует определенный формат, чтобы помочь вам или другим специалистам понять, с какой именно угрозой вы имеете дело. Формат может выглядеть примерно так: Type:Platform/Family.Variant!Suffixes Это не всегда будет выглядеть именно так, поскольку, как вы помните, не […]
Плохие боты: чем они вредят сайту и как их заблокировать
17.01.2023
- Что такое вредоносные боты и чем они отличаются от полезных
- Как отследить активность ботов на сайте
- Защита сайта от вредоносных ботов
- Как управлять деятельностью полезных ботов
- Как проанализировать трафик от ботов на сайте
Кто такие боты — это программное обеспечение, направленное на сбор и анализ информации в интернете, а также на выполнение повторяющихся действий, которые мог бы совершать пользователь. Например, боты могут парсить данные на сайтах, кликать по рекламе, заполнять формы обратной связи, давать запрограммированные ответы в чатах.
Термин «бот» имеет широкое использование, им называют и автоматизированные ответы в соцсетях и на сайтах (чат-боты), и людей, управляющих фиктивными аккаунтами в соцсетях. Мы же будем говорить именно о тех ботах, которые заходят на сайт и совершают там определенные действия без ведома владельца.
Благодаря большей скорости бот может совершить в сотни раз больше операций, чем человек за то же время. Кроме того, использование бота стоит дешевле, чем найм работников – например, для сбора данных. Поэтому роботы лежат в основе автоматизации многих процессов в сети.
Почти половина трафика в Интернете создается ботами. Согласно исследованиям Statista в 2021 году вредоносные боты создавали 27,7% трафика, тогда как полезные боты – только 14,6%. Людям в этом распределении досталось 57,7% трафика.
Каждый бот, входя на сайт, создает определенную нагрузку. И если с трафиком от полезных ботов придется смириться, то вредные боты влекут за собой сразу несколько проблем в зависимости от цели своего существования. Помимо нагрузки на сайт, это и несанкционированный сбор данных, и DDoS-атаки, и обход систем защиты.
Независимо от того, где размещен ваш сайт — на хостинге, выделенном сервере или VDS, боты отбирают ресурсы и вредят показателям быстрой загрузки.
Давайте разберемся, что такое вредоносные и полезные боты и какими они бывают.
Что такое вредоносные боты и чем они отличаются от полезных
Полезные и вредоносные боты очень похожи в техническом плане — разница заключается в цели их использования. В зависимости от целей они делятся на более узкие категории.
Вредоносные боты:
- Боты-шпионы – сканируют сайты в поисках плохо защищенных контактных данных пользователей для создания базы спам-рассылки и других несанкционированных действий. Если на вашу электронную почту начали приходить подозрительные письма, то один из вариантов сценария: вы оставили адрес на плохо защищенном сайте, его нашел бот и включил в базу.
- Кликботы — из названия можно догадаться, что они занимаются кликанием, а точнее, переходят по ссылкам. Больше всего неприятностей они создают в рекламном секторе в Google, сливая бюджет на объявлениях с оплатой за клики. Этим методом часто пользуются конкуренты.
- Взломщики подбирают пароли доступа к аккаунтам администраторов или пользователей на сайте.
- Боты-спамеры заполняют формы обратной связи и оставляют рекламные комментарии со ссылками, часто ведущими на фишинговые сайты.
- Загрузчики скачивают файлы – их используют, чтобы создать видимость востребованного контента.
- Боты для DDoS – ими часто становятся пользовательские устройства, зараженные вредоносным программным обеспечением. Такие боты посылают очень много запросов на сервер с целью «положить» его.
Полезные боты:
- Поисковые боты (краулеры) — это работы поисковых систем, которые сканируют страницы сайтов с целью включения их в индекс, ранжирование и выдачу в SERP.
- Боты сервисов SEO-аналитики — это инструменты Ahrefs, Serpstat, Semrush и других аналогов, которые мониторят на сайтах определенные показатели, необходимые для работы SEO-специалистов (трафик, обратные ссылки, ключи, по которым ранжируется сайт).
- Сканеры для определения уникальности контента — их используют для проверки текстов копирайтеры. Антиплагиаторы проверяют все доступные в сети статьи для сопоставления и выявления скопированных текстов.
В этой классификации собраны наиболее распространенные боты — на самом деле их гораздо больше. Кроме того, такая классификация достаточно условна. Один и тот же бот можно использовать для разных целей — например, агрессивный парсинг данных может вызвать замедление и даже остановку работы сайта. Но тот же парсинг полезен для сайтов, ведь это часть работы поисковых систем, сервисов для сравнения цен и многих других платформ.
Как отследить активность ботов на сайте
Появление ботов можно отследить по нескольким критериям:
- Всплески трафика — если у вас внезапно «скакнул» трафик, что не связано с маркетинговыми акциями, это может свидетельствовать об активности ботов.
- Повышение нагрузки на сервер может также говорить об активности ботов.
- Появление запросов из регионов, где вы не ведете бизнес.
- Высокий показатель отказов: боты создают запросы, но не проводят на сайте достаточно времени. В IP-адресах ботов будет показатель 100% отказов.
Но лучше всего деятельность ботов на сайте можно увидеть, анализируя логи — это записи о сеансах посещения сайта, в которых указан ряд данных о визитере. В частности, это такой показатель как user-agent — программные агенты, под названием которых можно определить устройство или программу, которая заходила на сайт. Юзер-агенты есть у браузеров, поисковых роботов, мобильных приложений и т.д.
У каждого бота есть свое имя, например юзер-агент Google называется Googlebot, парсер Ahrefs — AhrefsBot, SE Ranking — SE Ranking bot.
Чтобы посмотреть логи, используйте специальный инструмент GoAccess от Cityhost, который сортирует запросы и выдает статистику. Его можно найти в разделе Хостинг => Управление => SSH => Web SSH: Открыть. Далее рекомендуем воспользоваться инструкцией, как анализировать логи с помощью GoAccess.
С его помощью можно увидеть страну, из которой входили на сайт, IP-адрес, user-agent и другие параметры.
Если же у бота нет юзер-агента (пишется как Unknown robot) — тогда, скорее всего, это работа какого-нибудь любителя или одиночного хакера, которого можно забанить по IP-адресу. Читайте ниже, как это сделать.
Защита сайта от вредоносных ботов
Одна из сложностей защиты от ботов заключается в том, что они имитируют действия пользователей, и сервер не отличает запросы от ботов и людей. Не существует волшебной кнопки «Защита от ботов на сайте», которая одним движением избавит от проблем. От каждого класса роботов существует отдельная защита, к тому же часть незваных гостей приходится фильтровать вручную.
Закрывать доступ к сайту нужно не только откровенно вредоносным ботам, но и тем, которые не несут пользы, но создают лишнюю нагрузку. К примеру, когда сайт сканирует сервис аналитики или поисковый робот, который не нужен для вашей работы.
Перед веб-мастерами встает целый ряд сложных вопросов, которые не всегда можно решить — например, та же защита от парсинга. Автоматическими методами невозможно отличить хороший и плохой парсинг, к тому же по факту этот метод не является незаконным. Просматривать и собирать данные с сайтов может кто угодно, для этого они созданы. Когда пользователь листает страницы и выписывает цены, это тоже процесс сбора данных, просто парсер делает это быстрее. Такие тонкости усложняют процесс защиты сайта и делают его непрерывным. Следует постоянно отслеживать трафик и анализировать логи, чтобы увидеть сеансы входа на сайт вредоносных ботов и вручную заблокировать их.
Поскольку ботов часто используют для DDoS, рекомендуем вам прочитать статью о том, как защититься от DDoS-атак.
Методы блокировки вредоносных ботов
Здесь мы расскажем об инструментах, преимущественно предоставляемых клиентам Cityhost. Если вы используете услуги других провайдеров, методы могут несколько отличаться.
В панели управления Cityhost можно вручную заблокировать подозрительные источники трафика по IP-адресу и по URL. Найти инструменты для блокировки можно в разделе Хостинг => Управление => Безопасность.
Отдельно стоит сказать о блокировке по user-agent — в этом инструменте уже есть встроенный список распространенных вредоносных ботов. Пользователь может включить или отключить инструмент, а также убрать отметки c определенных юзер-агентов или выбрать все. Если же вы хотите заблокировать вручную конкретных юзер-агентов – для этого есть отдельный алгоритм действий, описанный ниже в статье.
Дополнительно в разделе «Безопасность» можно установить пароль на определенные директории, чтобы к важным папкам сайта в файловом менеджере имели доступ только те, кто знает этот пароль.
- Капча для входа в аккаунт администратора
В том же разделе вы найдете капчу, созданную Cityhost — она защищает вход в админку на нашем сайте и в установленных на хостинге CMS. Это очень простой и ненавязчивый фильтр, в котором нужно отметить чекбокс «Я не робот» (никаких сложных процедур). Но даже такое простое действие бот уже не может выполнить.
.htaccess — это файл в корневой папке сайта, содержащий определенные настройки работы веб-ресурса (редирект, создание страниц ошибок, блокировка доступа к сайту и отдельных файлов). В этом файле можно прописать запреты для юзер-агентов вредоносных роботов, которые не смогут в дальнейшем сканировать сайт.
Для этого необходимо открыть .htaccess в файловом менеджере и прописать в нем следующие правила, где UserAgentName заменить на реального юзер-агента.
Можно также заблокировать запросы от агентов, у которых нет имени.
Боты, которые оставляют на сайте комментарии и заполняют формы обратной связи, требуют особого внимания. Для защиты от них используют следующие методы:
- Капча в форме — обычно она выглядит как отметка чекбокса «Я не робот» и не слишком усложняет взаимодействие пользователя с сайтом.
- Верификация почты — отправка письма на введенный адрес, чтобы пользователь прошел по ссылке и подтвердил его. Боты генерируют сотни несуществующих адресов, поэтому такой метод позволяет оставлять комментарии или заполнять формы только для реальных e-mail.
- Ловушки для ботов — это невидимые поля, которые пользователи не заполнят просто потому, что не увидят. Боты заполняют все поля, поэтому таким образом их можно обнаруживать и фильтровать.
Как управлять деятельностью полезных ботов
Полезные боты иногда также не знают меры и посылают слишком много запросов, перегружая сайт. Но их можно «притормозить». Для каждого бота существуют свои настройки, в большинстве своем их можно найти в инструкциях на официальном сайте. Например, вот страницы, посвященные краулерам Google, Ahrefs и Serpstat:
- Настройка частоты сканирования сайта роботом Googlebot
- AhrefsBot. Learn About the Ahrefs’ Web Crawler
- Serpstatbot: вопросы и ответы
Вы можете найти такие инструкции самостоятельно для всех полезных ботов и ограничить продолжительность и частоту сканирования, чтобы они не перегружали сайт.
В заключение отметим, что все виды вредоносных ботов можно заблокировать с помощью сервиса Cloudflare, о котором мы писали отдельную статью. Ознакомьтесь с ней и используйте эту платформу для дополнительной защиты.
Как проанализировать трафик от ботов на сайте
Посмотреть, снизилась ли нагрузка на сайт после внедрения какого-либо из методов защиты, можно в своей панели администратора на хостинге: Хостинг 2.0 => Управление => Ресурсы => разделы «Общая информация», CPU, MySQL. Но следует понимать, что изменения вы не увидите сразу — нужно, чтобы прошло хотя бы несколько часов.
Чтобы обезопасить сайт от ненужных запросов, рекомендуем регулярно мониторить показатели погрузки, логи и трафик, чтобы вовремя заблокировать ботов.
В материале использованы источники:
- Human and bot web traffic share 2021 | Statista
- How to block User Agents in an .htaccess file? — SiteGround KB
- What are Bots | Bot Types & Mitigation Techniques | Imperva
Понравилась статья? Расскажите о ней друзьям:
Автор: Богдана Гайворонская
Журналист (с 2003 года), IT-копирайтер (с 2013 года), контент-маркетолог Cityhost.ua. Специализируется на статьях о технологиях, создании и продвижении сайтов.
Технический консультант: Андрей Заровинский
Руководитель команды технической поддержки Cityhost, автор инструкционных материалов в разделе FAQ. Обучает персонал технической поддержки и помогает решать самые сложные запросы от клиентов.