ГлавнаяПлагиныЗащита WordPress от перебора паролей с помощью Jetpack

Защита WordPress от перебора паролей с помощью Jetpack

Сложность пароля — важный элемент в защите вашего сайта от взлома, но даже самый сложный пароль можно подобрать методом перебора, вопрос лишь во времени.

Ранее мы рассматривали плагин Limit Login Attempts и серверную утилиту fail2ban для защиты WordPress от перебора. Мы также упоминали сервис BruteProtect, который теперь стал частью популярного плагина Jetpack.

В Jetpack версии 3.4 появился новый модуль Jetpack Protect:

Активация модуля Jetpack Protect

Активация модуля Jetpack Protect

Данный модуль основан на сервисе BruteProtect. Он защищает форму входа в WordPress от перебора паролей, но в отличие от локальных плагинов и сервисов (например Limit Login Attempts и fail2ban), Jetpack Protect работает на уровне сети WordPress.com.

Такой подход дает несколько преимуществ. Например на вашем сервере больше нет необходимости хранить и обрабатывать большой объем данных о попытках входа. А при попытке входа на ваш сайт, Jetpack Protect использует данные со всех подключенных сайтов на глобальном уровне, а не только с одного вашего сайта.

Настройки модуля Jetpack Protect

Настройки модуля Jetpack Protect

Есть также и некоторые недостатки, например вам гораздо сложнее будет отследить, кто именно пытался перебрать ваш пароль, и соответственно заблокировать их на уровне сервера или сети.

В целом данный сервис является отличной альтернативой любого другого плагина работающего на уровне WordPress. Если же вы администрируете свой собственный сервер, то мы рекомендуем не отказываться от утилиты fail2ban.

Подписаться на рассылку

