Надёжная защита WordPress от взлома. Как защитить вход в админку WordPress? Примитивные меры и WPS Hide Login Атакуют админ панель wordpress что делать

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

Зачем взламывают сайты на WordPress?

Взламывают все популярные CMS (движки для сайтов), и Вордпресс не исключение, взламываю в основном с помощью так называемых программ (скриптов) — эксплоитов, для получения контроля над сайтом, делается это в основном для создания ссылок с вашего сайта на другие ресурсы, и для создания BotNet, который занимается DDoS атаками на другие сервера, причем сайт остается в рабочем состоянии, и вы никогда не увидите не «вооруженным» глазом что он заражен. В любом случае взлом плохо отразится на вашем сайте, и возможно вы даже пропадете из выдачи.

Как я уже говорил, взлом происходит в автоматическом режиме, определить CMS сайта не составляет труда, для этого есть много онлайн сервисов, часто атакующая программа пытается подобрать пароль от административной части сайта, т.е. переходит по адресу your-site.ru/wp-admin и пробует подобрать пароль к вашему пользователю, узнать имя пользователя не составляет труда, вы ведь пишите статьи именно под ним, поэтому логин будет виден ботам, они знают где его посмотреть. если вы конечно не закрыли его при помощи плагина, об одном из которых мы поговорим ниже. Пароль от администратора сайта должен быть очень сложным, но даже при выполнении этого условия, нельзя давать ботам перебирать (брутить) пароль от «админки», потому что это не нужная нагрузка на сервер, представьте если этим занимаются несколько десятков ботов с разных концов света.

Плагин для защиты WordPress от атак

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

Это плагин достаточно прост в освоении, и руссифицирован на 90%, устанавливается как и любой плагин из репозитория WordPress, после установки его нужно активировать и сделать основные настройки. Он появляется в основном меню в админке WordPress

Панель управления плагина WP Security

После перехода к настройкам плагина, попадаем в панель управления. Тут можно сделать основные важные настройки.

  1. Показывает 5 последних авторизаций в вашей админке, указан пользователь и IP адрес, я например сразу вижу свои IP, их всего два, поэтому у меня не возникает сомнений что мой пароль от административной части знает кто то еще.
  2. Раздел самых важных функций, тут все нужно включить, и со всем согласиться.
  3. Плагин, способен отслеживать изменения файлов на хостинге, причем он может отправлять отчет вам на почту, и вы всегда в курсе какие файлы у вас изменились, это очень полезно, если вам подгрузили какой то скрипт или любой файл с вредоносным кодом, вы это сразу увидите в отчете, единственный минус, после обновления каких либо других установленных у вас плагинов или самого движка WordPress, WP Security увидит все эти изменения и пришлет вам огромный список, но к этим отчетам можно привыкнуть, ведь вы знаете когда обновляли файлы сами.
  4. Этот пункт меняет стандартный адрес админки сайта yoursite.ru/wp-admin , на yoursite.ru/luboe-slovo , это спасет вашу админку от некоторых горе-хакеров и ботов, но к сожалению не от всех, особо продвинутые ее все равно находят, об этом я могу судить глядя в раздел «Авторизации», но об этом позже.
  5. Этот пункт должен быть выключен, как на скриншоте, он нужен только тогда, когда вы хотите поставить сайт на обслуживание, для посетителей будет выдаваться табличка с сообщением, о том что на сайте ведутся технические работы, иногда это полезно, например при смене дизайна сайта, или при каких то глобальных изменениях, не забывайте, что в этом режиме поисковые роботы тоже не могут просматривать ваш сайт, не закрывайте его на долго.

Защита админки WordPress от подбора пароля

Теперь перейдем в пункт меню — Авторизация, на мой взгляд очень полезный пункт, и его стоит настроить, так как на одном из моих сайтов. с посещаемостью около 1000 человек, плагин отлавливает в день десятки попыток подобрать парль к админке, и добавляет IP адреса взломщиков в черный список, т.е. блокирует его совсем, сайт перестает отвечать этому IP адресу, тем самым сводя на нет попытки подобрать пароль, на скрине настройки которые делаю я.

  1. Число попыток «ошибиться» оставляю -3, не делайте меньше, можете сами неверно набрать пароль, и попасть в черный список со своим IP, придется
  2. Это время, через которое сбрасывается счетчик не верных попыток залогиниться
  3. Период блокировки IP адресов, с которых были не верные попытки авторизации, я ставлю побольше, в минут, т.е. баню на долго, на скрине стоит 6 000 000 минут, это примерно 11 лет, думаю хватит

Всем заблокированным IP будет закрыт доступ не только к админке, но и ко всему сайту, имейте это в виду

Список заблокированных IP адресов

  1. айпи адрес злоумышленника
  2. логин к которому подбирали пароль, кстати правильный
  3. дата когда была сделана автоматическая блокировка

Белый список адресов для админки

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

  1. активация этой опции
  2. тут ваш текущий IP адрес
  3. в этом поле введите все IP адреса, с которых разрешен доступ в админку

Если нужно указать диапазон IP адресов, то вместо цифры, используйте звездочку, к примеру 192.168.5.* — такая конструкция даст доступ в админку wordpress со всех ip начинающихся на эти цифры, такой способ может быть полезен тем, у кого нет выделенного ip адреса, и он постоянно меняется, к примеру при работе с мобильного интернет, как правило диапазон будет оставаться в пределах двух первых цифр, вот так к примеру 192.168.*.*

