Более десяти лет команда Cloudflare предоставляет услуги по обеспечению безопасности создателям сайтов по всему миру и в настоящее время помогает тысячам компаний поддерживать и защищать свои интернет-ресурсы.
За время своего существования Cloudflare выпустила множество мощных утилит межсетевого экранирования, таких как правила IP, правила CIDR, правила ASN, правила для стран, блокировка пользовательских агентов HTTP и т.д., и недавно к ним добавились правила Cloudflare Firewall Rules. Эти правила объединяют способы использования утилит брандмауэра и предоставляют пользователям большую гибкость и контроль над работой своего брандмауэра.
В этой статье вы узнаете все, что нужно знать о брандмауэрах, о том, как начать применять и редактировать правила Cloudflare Firewall Rules на своем сайте, а также о том, почему безопасность так важна.
Что такое правила брандмауэра Cloudflare?
Правила брандмауэра Cloudflare - это гибкая и интуитивно понятная структура, которую владельцы сайтов могут использовать для фильтрации HTTP-запросов, обеспечивая полный контроль над тем, какие запросы могут достигать вашего приложения.
Правила брандмауэра хорошо интегрируются с существующими инструментами Cloudflare, поскольку позволяют объединить несколько методов в целостный набор правил. Например, вы можете создать одно правило для блокирования трафика пользователей, соответствующих определенному шаблону, вместо того чтобы использовать три или четыре различных правила в разных местах для достижения одного и того же результата.
Кроме того, эти правила позволяют постоянно проверять посещаемость сайта и соответствующим образом реагировать на угрозы. Вы можете определять выражения, которые сообщают Cloudflare о том, на что или на что не следует обращать внимание, и какие действия должны быть предприняты при выполнении этих требований.
Почему брандмауэры необходимы для вашего сайта?
Cloudflare в основном используется для снижения скорости загрузки веб-страниц и защиты сайта от сетевых угроз. Он также борется со спамерами, инъекциями вредоносного ПО и DDoS-атаками.
Около 70% инсталляций WordPress подвержены атакам хакеров, что делает более необходимым использование брандмауэров Cloudflare для защиты сайта от нежелательных угроз. Вот некоторые из причин, по которым брандмауэры необходимы для вашего сайта:
- Cloudflare использует три различных типа минификации - JavaScript, CSS и HTML - для уменьшения размера файлов и увеличения скорости загрузки за счет удаления ненужных белых пробелов, разделителей новой строки и лишних символов.
- С внедрением HTTP/3 Cloudflare поддерживает параллельную передачу нескольких элементов страницы по одному TCP-соединению, а также технологию push и сжатие заголовков.
- Cloudflare WAF защищает ваш сайт от многих уязвимостей, которым подвержены популярные CMS-инструменты (WordPress, Joomla и др.). Cloudflare WAF содержит более 145 правил для защиты сайта от всех типов атак на веб-приложения.
- Cloudflare имеет функцию ограничения скорости, которая позволяет снизить вероятность DOS-атак, попыток входа в систему грубой силой и других злоумышленных действий на уровне приложений. Функция ограничения скорости позволяет настраивать пороговые значения, определять ответы и получать информацию о веб-сайтах.
Как видите, Cloudflare не только улучшает SEO за счет повышения скорости работы сайта, но и предоставляет целый ряд дополнительных функций безопасности для защиты сайта от атак.
Правила межсетевого экрана Cloudflare - сопоставление и действия
Правила межсетевого экрана Cloudflare состоят из двух основных функций: Matching, которая позволяет определить фильтр для точного соответствия трафику, и Actions, с помощью которой определяются действия, которые Cloudflare будет предпринимать после установки фильтра соответствия.
Согласование (Matching)
Фильтр соответствия позволяет отфильтровать любой входящий трафик на ваш сайт. Например, если вы хотите ограничить доступ к определенным странам, перенаправить посетителей на страницу с указанием конкретного местоположения или отфильтровать определенные IP-адреса, то для этого необходимо использовать правила согласования.
Среди наиболее важных функций, внедряемых Cloudflare, - поле известных ботов (cf.client.bot). В нем содержится одобренный Cloudflare список хороших ботов, полученный путем обратного поиска DNS. Вы найдете полный список ботов, одобренных такими сайтами, как Google, Yahoo, Bing, Linkedin, Apple и др.
Примечание: Поскольку функция "разрешить листинг" была удалена, рекомендуется включить cf.client.bot в правило Allowed. Это предотвратит непреднамеренное блокирование правил брандмауэра Cloudflare хорошими краулерами.
Более того, в правилах брандмауэра Cloudflare также реализован алгоритм, который выставляет IP-адресам оценку угрозы, оценивая их репутацию в Интернете. Оценка угрозы варьируется от 0 до 100 и подразделяется на следующие категории:
- Высокая - для оценок от 0 до 13;
- Средняя - для оценок от 14 до 23 баллов;
- Низкая - для оценок от 24 до 48;
- По существу выключено - для оценок, превышающих 49.
Однако одной установкой правил подбора мало что можно сделать. Здесь на помощь приходят действия.
Действия (Actions)
Настроив фильтры соответствия, можно указать правилам Cloudflare Firewall Rules применять стандартные действия Cloudflare (Block, JavaScript Challenge и Managed Challenge), а также действие Allow.
- Block: используется для блокирования доступа трафика к вашему веб-приложению.
- JavaScript Challenge: используется для блокировки трафика от посетителей, не поддерживающих JavaScript, то есть, как правило, ботов.
- Managed Challenge: используется для установки Captcha-задачи для блокировки потенциальных ботов.
- Allow (Разрешить): используется для разрешения посетителям доступа к вашему веб-приложению.
Три примера использования правил брандмауэра Cloudflare в действии
В этом разделе мы рассмотрим три способа настройки правил брандмауэра Cloudflare с помощью панели управления и объясним, чем они могут быть полезны.
Мы рассмотрим:
- Как заблокировать посещение вашего сайта представителями определенных стран
- Как повысить безопасность сайта WordPress с помощью captcha
- Как предотвратить появление на сайте нежелательного бот-трафика
Для начала войдите в панель управления Cloudflare. Там выберите доменное имя, для которого вы хотите настроить правила брандмауэра Cloudflare.
правила брандмауэра cloudflare в действии шаг 1
Далее в левом меню выберите пункт Security, а затем - WAF.
В этом разделе можно задать новое правило брандмауэра, просмотреть и отфильтровать существующие правила, активировать, деактивировать, изменить и удалить правила. Чтобы опробовать приведенные ниже примеры, нажмите на кнопку Создать правило брандмауэра.
Пример 1 - Блокировка всех стран, кроме Россия
Чтобы заблокировать все страны, кроме одной (в нашем примере это будут Россия), выполните следующие действия:
- Во-первых, дайте правилу имя.
- В раскрывающемся списке Field (Поле) выберите Country (Страна).
- Далее в раскрывающемся списке Оператор выберите значение Не равно (does not equal).
- В раскрывающемся списке Значение выберите Russian Federation.
- Наконец, в раскрывающемся списке Действие выберите Блокировать, а затем нажмите на синюю кнопку Развернуть в правом нижнем углу.
И наоборот, если вы хотите заблокировать одну страну, выберите в раскрывающемся списке Operator значение equals, а затем выполните процедуру, описанную выше.
Редактор выражений:
1 | (ip.geoip.country ne "RU") |
Пример 2 - Безопасность WordPress
Безопасность WordPress - важная вещь, о которой владельцы сайтов мало задумываются. Ежедневно Google вносит в черный список около 10 000+ сайтов за вредоносное ПО и около 50 000+ сайтов в неделю за фишинг. Очень важно защитить свой WordPress-сайт от вредоносных программ и угроз и избежать блокировки сайта.
Почему безопасность WordPress важна?
Независимо от того, велик или мал ваш сайт, хакерам нет до него дела. Так или иначе, они могут найти различные способы использовать информацию против вас. Как правило, они ищут ваши личные и финансовые данные, а затем пытаются нанести ущерб вам и вашей компании с помощью собранной информации.
Марк Ронсо, менеджер по маркетингу компании Top Writers Review, заявил: "Репутация компании может быть серьезно подорвана из-за взломанного сайта. Хакеры обычно устанавливают вредоносные программы или вирусы для извлечения данных в фоновом режиме, что может привести к потере доверия к вашему бизнесу и переходу клиентов к конкурентам".
Таким образом, чтобы обеспечить безопасность бизнеса, необходимо защитить свой сайт с помощью плагинов WordPress или брандмауэра Cloudflare. Так какой же из них лучше и в чем разница между ними?
Плагины WordPress и брандмауэр Cloudflare - что лучше?
Многие люди предпочитают устанавливать бесплатные плагины для обеспечения безопасности своего сайта, вместо того чтобы использовать сторонние инструменты, такие как Cloudflare, - как правило, потому, что это слишком сложно, или чтобы сэкономить деньги. На самом деле установка Cloudflare не занимает много времени и предоставляет гораздо больше функциональных возможностей, чем любой другой плагин WordPress.
Вот основные отличия, о которых вы должны знать:
Брандмауэр Cloudflare:
- Брандмауэр Cloudflare легко интегрируется с CDN, такими как WordPress.
- Автоматическая оптимизация платформы (APO) Cloudflare кэширует ваш сайт и оптимизирует активы, повышая скорость работы сайта.
- Брандмауэр Cloudflare предлагает бесплатный SSL-сертификат и услугу DNS, а также мощную защиту от DDoS-атак.
- Повышает скорость и производительность сайта, динамически переписывая небезопасные URL-адреса в их безопасные аналоги.
- Бесплатно для начала работы
Плагины безопасности WordPress:
- Регулярно сканируют сайт на наличие вредоносного кода и имеют функцию брандмауэра реального времени, который защищает сайт от известных и неизвестных угроз.
- Многие бесплатные плагины не предлагают таких функций, как блокировка IP-адресов, блокировка стран и защита от грубой силы при входе на сайт.
- Некоторые плагины WordPress позволяют переименовывать шлюзы входа, чтобы избежать возможных атак.
- Никогда не знаешь, какие права предоставляются разработчику плагина.
В целом, большинство плагинов WordPress не увеличивают скорость работы сайта и не предоставляют такого количества дополнительных возможностей, как брандмауэр Cloudflare. Для защиты сайта от любых атак рекомендуется использовать брандмауэр Cloudflare, а не бесплатные плагины безопасности.
Как защитить свой WordPress-сайт с помощью брандмауэра Cloudflare
Повторите описанный выше процесс создания нового правила брандмауэра и присвоения ему имени, но на этот раз нажмите на выражение Edit.
Таким образом, вы получаете прямой доступ к редактору выражений. В поле вставьте следующее выражение:
1 | ((http.request.uri.path contains "/xmlrpc.php") or (http.request.uri.path contains "/wp-login.php") or (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")) and ip.geoip.country ne "RU" |
После этого выберите Managed Challenge из выпадающего списка Choose an action и нажмите Deploy.
Теперь вы установите вызов Captcha для всех посетителей за пределами Россия, пытающихся зайти на WordPress xmlrpc.php, wp-login.php и /wp-admin (кроме admin-ajax.php и theme-editor.php), чтобы заблокировать доступ потенциальных хакеров к вашему WordPress-сайту.
Если URL-адреса входа в систему или администратора были изменены, не стесняйтесь отредактировать исходное выражение.
Пример 3 - Блокирование трафика плохих ботов
Плохие боты предназначены для совершения различных мошеннических действий и вредоносных операций, таких как рекламное мошенничество, атаки вредоносного ПО и кража данных. Около 40% интернет-трафика составляют "плохие" боты, а во время пандемии, с сентября по октябрь 2020 года, количество "плохих" ботов на сайтах розничной торговли во всем мире увеличилось на 788%, что привело к потерям в 82 млн. долл. в пиковый сезон.
Блокирование нежелательного трафика помогает избежать попыток злоумышленников осуществить DDoS-атаку на ваш сайт. Большинство DDoS-атак замедляют работу сайта, направляя на него большой объем трафика, перегружая сервер и заставляя его работать в автономном режиме.
Процедура здесь аналогична предыдущему примеру. Единственное отличие заключается в том, что в раскрывающемся меню Choose an action (Выбор действия) необходимо выбрать Block (Блокировать) и вставить в Expression Editor следующее:
1 | (http.user_agent contains "muckrack") or (http.user_agent contains "Qwantify") or (http.user_agent contains "Sogou") or (http.user_agent contains "BUbiNG") or (http.user_agent contains "knowledge") or (http.user_agent contains "CFNetwork") or (http.user_agent contains "Scrapy") or (http.user_agent contains "SemrushBot") or (http.user_agent contains "AhrefsBot") or (http.user_agent contains "Baiduspider") or (http.user_agent contains "python-requests") or (http.user_agent contains "crawl" and not cf.client.bot) or (http.user_agent contains "Crawl" and not cf.client.bot) or (http.user_agent contains "bot" and not http.user_agent contains "bingbot" and not http.user_agent contains "Google" and not http.user_agent contains "Twitter" and not cf.client.bot) or (http.user_agent contains "Bot" and not http.user_agent contains "Google" and not cf.client.bot) or (http.user_agent contains "Spider" and not cf.client.bot) or (http.user_agent contains "spider" and not cf.client.bot) |
Это правило блокирует бот-трафик с пользовательскими агентами, содержащими строки "crawl", "bot", "spider" и некоторые другие пользовательские агенты.
Это же правило можно переписать, используя вложенные круглые скобки, следующим образом:
1 | (http.user_agent contains "muckrack") or (http.user_agent contains "Qwantify") or (http.user_agent contains "Sogou") or (http.user_agent contains "BUbiNG") or (http.user_agent contains "knowledge") or (http.user_agent contains "CFNetwork") or (http.user_agent contains "Scrapy") or (http.user_agent contains "SemrushBot") or (http.user_agent contains "AhrefsBot") or (http.user_agent contains "Baiduspider") or (http.user_agent contains "python-requests") or ((http.user_agent contains "crawl") or (http.user_agent contains "Crawl") or (http.user_agent contains "bot" and not http.user_agent contains "bingbot" and not http.user_agent contains "Google" and not http.user_agent contains "Twitter")or (http.user_agent contains "Bot" and not http.user_agent contains "Google") or (http.user_agent contains "Spider") or (http.user_agent contains "spider") and not cf.client.bot) |
Как проверить, что правила брандмауэра работают
После того как все настроено, необходимо проверить, работают ли правила брандмауэра Cloudflare. Для этого можно получить доступ к журналу событий брандмауэра, вернувшись в раздел Overview брандмауэра. Там можно увидеть список событий брандмауэра и подробную информацию о них.
Обратите внимание, что проверка правил брандмауэра может занять некоторое время, если трафик не очень большой. В этом случае следует подождать несколько дней и проследить за Google Analytics, чтобы убедиться в отсутствии отклонений от нормы, а затем вернуться в Cloudflare и проверить журнал активности.
Самое важное, на что следует обратить внимание, - это события вызова и блокировки.
Когда в списке появляются события вызова и блокировки, не спеша просмотрите их и выясните, не были ли заблокированы хорошие боты, когда этого делать не следовало, и не проскочили ли какие-либо известные плохие боты. Вы должны быть уверены, что ни один положительный трафик не будет лишен доступа к вашему сайту из-за ошибки в настройке правил брандмауэра.