Подписаться → Подпишитесь на бесплатную рассылку журнала WP Magazine и получайте новости, события, подборки тем и плагинов, уроки, советы и многое другое в мире WordPress!

  • Владимир Петрозаводский

    Супер отлично , очень нужная фитча

  • Wish Maker

    Спасибо! Полезная инфа, надо и себе обновиться и настроить)

  • Защита от перебора пароля на моих сайтах включена в плагине
    All In One WP Security & Firewall. Попробовал включить эту фишку и в Джетпаке. Вроде бы явных конфликтов плагинов вообще и в отношении этой функции в частности, не наблюдается. Однако совершенно очевидно, что защиту от перебора пароля следует оставить только одну. Но что из двух указанных вариантов лучше? Что скажут знатоки WordPress? Или можно оставить «двойную защиту — и с помощью Джетпак и с помощью All In One WP Security & Firewal?

    • Как я упомянул в последнем абзаце, если защита на уровне плагина, то я рекомендую использовать Jetpack Protect в частности из-за того, что он делает всю тяжелую работу на уровне сети WordPress.com, а не локально на вашей установке WordPress.

      • Спасибо. Со знатоками не буду спорить. Поэтому защиту от перебора в All In One WP Security & Firewall отключаю.

  • Username

    Спасибо за материал. В статье опечатка:

    Jetpack Protect использует данные со всех подключенных сайтах на глобальном уровне, а не только с одного вашего сайта…

    • Спасибо, Username :)

      • Username

        Пожалуйста. А вы случайно не знаете как прикрутить Disqus комментарии к самой последней версии WordPress с дефолтной темой Twenty Fifteen? Когда пытался активировать их плагин, то мне выдало ошибку (текст уже не вспомню).

        И ещё: посмотрите, пожалуйста, на этот скриншот с уведомлением, которое я вижу при любой попытке установить / обновить плагин или тему. Так у меня было сразу после установки чистой версии WordPress. Из-за чего может возникать такая беда? Если я ввожу пароль от FTP, то сразу всё начинает обновляться без проблем, но так происходит каждый раз :-(

        • Не зная текст ошибки сложно сказать как ее починить :) А FTP форма вылезает из-за того, что неправильно настроены права на сервере, т.е. веб-сервер не может напрямую записать файлы в wp-content/plugins, и наверняка у вас такое же окно появляется при обновлении ядра WordPress.

          С этой проблемой проще всего обратиться к провайдеру. Хороший хостер исправит все права на все директории и файлы.

          • Username

            Спасибо. Да, такое же уведомление вижу при попытке установить обновление для ядра. А можете сказать какие должны быть права на папки для корректной работы? Может есть где-то хороший мануал по настройке.

          • Зависит от конфигурации сервера. Например, если веб-сервер выполняется из под пользователя nginx, и он пробрасывает php запросы на php-fpm, который их выполняет пользователем username, то у пользователя username должны быть права на чтение и запись ваших файлов. Если они ему принадлежат, то 0640 достаточно, при этом подразумеваем, что пользователь nginx находится в группе username, и имеет право на чтение (4) статических файлов .jpg, .css, .js и т.д. напрямую. Если файлы *не* принадлежат username но кому-то в его группе, то 0660. Ну и конечно же ни в коем случае не 0777 :)

            Все это основы системного администрирования, поэтому если вы не хотите этим заниматься или изучать, то обратитесь в поддержку к вашему хостинг-провайдеру и вам все сделают.

          • Username

            Благодарю за столько развёрнутый ответ ;-)

          • Username

            Человек, который занимается хостингом, ответил, что проблема была связана с настройками Apache, а точнее с suEXEC. Временно отключил и сейчас всё работает корректно.

        • Alexander Meier

          Username у меня была похожая ситуация. И связано это было с банальным превышением лимита файлов (дело было на бесплатном хостинг-аккаунте, и там стояло ограничение на кол-во файлов). Проверьте, не превышен ли у вас этот лимит или уточните это у хостинг-провайдера.

          • Username

            Спасибо, проверю.

  • Интересно

  • Интересно-интересно. Включил попробовать, вернее оно само автоматом включилось :) При попытке авторизоваться на своем же сайте в режиме Инкогнито мне сообщили, что мой адрес внесен в черный список, хех. А без инкогнито пускает)

  • А не проще защитить через hasse, а для ленивых использовать Плагин Login LockDown

    • Если вы имеете ввиду .htaccess, то нет, не проще. Во-первых он поддерживается только на серверах Apache, во-вторых этот файл обрабатывается каждый раз при запуске любого файла из директории, где расположен ваш .htaccess, т.е. при большом количестве заблокированных IP адресов в этом файле, у вас все запросы станут обрабатываться медленнее, потому что веб-серверу Apache каждый раз нужно будет считывать и разбирать этот файл.

      С Login LockDown и другими плагинами история похожая. Недавно удалось «поработать» с сайтом, где строка в таблице wp_options, содержащая все заблокированные IP адреса, весила более 5 мегабайт с флагом autoload, т.е. каждый запрос стал на 5 мегабайт тяжелее, а таблица wp_options не поддавалась кэшированию, поскольку максимальный размер блоков Memcached по умолчанию — 1 мегабайт.

      Иными словами «для ленивых» самый подходящий вариант этот как раз Jetpack Protect.

      • jemali_m

        Как по-моему, так лучше использовать двухфакторную аутентификацию. Что скажете?

        • Смотря что за проект. Если это интернет магазин детских товаров, то заставлять покупателей мучаться с двухфакторной аутентификацией – это не самый хороший UX :)

          • jemali_m

            Нет нет )) для простого блога, или сайта новостей, к примеру. Имеется ввиду защита админки. Я смотрел в сторону incapsula где предлагается неплохая защита админок, как для Joomla так и для WP, но интеграция с WP лучше у CloudFlare + w3 total cache. Просто не хочется пока что переплачивать за VPS, а вот сторонние плагины здорово грузят сервер, на данный момент выбор пал на плагин «Google Authenticator for WordPress», как по мне так вариант оптимальный.

          • Нужно понимать, что двухфакторная аутентификация хоть и защищает от входа в саму админку, она не защищает от перебора пароля. То есть злоумышленник все равно сможет перебрать пароль, если вы его не будете ограничивать, но войти в админку у него не получится без 2фа кода.

            Еще стоит учитывать, что блокировка на уровне сети или сервера является самой эффективной, т.к. запросы до php/nginx добираться не будут, соответственно вашему серверу не нужно будет их обрабатывать. Именно поэтому мы советуем рассматривать хотя бы fail2ban.

          • jemali_m

            Если на уровне сети, то да, стоит прислушаться. Но так даже в логах не пропишется )))

  • jemali_m

    Jetpack в целом отличный инструмент, но больно сильно грузит сервер. ttfb увеличивает примерно на 60-90мс, это с учетом php5.6 с opcache и memcached, развернуто на vps c 1gb ОЗУ.

  • Александра

    ыф

  • Александр

    Здравствуйте, активировал protect, не установив разрешенные айпи, теперь выдает ошибку:
    ERROR: We’re sorry, but this IP range has been blocked due to too many recent failed login attempts.Please try again later.
    Не подскажите как решить данную проблему?

    • Если не получается зайти в админку, то можно зайти через интерфейс WordPress.com и добавить ваш IP адрес в исключения в настройках Jetpack Protect.