Из статьи вы узнаете:

1. Используйте хороший логин.

Защита сайта на WordPress начинается с элементарного — создания хорошего логина. Устанавливая WordPress, пользователи часто используют логин, который программа установки предлагает по умолчанию, а именно – admin . Это то, что проверяют боты, ищущие дыры в безопасности вашего сайта, в первую очередь. Используя этот логин, вы уже предоставляете половину необходимой информации для хакеров, и им остается только подобрать пароль.

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

Шаг 1 – Создание нового пользователя

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

В главном меню слева выберите Пользователи >> Добавить нового .

Введите всю необходимую информацию для нового пользователя, определив его роль как «Администратор» и нажмите «Добавить нового пользователя» .

Шаг 2 – Удаление пользователя admin

После этого выйдите из системы управления, войдите под новой учетной записью и удалите пользователя admin из системы одним из способов:

Способ 1 – В главном меню слева выберите Пользователи >> Все пользователи . Наведите на имя пользователя admin , и вы увидите функцию «Удалить» .

Способ 2 — В главном меню слева выберите Пользователи >> Все пользователи . Найдите пользователя admin , отметьте его галочкой и из выпадающего меню «Действия» выберите «Удалить» . После этого нажмите на опцию «Применить» под списком пользователей. Эта опция удобна, если вам необходимо удалить сразу несколько пользователей.

Так же вы можете изменить имя пользователя admin через запрос к базе данных:
UPDATE wp_users SET user_login = ‘новый_логин’ WHERE user_login = ‘admin’;

У данного способа есть минус: автор для постов, написанных пользователем admin , не будет изменен. Для того, чтобы это исправить, необходимо сделать еще один запрос к базе данных:
UPDATE wp_posts SET post_author = ‘новый_логин’ WHERE post_author = ‘admin’;

2. Используйте сложный и уникальный пароль.

Защита админки WordPress, конечно, невозможна без сложного хорошего пароля. Важно, чтобы он был уникальным и включал в себя цифры, буквы разных регистров, знаки пунктуации, символы и прочее. Пароли типа: pass, 1q2w3e4r5t6y, 87654321, qwerty, abc123, 111111, 1234, дата вашего рождения и т.д. – не являются надежными, но многие пользователи продолжают их использовать. Пример хорошего пароля: pcVaOF8r39. Конечно, вам сложно будет запомнить такой пароль, но для этого существует ряд программ, которые хранят и генерируют пароли, а также могут быть интегрированы в интерфейс вашего браузера (например, Password Agent, KeyPass, Roboform и т.д.)

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

Не забывайте регулярно обновлять свои пароли.

3. Обновляйте версию WordPress.

WordPress заботится о своих пользователях, и поэтому в административной панели управления вы можете найти уведомления о выходе новой версии. Рекомендуем совершить обновление, как только вы увидите его, поскольку одной из самых распространенных брешей в защищенности вашего сайта является использование устаревшей версии платформы.

4. Скрывайте версию WordPress.

WordPress по умолчанию добавляет номер текущей версии в исходный код своих файлов и страниц. И поскольку довольно часто не всегда удается вовремя обновлять версию WordPress, это может стать слабым местом вашего веб-сайта. Зная, какая у вас версия WordPress, хакер может принести много вреда.

С помощью файла functions.php можно запретить вывод информации о версии вашей платформы. Для этого вам необходимо открыть файл functions.php , расположенный в корневой папке текущей темы вашего веб-сайта (wp-content/themes/текущая_тема_wordpress) , и добавить следующий код:
remove_action(‘wp_head’, ‘wp_generator’);

Или же можно добавить следующий код в файл functions.php :

/* Hide WP version strings from scripts and styles
* @return {string} $src
* @filter script_loader_src
* @filter style_loader_src
*/
function fjarrett_remove_wp_version_strings($src) {
global $wp_version;
parse_str(parse_url($src, PHP_URL_QUERY), $query);
if (!empty($query[‘ver’]) && $query[‘ver’] === $wp_version) {
$src = remove_query_arg(‘ver’, $src);
}
return $src;
}
add_filter(‘script_loader_src’, ‘fjarrett_remove_wp_version_strings’);
add_filter(‘style_loader_src’, ‘fjarrett_remove_wp_version_strings’);

/* Hide WP version strings from generator meta tag */
function wpmudev_remove_version() {
return »;
}
add_filter(‘the_generator’, ‘wpmudev_remove_version’);

Помимо вышесказанного, в папке любой темы WordPress, вы найдете header.php файл. В нём также указывается версия вашей установки, что для хакера является очень интересным, как упоминалось ранее. Удалив следующую строку из файла, вы избавитесь от этой лишней информации:

” />

5. Скачивайте темы и плагины с надежных ресурсов.

WordPress является настолько распространенным, что всё больше разработчиков создают для него готовые темы и плагины. В то время как большинство из них облегчат работу с вашим сайтом и расширят его функциональность, некоторые могут скрывать в себе весьма неприятные последствия в виде вирусов и открывать двери для хакеров. Используйте только проверенные ресурсы для скачивания тем и плагинов, например, wordpress.org , а также обращайте внимание на все появляющиеся предупреждения о вредоносности файлов. Как и в случае с самим WordPress, важно вовремя обновлять плагины до последних версий.

