Бот-трафик в последнее время выше, чем когда-либо. По данным Distil Networks, в 2017 году «плохие» боты составляли примерно 21,8% всего веб-трафика, что на 9,5% выше, чем годом ранее. И, что более важно, примерно 74% бот-трафика составляли средние и высокие по сложности боты, которые способны уклоняться от обнаружения за счет использования многочисленных IP-адресов или имитации поведения человека. Это становится существенной проблемой для компаний, которые пока еще не предпринимали никаких действий по фильтрации или блокировке такого типа трафика.
Сегодня мы познакомим вас с простым способом борьбы с бот-трафиком с помощью Sucuri Web Application Firewall (WAF). Вне зависимости от того, находится ли ваш сайт под DDoS-атакой или вы столкнулись с высоким трафиком от ботов и прокси, WAF поможет вам мгновенно решить эти проблемы.
Ниже мы рассмотрим настройку файрвола от Sucuri на WordPress сайте. Также мы коснемся оптимальных настроек и тарифов, которые вы можете выбрать для получения лучших результатов.
Sucuri WAF – знакомимся с файрволом
Sucuri — универсальная платформа для обеспечения безопасности сайта, позволяющая защитить бизнес от различных угроз, а также ликвидировать уже ведущиеся атаки. Компания предлагает множество разных продуктов и услуг: защиту от брутфорса, CDN, сканирование на наличие вредоносного ПО, восстановление после взлома, мониторинг DNS, обнаружение изменений в файлах и т.д.
Сегодня мы рассмотрим только один продукт — Sucuri Web Application Firewall (WAF). Файрвол Sucuri является облачным; он предназначен для блокирования атак на сайты («плохой» трафик). Как все это работает? Вы направляете свои DNS на них, и они уже передают ваш трафик вашему WordPress-хосту. Файрвол расположен посередине, блокируя трафик прежде, чем он попадет на ваш хост.
Команда Sucuri постоянно изучает новые способы улучшения и устранения возникающих угроз. Они позволяют добавлять свои собственные правила, что делает их сервис очень мощным.
Нужен ли вам Sucuri?
Нужен ли вам такой сервис, как Sucuri? Возможно. Наличие файрвола, который расположен между вашим сайтом WordPress и вашим хостинг-провайдером, всегда будет позитивным фактором. Это сэкономит ваше время и поможет избежать лишних проблем.
Однако, к сожалению, мы редко видим клиентов, которые начинают использовать аналогичные Sucuri сервисы еще до того, как они столкнутся с проблемами. Самые распространенные ситуации: DDoS-атаки, «плохой» трафик с ботов и прокси-серверов. «Плохой» — это не значит, что кто-то пытается взломать ваш сайт. В большинстве случаев это просто мусорный трафик, приводящий к проблемам с хостинг-провайдером. Проблемы могут быть выражены в лишних посещениях, забивании пропускной способности и т.д. Иными словами, трафик является «плохим», поскольку он обходится вам в дополнительную сумму. Если вы используете виртуальный сервер, хостер может попросту приостановить ваш сайт.
Ниже приведен пример сайта, на который внезапно хлынули потоки «плохого» прокси-трафика. Сайт имел в среднем 25 визитов в день, а затем вырос до 1500 визитов в день (и, увы, это не просто временный вирусный трафик). В итоге пропускная способность вышла за пределы 25 Мб и доросла до 25 Гб в сутки!
Изучив аналитику, мы пришли к выводу, что чаще всего сайт посещали из провинции Ареццо (Италия) – более 4 млн запросов за последние 30 дней. Сайт обычно получает более 90% трафика из США, потому мы быстро обнаружили источник «мусорных» визитов.
Многие хостинг-провайдеры автоматически блокируют популярных «плохих» ботов, фильтруют спамерские IP и предлагают дополнительные настройки безопасности, такие как, к примеру, ограничение IP-адресов. Однако это не так эффективно, как использование профессионального файрвола (к примеру, Sucuri или Cloudflare). Бизнес-модель этих компаний строится на применении инноваций для улучшения фильтрации плохого трафика.
Что можно попробовать еще до обращения к Sucuri
Если вы столкнулись с плохим трафиком на своем WordPress сайте, вы можете сначала попробовать сделать следующее, прежде чем ставить Sucuri.
- Блокировка отдельных IP-адресов вручную.
Первое, что можно сделать – попытаться заблокировать спамерские IP-адреса вручную. Хостинг-компании обычно предлагают отчеты по IP-адресам, где можно видеть, с каких адресов идет больше всего запросов.
Поиск в Google по IP-адресам показал нам, что большинство из них являются адресами прокси-серверов из Италии. Делаем вывод: это боты или спамеры.
Вы можете также использовать плагины для WordPress, позволяющие блокировать IP-адреса и задавать ограничения для них.
Однако будьте аккуратны с этим подходом. Многие плагины безопасности вызывают проблемы с производительностью из-за постоянно работающих функций отслеживания и сканирования. По этой причине хостинги нередко запрещают определенные плагины безопасности. Также хостинги могут использовать балансировщики нагрузок (к примеру, из Google Cloud Platform) – это означает, что в некоторых случаях функции блокировки IP-адресов в плагинах не будут работать так, как это задумывалось.
- Блокировка по географическому расположению.
Еще одна рекомендация – блокировка трафика из определенного региона или страны. Многие хостинги поддерживают такую географическую блокировку.
Также есть плагины наподобие IP Geo Block и WordFence, которые предлагают гео-блокировку. Но, опять же, многие хостинги их не поддерживают.
Если приведенные выше решения вам не подходят, то тогда мы рекомендуем внедрить премиум-файрвол – к примеру, Sucuri. Плагинов для его установки и управления им нет – он просто находится между вашим сайтом и вашим хостингом. Это самый лучший подход в плане производительности. С его помощью можно будет отсеять весь мусорный трафик.
Рекомендации по выбору тарифа Sucuri
Мы рекомендуем брать тариф Sucuri Pro. Почему? Тариф Pro ($20/месяц) включает поддержку произвольных SSL-сертификатов и предлагает защиту от DDoS-атак (Advanced HTTPS DDoS Protection) на уровнях 3,4 и 7. Для сравнения, Cloudflare включает только защиту на уровне 7 в своем тарифном плане $200/месяц.
Sucuri Pro позволяет автоматически обнаруживать неожиданные изменения трафика, защищая от POST-флуда и атак на основе DNS. Все это никогда не дойдет до вашего исходного сервера. Если вы не специалист по безопасности, то вы вряд ли сможете отличить небольшую DDoS-атаку от просто плохого трафика, забивающего ваш сайт.
HTTP-флуд – атака на уровне 7 приложений, использующая стандартные действительные запросы GET/POST для получения информации, как и в случае с обычными попытками получения изображений, данных и т.д. HTTP GET/POST-флуд – это volumetric-атака, в которой не используются некорректные пакеты, спуфинг или отражение.
Тариф Pro также включает в себя поддержку HTTP/2, что очень важно в контексте производительности. Дополнительные функции, имеющиеся во всех тарифах:
- Система обнаружения вторжений
- Система предотвращения вторжений
- Доступ к логам проверок
- Защита от HTTP-флуда
- Защита от брутфорса
- Виртуальный патчинг
- Предотвращение внедрений SQL, XSS и кода
- Двухфакторная аутентификация, капча и защита паролем для любой страницы
- Поддержка внешнего CDN
- Балансировка нагрузки
Как установить файрвол Sucuri
В статье мы покажем вам, как установить файрвол Sucuri (тариф Pro) на WordPress-сайте. Процесс довольно простой, займет всего пару минут.
Шаг 1. Зарегистрируйтесь в Sucuri Pro, если вы еще не сделали этого ранее.
Шаг 2. В консоли Sucuri щелкните по кнопке «Protect My Site Now!»
Шаг 3. Введите ваше доменное имя и сконфигурируйте следующие опции (мы не стали их включать):
- Under a DDoS attack: включение этого параметра автоматически активирует более агрессивные опции Sucuri. Вы можете включить его, если вы уверены, что подвергаетесь атаке. Эти настройки всегда можно изменить позже.
- Whitelisted directories: включите этот пункт, если вы хотите ограничить доступ к администраторским каталогам только для IP-адресов из белого списка (к примеру, /wp-login или /admin). Примечание: если у вас интернет-магазин, то вы, скорее всего, отключите это. Помните, что клиенты тоже используют эти области.
- Sucuri DNS: Sucuri позволяет вам использовать свою инфраструктуру DNS. Это позволяет выполнять географическую маршрутизацию для оптимизации глобальной производительности, отказоустойчивости и высокой доступности. Однако в данной статье мы не будем использовать эту опцию, поскольку мы хотим использовать своего DNS-провайдера.
Шаг 4. Sucuri предлагает бесплатные SSL-сертификаты Let’s Encrypt, которые автоматически выпускаются после указания своего домена. Однако помните, что выпуск не происходит мгновенно! Сертификаты Let’s Encrypt не могут быть выпущены до завершения распространения DNS. Чтобы избежать простоев, мы рекомендуем установить платный SSL-сертификат.
Если же вы все же решили использовать Let’s Encrypt, то мы рекомендуем привязывать свой сайт к нему в то время, когда на сайте минимальное количество посетителей.
Шаг 5. Теперь вы можете привязать свой домен. Прокрутите вниз до того места, где приведена информация о DNS. Вам потребуется обновить запись A для вашего домена, чтобы она указывала на файрвол Sucuri. Обычно это делается у вашего регистратора доменов или у хостинг-провайдера.
Примечание: Sucuri должен автоматически получить ваш текущий IP-адрес. Как только вы направите ваш домен на Sucuri, файрвол будет автоматически вести весь трафик на ваш WordPress хостинг.
Изменения DNS могут распространяться до 48 часов, но обычно это занимает всего пару часов или даже меньше. Вы можете проверить, распространился ли ваш DNS, с помощью whatsmydns.net. Вы также можете нажать на иконку refresh в консоли Sucuri, чтобы подтвердить, что домен указывает на файрвол.
Если маршрутизация корректна, пункт станет зеленым.
Шаг 6. Если у вас есть файрвол на вашем хостинге WordPress, вам, возможно, потребуется внести в белый список IP-адреса Sucuri. Все соединения к вашему хостинг-серверу будут проходить через файрвол Sucuri, а потому их IP-адреса должны быть внесены в белый список, чтобы избежать их некорректного блокирования. Примечание: узнать IP-адреса Sucuri можно в консоли. Пример ниже показывает вариант IP-адресов:
192.88.134.0/23 185.93.228.0/22 2a02:fe80::/29 66.248.200.0/22
Оптимальные настройки Sucuri
Ниже приведены некоторые рекомендуемые настройки, которые вы можете применить в консоли Sucuri:
В разделе Security мы рекомендуем включить следующие опции:
- XMLRPC, Comments and Trackbacks blocked: если на вашем сайте запрещены комментарии, либо вы используете стороннюю систему комментирования (по типу Disqus), то в таком случае вы можете запретить любые попытки оставить комментарий, поскольку это обычно будет спамом. Если вы используете родную систему комментирования, то не включайте этот пункт.
- Block anonymous proxies and the top three attack countries: включение этой опции не позволит никому из Китая, России и Турции взаимодействовать с вашим сайтом. Они смогут просматривать контент, но не смогут зарегистрировать аккаунт, отправить комментарий или войти в систему. Те же ограничения коснутся пользователей, сидящих с анонимных прокси для скрытия своих IP.
- Aggressive bot filter: этот параметр позволяет заблокировать неверные пользовательские агенты, которые не соответствуют существующим браузерам – пустые агенты, агенты, начинающиеся с PHP, а также неправильные агенты.
- Advanced evasion detection: эта опция позволит активировать расширенное обнаружение уклонения от Sucuri. Мы рекомендуем использовать эту опцию, однако если ваш сайт поддерживает URL-адреса с локальными символами (японский язык, индийский, русский и т.д.), вам понадобится отключить опцию.
«Enable Emergency DDoS protection» работает великолепно, если вы считаете, что ваш сайт подвергается атаке. Защита от HTTP-флуда позволит предотвратить посещения от тех пользователей, у которых в браузере отключен JavaScript (кроме крупных поисковых систем). Однако, как показывает практика, опция тоже генерирует дополнительный HTTP-запрос во время базовой DOC загрузки. Потому рекомендуем отключить ее, когда все нормализуется.
Кэширование
В разделе «Performance -> Caching Level» вы можете настроить обработку кэширования. Обычно сайт WordPress уже имеет настроенное кэширование. Мы рекомендуем выбрать «Site caching». В итоге будет использовать кэш вашего сервера вместо кэша Sucuri.
CDN
Sucuri позволяет вам использовать сторонние CDN (KeyCDN, MaxCDN) или их собственный CDN. CDN от Sucuri включает в себя быструю сеть HTTP/2 Anycast с 6 SuperPOP в США, Европе и Азии, а также 3 CDN POP в Австралии, Бразилии и на Филиппинах. Никакой дополнительной оплаты не потребуется, если вы используете их файрвол.
Сжатие
В «Performance -> Compression» мы рекомендуем включить сжатие. Это позволит сократить количество байтов, отправленных через сеть, и улучшит производительность вашего сайта.
Все! Пусть Sucuri начнет работать, и в течение нескольких дней вы заметите результат. На том сайте, где мы развернули его, пропускная полоса вернулась к былым показателям, а визиты откатились к стандартному среднему показателю.
Дополнительные полезные функции
Когда вы настроите Sucuri, у вас появится много других полезных функций и отчетов, которые вы сможете использовать для дальнейшего повышения качества трафика.
Контроль доступа
Вкладка Access Control позволит вам задать белый список и черный список IP-адресов и путей, заблокировать пользовательские агенты, куки, HTTP-рефереры, а также защитить определенные страницы с помощью капчи, двухфакторной аутентификации или простого пароля. Вы можете легко заблокировать целую страну с помощью географической блокировки.
Просмотр в режиме реального времени
Режим реального времени – просто великолепная возможность! Вы можете быстро изучить лог текущих запросов, добавить что-либо в черный список или белый список.
Заблокированные атаки
График заблокированных атак позволяет быстро понять, какие атаки были остановлены, включая DDoS. Можно оценить трафик по типу браузера, устройствам, кодам ответа HTTP.
Средний трафик в час
Здесь вы можете оценить пиковое время для вашего трафика, а также процент заблокированных запросов.
Трафик по странам
Таблица показывает, есть ли трафик из определенной геолокации. Вы можете легко заблокировать всю страну с помощью одного клика.
Если вы постоянно сталкиваетесь с ботами, спамом и атаками на свои WordPress-сайты (интересно, кто-то не сталкивается?!), обязательно воспользуйтесь файрволом Sucuri. Это в целом увеличит производительность вашего сайта.
Источник: kinsta.com