Защита сайта на WordPress от взлома

Друзья!

Многие из вас уже наверняка слышали о том, что с 2 августа множество сайтов на движке WordPress и некоторые на движке Joomla подвергаются массовой атаке ботов. Используя большое количество ботов, злоумышленники подбирают пароли к админке сайта методом брутфорса. Естественно, серверы не выдерживают такой нагрузки, потому тех. поддержка делает все, чтобы блокировать или отфильтровать ботов.

Защита сайта Wordpress от взлома

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

Советы по защите от Brute Force атак, которые приводит сам Wordpress:

1. Не используйте имя пользователя «admin». Если вы не меняли имя после создания своего аккаунта на WordPress, то создайте новый аккаунт с другим именем, перенесите туда все посты и измените имя пользователя «admin» (или вообще его удалите). Кроме того, вы можете использовать плагин Admin Renamed Extended, который позволяет быстро поменять имя пользователя.

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

Сложный пароль защитит не только содержимое сайта. Получив доступ в админ-панель сайта, хакер может установить различные скрипты, которые могут нанести вред всему серверу.

3. Вы можете использовать следующие плагины, которые ограничивают количество попыток входа или блокируют тех, кто пытаются получить доступ к wp-admin:

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

Создайте файл в текстовом редакторе, назовите его .htaccess и добавьте следующее:

               # Block access to wp-admin.
               order deny,allow
               allow from x.x.x.x 
               deny from all

x.x.x.x – ваш IP адрес (узнать свой IP адрес).

Файл .htaccess необходимо разместить в каталоге wp-admin/

Для Nginx вы можете добавить следующий блок, который работает так же, как и приведенный выше.

               SetEnvIf Remote_Addr х.х.х.х realremoteaddr
               order deny,allow
               allow from env=realremoteaddr
               deny from all

Если необходимо добавить еще один IP адрес доступа, то прописываем аналогичную строку с другим адресом под указанной.

Если темы или плагины вашего сайта используют AJAX, в файл .htaccess необходимо добавить следующую информацию.

               # Allow acces to wp-admin/admin-ajax.php
               <Files admin-ajax.php>
               Order allow,deny
               Allow from all
               Satisfy any
               </Files>

Сохраните файл и загрузите его в вашу папку wp-admin.

Если вы ограничиваете доступ к wp-admin в Nginx и используете AJAX, вы должны добавить в файл следующую запись

               location /wp-admin/admin-ajax.php {
               allow all;
               }

Дополнительную информацию по защите вашего сайта на Wordpress от взлома вы можете прочесть здесь.

Позаботьтесь о защите содержимого ваших сайтов.

  • Дмитрий

    А с Joomla что делать? Можно и для нее инструкцию?

  • nixer1

    добавьте еще капчу http://wordpress.org/plugins/captcha/screenshots/

  • Инесса Паридуха

    Добрый день, Дмитрий!
    В ближайшее время опубликуем инструкции и для Joomla.

  • Павел Абакумов

    EasyCalcCheck PLUS можно использовать для Joomla 2.5 и выше . Для 1.5 можно через .htaccess .

    Бесплатный генератор .htaccess — http://www.ifstudio.org/seo/htaccess.php

  • Сергей

    Подскажите, пожалуйста, какой РАК блокировал работу Яндекс бота? Все страницы с сайта вылетели из поиска.

  • Как раз у нас сайт взломали. Постоянно бекапы сейчас делаем, которые откатываем. Теперь более понятно, что нужно делать

  • Vladislav Sorokin

    Попробовал по п.4 для WP вставить в .htaccess строки
    # Block access to wp-admin.
    order deny,allow
    allow from x.x.x.x
    deny from all

    Заблокировался весь сайт а не админка для всех кроме меня (проверьте свою инструкцию). Добавил второй IP — с него заработало. И сайт и админка

    Во-вторых, у меня Nginx. Поменял вышеприведенный код на следующий:
    SetEnvIf Remote_Addr х.х.х.х realremoteaddr
    SetEnvIf Remote_Addr х.х.х.х realremoteaddr
    order deny,allow
    allow from env=realremoteaddr
    deny from all

    Для двух IP все работает и админка и сайт. Изменил второй IP на «что попало» все равно с него можно заходить и на сайт и в админку.
    Прокомментируйте, пож

  • hostproua

    Добрый день, Владислав

    Для того чтоб закрыть доступ к wp-admin по .htaccess в указанном примере, вы должны прописать приведённый код не в корне вашего сайта, а именно в каталоге wp-admin/

    (Статью подправили)

    Для Nginx вы также должны создать Location в секции Server , например:

    location /wp-admin {
    allow 127.0.0.0/8;
    deny all;
    }