6. Не храните ненужные файлы.

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

7. Регулярно проверяйте свой локальный компьютер на наличие вирусов.

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

8. Делайте резервные копии сайта.

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

Установив плагин WordPress Database Backup, вы дополнительно сможете обезопасить базу данных вашего сайта. Настройки плагина позволяют установить опцию ежедневной отправки резервной копии базы данных на ваш контактный почтовый ящик.

9. Используйте защищенное соединение.

Если вы предпочитаете загружать ваши файлы с помощью FTP-клиента, используйте защищенный протокол соединения к серверу SFTP.

10. Создайте.htaccess файл.

Код, защищающий от хотлинкинга:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?yourdomain\.com/
RewriteCond %{HTTP_REFERER} !^$
RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpg [L]

Хотлинкинг – это вставка изображения с вашего сервера на чужой сайт\блог. Трафик же при этом идет непосредственно на ваш сервер.

При помощи кода, указанного выше, вы можете заставить сервер проверить, откуда именно пришел запрос: если со страниц вашего веб-сайта, то сервер отдает изображение пользователю без проблем; если же с чужого веб-сайта – то показывает изображение с ошибкой.

11. Измените префикс таблиц базы данных.

Защита WordPress от хакеров также усилится, если убрать первоначальный префикс wp_ — это усложнит поиск для злоумышленников. Рассмотрим несколько способов:

Способ 1 – Подходит для новых установок через Softaculous
Если ваш хостинг-провайдер предоставляет вам возможность использования скрипта Softaculous для установки WordPress, то изменить префикс вы можете во время первоначальной установки: в секции Advanced Options вам необходимо будет внести требуемые изменения.

Способ 2 – Для уже работающих сайтов и свежих установок WordPress
Если ваш WordPress давно установлен и сайт работает, то вы можете поменять префикс с помощью программы phpMyAdmin.

Выберите необходимую базу данных из списка и сделайте следующий запрос к базе данных:

RENAME table `wp_commentmeta` TO `newprefix_commentmeta`;
RENAME table `wp_comments` TO `newprefix_comments`;
RENAME table `wp_links` TO `newprefix_links`;
RENAME table `wp_options` TO `newprefix_options`;
RENAME table `wp_postmeta` TO `newprefix_postmeta`;
RENAME table `wp_posts` TO `newprefix_posts`;
RENAME table `wp_terms` TO `newprefix_terms`;
RENAME table `wp_term_relationships` TO `newprefix_term_relationships`;
RENAME table `wp_term_taxonomy` TO `newprefix_term_taxonomy`;
RENAME table `wp_usermeta` TO `newprefix_usermeta`;
RENAME table `wp_users` TO `newprefix_users`;

где «newprefix_» необходимо заменить на новый префикс, который вы хотите использовать вместо префикса «wp_» .

После этого вы увидите новый префикс в таблицах базы данных:

Чтобы убедиться, что все изменения прошли успешно и префикс wp_ больше не используется в таблице _options и _usermeta , вам необходимо будет сделать еще один запрос к базе данных:

SELECT * FROM `newprefix_options` WHERE `option_name` LIKE ‘%wp_%’

SELECT * FROM `newprefix_usermeta` WHERE `meta_key` LIKE ‘%wp_%’

В результате вы можете найти ряд префиксов, которые вам необходимо будет переименовать вручную с помощью кнопки Изменить :

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

После этого не забудьте также внести изменения префикса в wp-config.php файле:

Вы также можете использовать специальные плагины для изменения префикса базы данных: Change DB prefix или Change table prefix.

12. Ограничивайте количество попыток доступа.

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

Для этого вы можете использовать дополнительные плагины, например, Login LockDown или Limit Login Attempts. В настройках этих плагинов, вы можете самостоятельно установить количество попыток входа и время блокировки.

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

Чтобы убрать вывод этого сообщения, необходимо открыть файл functions.php , расположенный в папке текущей темы вашего веб-сайта (wp-content/themes/текущая_тема_WordPress) и добавить такой код:
add_filter(‘login_errors’,create_function(‘$a’, «return null;»));

13. Удалите readme.html и license.txt.

Файлы readme.html и license.txt присутствуют в корневой папке любой установки WordPress. Вам эти файлы ни к чему, а хакерам они могут облечить их злодеяния. Например, чтобы выяснить текущую версию вашего WordPress и много чего другого полезного для взлома веб-сайта. Рекомендуем удалить их сразу же после установки WordPress.

14. Используйте SSL-сертификат.

Для передачи защищенной информации и конфиденциальности обмена данными, рекомендуем использовать SSL-протокол. Особенно это актуально для интернет-магазинов, если вы не хотите, чтобы личные данные о ваших клиентах передавалась незащищенным путем.

Прежде всего вам необходимо будет и установить его для вашего доменного имени.

После этого вы сможете установить обязательное использование SSL-протокола при входе в панель управления вашим сайтом. Для этого откройте wp-config.php файл, расположенный в корневой папке вашего веб-сайта, и добавьте следующую строку:
define(‘FORCE_SSL_ADMIN’, true);

15. Измените файл wp-config.php.

Добавив такой код в wp-config.php файл, вы так же сможете укрепить защиту вашего веб-сайта:

Ограничение на изменения темы и плагинов:
define(‘DISALLOW_FILE_EDIT’, true);

Отключение возможности установки и удаления плагинов:
define(‘DISALLOW_FILE_MODS’, true);

Добавление salt-ключей или так называемых ключей безопасности: сначала необходимо будет найти такие строки в wp-config.php файле:

Вы увидите, что ключи уже установлены и их можно поменять. Либо вы увидите строки такого типа: ‘put your unique phrase here’, что говорит о том, что ключи пока не установлены:
/**#@+
* Authentication Unique Keys and Salts.
*
* Change these to different unique phrases!
* You can generate these using the {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service}
* You can change these at any point in time to invalidate all existing cookies. This will force all users to have to log in again.
*
* @since 2.6.0
*/
define(‘AUTH_KEY’, ‘put your unique phrase here’);
define(‘SECURE_AUTH_KEY’, ‘put your unique phrase here’);
define(‘LOGGED_IN_KEY’, ‘put your unique phrase here’);
define(‘NONCE_KEY’, ‘put your unique phrase here’);
define(‘AUTH_SALT’, ‘put your unique phrase here’);
define(‘SECURE_AUTH_SALT’, ‘put your unique phrase here’);
define(‘LOGGED_IN_SALT’, ‘put your unique phrase here’);
define(‘NONCE_SALT’, ‘put your unique phrase here’);

О некоторых плагинах хочется упомянуть отдельно:

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

Этот плагин проверяет ваш веб-сайт на различные уязвимости в безопасности и предлагает ряд методов по их устранению. Например, пароли, разные права доступа к файлам, защита баз данных, защита информации о версии WordPress, защита администратора и прочее.

Этот плагин позволяет обезопасить пользовательские аккаунты и логины, базы данных и файловую систему, предотвратить брутфорс атаки (атаки, связанные с подбором пароля), сканировать сайт и прочее.

Как бы грустно это ни звучало, но защита WordPress — вещь сложная, и описанные в этой статье способы не гарантируют на 100%, что ваш сайт будет полностью защищен от каких-либо действий мошенников. Однако, пренебрегать ими не стоит, так как они значительно уменьшат возможность взлома сайта злоумышленниками.

Меня взломали. Знаете как страницу во ВКонтакте. Но они не клянчили денег, а насоздавали множество “левых” страниц с ссылками на разные сайты. Тогда я задумался над защитой своего блога. И я нашел идеальное решение.

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

Потом я установил множество плагинов для защиты ВордПресса от взлома. Но блог стал жутко тормозить. Страницы грузились по пять десять секунд. Это очень долго.

Я начал искать плагины которые не так сильно нагружают систему. Читал отзывы по этим плагинами и все чаще стал натыкаться на All In One WP Security. По описанию он мне очень понравился и я решил поставить его себе на блог. И он защищает меня до сих пор, так как ничего лучше я не встречал.

Что умеет All In One WP Security (защита wordpress всё в одном):

  • Делает резервные копии базы данных, файла конфигурации wp-config. и файла.htaccess
  • Смена адреса страницы авторизации
  • Скрывает информацию о версии WordPress
  • Защита админки – блокировка при неправильной авторизации
  • Защита от роботов
  • И ещё много чего полезного

Я смело могу сказать, что плагин безопасности All In One WP Security – это лучшая защита wordpress сайта.

Настройка All In One WP Security

Зайдя в отдел Настройки, первым делом нужно сделать резервные копии:

  • база данных;
  • файл wp-config;
  • файл htaccess

Делается это на первой странице настройки плагина All In One WP Security.

Сделайте бэкап (резервную копию) перед началом работы

Пройдусь только по самым важным пунктам.

пункты настройки плагина all in one wp security

Панель управления

Тут нас встречает счетчик “Измеритель безопасности”. Он показывает уровень защиты сайта. Ваш сайт должен быть как минимум в зеленой зоне. Не надо гнаться за максимальной планкой – лишние настройки могут нарушить функционал сайта. Добейтесь золотой середины.


Счетчик защиты сайта на wordpress

Когда вы будете изменять настройки защиты плагина, то увидете в каждом пункте зелёный щит с цифрами – это и есть те цифры которые прибавляются к общему счету безопасности.

цифра прибавляется к общему счету безопасности

Настройки

Вкладка WP Version Info

Чекаем галочку Удаление метаданных WP Generator.


Удаление метаданных WP Generator

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

Администраторы

Пользовательское имя WP

Если у вас логин для входа в админку admin, то обязательно меняем его. Admin это самый популярный логин. Многие ЦМСки предлагают его по умолчанию, а людям просто лень его менять.
Злоумышленники используют различные программы для взлома сайтов. Эти программы подбирают логины и пароли пока не найдут подходящую комбинацию.
Поэтому не используйте логин admin.

Отображаемое имя

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

Пароль

Если ввести тут свой пароль, то плагин покажет за какое время можно взломать ваш сайт.
Рекомендации по усилению надёжности пароля:

  • Пароль должен состоять из букв и цифр
  • Используйте строчные и прописанные буквы
  • Не используйте короткие пароли (минимум 6 символов)
  • Желательно наличие в пароле спецсимволов (% # _ * @ $ и подробных)
Сложность пароля

Авторизация

вкладка Блокировка авторизаций

Обязательно включаем. Если в течении 5 минут кто-то неправильно введёт пароль 3 раза, то IP заблокируется на 60 минут. Можно поставить и больше, но лучше этого не делать. Может случится так, что вы сами неправильно введёте пароль и будете потом ждать месяцы или даже годы:)
Отмечаем галочку “Сразу заблокировать неверные пользовательские имена”.
Допустим ваш логин hozyainsayta, и если кто-то введёт другой логин (например login), то его IP адрес автоматически заблокируется.


опции блокировки авторизации

Автоматическое разлогинивание пользователей

Ставим галочку. Если вы зайдёте в админку сайта с другого компьютера и забудете выйти из админки, то через указанный промежуток времени система сама вас разлогинит.
Я ставлю 1440 минут (это 24 часа).

Опции автоматического разлогинивания пользователей

Регистрация пользователей

Подтверждение вручную

Чекаем “Активировать ручное одобрение новых регистраций”


Ручное одобрение новых регистраций

CAPTCHA при регистрации

Тоже ставим галочку. Это отсекает попытки зарегистрироваться боту-роботу, так как роботы не справляются с капчей.

Registration Honeypot (бочка мёда)

Отмечаем. И не оставляем роботам не единого шанса. Эта настройка создает дополнительное невидимое поле (типа Введите сюда текст). Это поле видят только роботы. Так как они автоматически заполняют все поля, то и в это поле что-то напишут. Система автоматически блокирует те попытки регистрации у которых будет заполнено это поле.

Защита базы данных

Префикс таблиц БД

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

обязательно сделайте резервную копию БД

Если вы только что создали свой сайт, то можете смело менять префикс.

Префикс таблиц Базы данных

Резервное копирование базы данных

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


Настройки резервного копирования Базы данных

Защита файловой системы

Тут меняем права доступа к файлам, чтобы все было зелёным.

Редактирование файлов php

Ставим в том случае, если вы не редактируете файлы через админку. Вообще вносить какие либо изменения в файлы нужно через программы ftp-менеджеры (типо файлзилла). Так в случае какого либо “косяка” всегда можно отменить предыдущее действие.

Запрещаем доступ. Этим действием мы сможем скрыть важную для хакеров информацию.

Черный список

Если у вас уже есть IP адреса которым вы хотите запретить доступ к сайту, то включайте эту опцию.


Блокировка пользователей по IP

Файрволл

Базовые правила файрволла.

Файрволл и брандмауэр это программный комплекс представляющий собой фильтр несанкционированного трафика.

Эти правила вносятся в файл.htaccess, поэтому сначала делаем его резервную копию.

Теперь можно проставить нужные галочки:


Активировать основные функции брандмауэра
Защита от уязвимости XMLRPC и Pingback WordPress
Блокировать доступ к debug.log

Дополнительные правила файрволла

На этой вкладке отмечаем следующие галочки:

  • Отключить возможность просмотра директорий
  • Отключить HTTP-трассировку
  • Запретить комментарии через прокси
  • Запретить вредоносные строки в запросах (Может нарушить функциональность других плагинов)
  • Активировать дополнительную фильтрацию символов (Тоже действуем с осторожностью, надо смотреть как влияет на работоспособность сайта)
      У каждого пункта есть кнопка “+ Подробнее” там вы можете почитать подробно про каждую опцию.

6G Blacklist Firewall Rules

Отмечаем оба пункта. Это проверенный список правил который дает плагин для безопасности wordpress сайта.

Настройки файрволла (брандмауэра)

Интернет-боты

Могут появиться проблемы с индексацией сайта. Я данную опцию не включаю.

Предотвратить хотлинки

Ставим галочку. Что-бы изображения с вашего сайта не показывались на других сайтах по прямой ссылке. Эта функция снижает нагрузку с сервера.

Детектирование 404

Ошибка 404 (такой страницы нет) появляется при ошибочном вводе адреса страницы. Хакеры перебором пытаются найти страницы с уязвимостями и поэтому вводят много несуществующих урлов в короткий промежуток времени.
Такие попытки взлома будут заноситься в таблицу на этой странице и чекнув галочку – вы сможете блокировать их IP адреса на указанное время.


Настройки отслеживания ошибок 404

Защита от брутфорс-атак

По умолчанию у всех сайтов на Вордпрессе одинаковый адрес страницы авторизации. И поэтому злоумышленники точно знают где начать взламывать сайт.
Эта опция позволяет изменить адрес этой страницы. Это очень хорошая защита wordpress сайта. Обязательно меняем адрес. Я эту галочку не отметил, потому-что мой автоматически изменил мне эту страницу во время установки системы.

Защита от брутфорс-атак с помощью куки

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

CAPTCHA на логин

Если на вашем сайте много пользователей или у вас интернет-магазин, то можете включать Капчу при авторизации во всех пунктах.

Защита капчей при авторизации

Белый список для логина

Заходите в админку только с домашнего компа и вы единственный пользователь своего сайта? Тогда впишите свой АйПи адрес и всем остальным доступ к странице авторизации будет закрыт.

WordPress одна из самых популярных CMS в мире. Более 18.9% всех Интернет сайтов работает именно на ней, а количество установок превысило 76.5 миллионов. К сожалению, у такой популярности есть свои минусы. Согласно докладу Securi, компании которая специализируется на безопасности сайтов, WordPress самая взламываемая CMS в мире. Однако, если вы будете следовать передовой практике в этом вопросе и осуществите несколько приемов из нашего руководства, вы поймете, что защита WordPress может быть легко укреплена с помощью нескольких простых шагов.

Перед тем, как мы начнём это руководство, проверьте наличие следующего:

  • Доступ к панели управления WordPress
  • Доступ к вашей учетной записи на хостинге (необязательно)

Шаг 1 – Поддержание актуальной версии WordPress

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

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

В случае, если вы не знаете, как обновить WordPress, загляните сюда .

Шаг 2 – Использование нестандартных учетных данных для входа

Вы используете admin, как имя администратора в WordPress? Если ваш ответ да, то вы серьезно снижаете защиту WordPress и упрощаете процесс взлома хакерами вашей панели управления. Строго рекомендуется изменить имя пользователя администратора на что-нибудь другое (посмотрите это руководство , если вы не уверены, как это сделать) или создайте новую учетную запись администратора с другими данными. Следуйте этим шагам, если вы предпочитаете второй вариант:

Хороший пароль играет ключевую роль в безопасности WordPress. Гораздо сложнее взломать пароль состоящий из цифр, букв нижнего и верхнего регистра и специальных знаков. Такие инструменты, как LastPass и 1Password могут помочь в создании и управлении сложными паролями. Кроме того, если вам когда-либо понадобится войти в свою панель управления WordPress при подключении к незащищенной сети (например, в кофейнях, публичных библиотеках и т. д.), не забудьте использовать безопасный VPN , который защитит вашу регистрационную информацию.

Шаг 3 – Включение двухэтапной аутентификации

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

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

Шаг 4 – Отключение отправки отчетов об ошибках PHP

Отчеты об ошибках PHP могут быть довольно полезны, если вы занимаетесь разработкой сайта и хотите удостоверится, что все работает правильно. Однако показывать ошибки всем, это серьезное упущение в безопасности WordPress.

Вы должны исправить это, как можно быстрее. Не пугайтесь, вам не надо быть программистом, чтобы отключить отчеты об ошибках PHP на WordPress. Большинство провайдеров услуг хостинга предоставляют такую опцию в панели управления. Если нет, то просто добавьте следующие строчки в ваш файл wp-config.php . Вы можете использовать или для редактирования файла wp-config.php .

Error_reporting(0); @ini_set(‘display_errors’, 0);

Вот и все. Отчеты об ошибках отключены.

Шаг 5 – Не используйте nulled шаблоны для WordPress

Запомните “Бесплатный сыр бывает только в мышеловке”. Это же касается nulled шаблонов и плагинов.

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

Перестаньте использовать nulled плагины и шаблоны. Это не только не этично, но и наносит вред вашей безопасности WordPress. В конечном итоге, вы больше заплатите разработчику за очистку вашего сайта.

Шаг 6 – Сканирование WordPress на наличие вредоносных программ

Чтобы заразить WordPress, хакеры часто используют дыры в шаблонах или плагинах. Поэтому, важно почаще проводить проверку вашего блога. Существует множество хорошо написанных плагинов для этих целей. WordFence выделяется из этого множества. Он предлагает руководство по применению и возможность автоматической проверки, вместе с кучей других разных настроек. Вы даже можете восстановить модифицированные/зараженные файлы в пару кликов. Распространяется он на бесплатной основе. Этих фактов должно быть достаточно, чтобы вы установили его прямо сейчас.

Другие популярные плагины для усиления безопасности WordPress:

  • BulletProof Security – в отличии от WordFence, о котором мы говорили ранее, BulletProof не сканирует ваши файлы, но он предоставляет вам фаервол, защиту базы данных и т.д. Отличительной особенностью является возможность настройки и установки плагина в несколько кликов мыши.
  • Sucuri Security – этот плагин защитит вас от DDOS атак, содержит черный список, сканирует ваш сайт на наличие вредоносных программ и управляет вашим фаерволом. При обнаружении чего-либо. вы будете оповещены через электронную почту. Google, Norton, McAfee – в этот плагин включены все черные списки из этих программ. Вы можете найти полное руководство об установке плагинов для сайта WordPress .

Шаг 7 – Перенос сайта на более безопасный хостинг

Возможно, этот совет может показаться странным, но статистика показывает, что более 40% сайтов на WordPress были взломаны из-за дыр в безопасности хостинг аккаунта. Эта статистика должна подтолкнуть вас перенести WordPress на более безопасный хостинг. Немного ключевых фактов которые необходимо держать в уме при выборе нового хостинга:

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

Шаг 8 – Делайте резервное копирование данных настолько часто, насколько это возможно

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

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

Существует несколько путей для создания бэкапа. К примеру, вы можете вручную скачать файлы сайта и экспортировать базу данных, или воспользоваться инструментами, предлагаемыми вашей хостинговой компанией. Еще один путь, использовать WordPress плагины. Самые популярные из них:

Вы даже можете автоматизировать процесс создания и хранения бэкапов WordPress бэкапы в Dropbox .

Шаг 9 – Выключение редактирования файлов

Как вы наверно знаете, WordPress имеет встроенный редактор, который позволяет редактировать PHP файлы. Эта функция настолько же полезна, насколько она может нанести вред. Если хакеры получат доступ к вашей панели управления, первая вещь, на которую они обратят внимание, это Редактор Файлов . Некоторые пользователи WordPress предпочитают полностью выключить эту функцию. Она может быть выключена редактированием файла wp-config.php , путем добавления туда следующего кода:

Define("DISALLOW_FILE_EDIT", true);

Это все, что вам нужно для отключения этой функции в WordPress.

ВАЖНО! В случае, если вы хотите повторно включить эту функцию, используйте FTP клиент или Файловый менеджер вашего хостинга и удалите этот код из файла wp-config.php .

Шаг 10 – Удаление неиспользуемых шаблонов и плагинов

Сделайте уборку вашего сайта на WordPress и удалите все неиспользуемые шаблоны и плагины. Хакеры часто используют отключенные и устаревшие шаблоны и плагины (даже официальные плагины WordPress) для получения доступа к вашей панели управления, или загрузки вредоносного содержимого на ваш сервер. Удаляя плагины и шаблоны, которые вы перестали использовать (и возможно забыли обновить) давным давно, вы снижаете риски и делаете ваш сайт на WordPress более безопасным.

Шаг 11 – Использование.htaccess для улучшения защиты WordPress

Htaccess это файл необходимый для корректной работы ссылок WordPress. Без правильных записей в файле.htaccess, вы будете получать много ошибок 404.

Не так много пользователей знают, что.htaccess может быть использован для улучшения защиты WordPress. К примеру, вы можете блокировать доступ или отключать выполнение PHP в определенных папках. Внизу приведены примеры того, как вы можете использовать.htaccess для улучшения безопасности сайта на WordPress.

ВАЖНО! Перед тем, как вы произведете изменения в файле, сделайте резервное копирование старого файла.htaccess. Для этого вы можете использовать или .

Запрет доступа к административной части WordPress

Код ниже позволит вам получать доступ к административной части WordPress только с определенных IP.

AuthUserFile /dev/null AuthGroupFile /dev/null AuthName "WordPress Admin Access Control" AuthType Basic order deny,allow deny from all allow from xx.xx.xx.xxx allow from xx.xx.xx.xxx

Заметьте, что вам нужно изменить XX.XX.XX.XXX на ваш IP адрес. Вы можете использовать этот сайт для проверки вашего нынешнего IP. Если вы используете больше чем одно подключение для управления сайтом на WordPress, то удостоверьтесь, что написали другие IP адреса (добавляйте столько адресов, сколько вам понадобится). Не рекомендуется использовать этот код, если у вас динамический IP адрес.

Отключение выполнения PHP в определенных папках

Хакеры любят загружать бэкдор скрипты в папку загрузок WordPress. По умолчанию эта папка используется только для хранения медиафайлов. Следовательно, не должна содержать каких-либо PHP файлов. Вы можете легко отключить выполнение PHP, создав новый файл.htaccess в /wp-content/uploads/ с такими правилами:

deny from all

Защита файла wp-config.php

Файл wp-config.php содержит ядро настроек WordPress и детали базы данных MySQL. Следовательно, это самый важный файл в WordPress. Поэтому он чаще всего становится главной целью WordPress хакеров. Однако вы можете легко обезопасить его используя следующие правила в.htaccess:

order allow,deny deny from all

Шаг 12 – Изменение стандартных префиксов базы данных WordPress для предотвращения внедрения SQL-кода

База данных WordPress содержит и хранит в себе всю ключевую информацию необходимую для работы вашего сайта. В результате, она становится еще одной целью хакеров и спамеров, которые выполняют автоматизированный код для проведения внедрения SQL-кода. Во время установки WordPress, многие люди не утруждают себя изменением стандартного префикса базы данных wp_. Согласно данным WordFence , 1 из 5 взломов WordPress связан с внедрением SQL-кода. Так как wp_ это одно из стандартных значений, сперва хакеры начинают именно с него. На данном этапе мы кратко рассмотрим, как защитить сайт на WordPress от подобного рода атак.

Изменение таблицы префиксов для существующего сайта на WordPress

Часть первая – Изменение префикса в wp-config.php

Найдите ваш файл wp-config.php используя или найдите строку со значением $table_prefix.

Можете добавить дополнительные цифры, буквы или нижние подчеркивания. После этого, сохраните изменения и перейдите к следующему этапу, В этом руководстве мы используем wp_1secure1_, как новый префикс таблицы.

Пока вы находитесь в вашем файле wp-config.php , также найдите имя вашей базы данных, чтобы знать какую именно изменить. Поищите в секции define(‘DB_NAME’.

Часть вторая – Обновление всех таблиц базы данных

Сейчас вам нужно обновить все записи в вашей базе данных. Это может быть сделано используя phpMyAdmin.

Найдите базу данных определенную в первой части и войдите в нее.

По умолчанию, установка WordPress имеет 12 таблиц и каждая должна быть обновлена. Однако это можно сделать быстрее, используя раздел SQL в phpMyAdmin.

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

RENAME table `wp_commentmeta` TO `wp_1secure1_commentmeta`; RENAME table `wp_comments` TO `wp_1secure1_comments`; RENAME table `wp_links` TO `wp_1secure1_links`; RENAME table `wp_options` TO `wp_1secure1_options`; RENAME table `wp_postmeta` TO `wp_1secure1_postmeta`; RENAME table `wp_posts` TO `wp_1secure1_posts`; RENAME table `wp_terms` TO `wp_1secure1_terms`; RENAME table `wp_termmeta` TO `wp_1secure1_termmeta`; RENAME table `wp_term_relationships` TO `wp_1secure1_term_relationships`; RENAME table `wp_term_taxonomy` TO `wp_1secure1_term_taxonomy`; RENAME table `wp_usermeta` TO `wp_1secure1_usermeta`; RENAME table `wp_users` TO `wp_1secure1_users`;

Некоторые шаблоны WordPress или плагины могут добавлять дополнительные таблицы в базу данных. В случае если у вас больше 12 таблиц в базе данных MySQL, добавьте оставшиеся из них вручную в запрос SQL и выполните его.

Часть третья – Проверка опций и пользовательских таблиц метаданных

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

Для таблицы опций, вы должны использовать:

SELECT * FROM `wp_1secure1_options` WHERE `option_name` LIKE `%wp_%`

Для таблицы метаданных , вы должны использовать:

SELECT * FROM `wp_1secure1_usermeta` WHERE `meta_key` LIKE `%wp_%`

Когда вы получите результаты запроса, просто обновите все значения с wp_ на ваш новый настроенный префикс. В таблице метаданных пользователя вам нужно отредактировать поле meta_key , тогда как для опций , необходимо изменить значение option_name .

Обеспечение безопасности новых установок WordPress

Если вы планируете устанавливать новые сайты WordPress, вам нет необходимости вновь выполнять данный процесс. Вы легко сможете поменять префиксы таблиц WordPress в процессе установки:

Поздравляем! Вы успешно улучшили безопасность вашей базы данных от внедрения SQL-кода.

Заключение

Несмотря на то, что WordPress самая взламываемая CMS в мире, улучшить ее защиту не так тяжело. В этом руководстве мы рассказали вам о 12 советах, которых вам следует придерживаться, чтобы защита WordPress оставалась на должном уровне.

Автор

Елена имеет профессиональное техническое образование в области информационных технологий и опыт программирования на разных языках под разные платформы и системы. Более 10 лет посвятила сфере веб, работая с разными CMS, такими как: Drupal, Joomla, Magento и конечно же наиболее популярной в наши дни системой управления контентом – WordPress. Её статьи всегда технически выверены и точны, будь то обзор для WordPress или инструкции по настройке вашего VPS сервера.

Время на чтение: 4 мин

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

Сегодня я расскажу как справился с проблемой, что советую и вам сделать на всякий случай у себя.

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

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

Как сменить адрес админки WordPress

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

Не забываем делать резервные копии файлов, с которыми работаем.

  • Для начала скопируем файл wp-login.php из корня сайта (там где лежит wp-config.php) на ftp к себе на компьютер.
  • Переименовываем его как душе угодно. Например vhod.php
  • Открываем этот файл бесплатной программой Notepad++ (или чем вам удобнее редактировать) и подменяем все вхождения фразы wp-login.php на vhod.php .

Сделать это быстро можно нажатием сочетания клавиш CTRL+F в Notepad++. Ну а в появившемся окне вводим:

Вот так за секунду я заменил во всем файле нужное мне вхождение фразы. Попадалось оно 12 раз.

Новый файл закидываем на ftp.

Аналогичную штуку нужно будет провернуть в файле general-template.php , который найдете в папке wp-includes тут же на ftp. Т.е. меняете вхождение фразы wp-login.php на vhod.php , а само название файла не меняете!

Теперь там же в корне сайта у вас есть файл .htaccess . Тоже копируем его к себе на компьютер и открываем на редактирование (можно обычным блокнотом Windows Notepad). Вставляем такой кусок кода, который блокирует доступ всем к файлу wp-login.php

Order Deny,Allow Deny from all

< Files wp - login . php >

Order Deny , Allow

Deny from all

< / Files >

Именно данный шаг снял нагрузку, а так же спрятал форму авторизации. Нагрузка была снята за счет вставки представленного кода в.htaccess: если шло обращение к http://site.ru/wp-login.php, то отдавало 403 ошибку, а не 404.

Повторим кратко алгоритм работы:

  • Переименовываем файл wp-login.php на произвольное имя и подменяем в нем вхождения названия на новое.
  • Аналогично подменяем в файле general-template.php старое название wp-login.php на новое.
  • Прописываем в файле.htaccess запрет к доступу wp-login.php для всех

После обновления WordPress останется поправить только файл general-template.php. Но т.к. обновляется движок не так уж часто - это мелочь по сравнению с эффектом.

Ставим ограничение на вход по IP через.htaccess

В качестве дополнительных мер по защите сайта мною было принято ограничение на вход в админку по IP. Проблема решалась очень просто: создаем пустой файл.htaccess и добавляем в него такой код

order deny,allow allow from 192.168.0.1 deny from all

order deny , allow

allow from 192.168.0.1

deny from all

Файл сохраняем и закидываем в папку wp-admin там же в корне сайта.

Вместо моего IP из примера поставьте свой настоящий. Притом можно добавить несколько IP с новой строки каждый:

order deny,allow allow from 126.142.40.16 allow from 195.234.69.6 deny from all

order deny , allow

allow from 126.142.40.16

allow from 195.234.69.6

deny from all

Если IP динамический, то можете поставить цифры только до первой-второй-третьей точки: