Защита сайтов на wordpress

В основном взломы происходят по следующем причинам :

1. Админы сайта не обновляют плагины и сам движок.

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

Давайте выполним простые действия, чтобы защитить wordpress сайт :

1. Самый простой способ защиты любого сайта является ограничение доступа в админ панель сайта по ip.

Создаём файл .htaccess следущего содержания и добавляем его в папку wp-admin

# BEGIN WordPress
 
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
 
order deny,allow
allow from 81.09.24.2
deny from all

Вместо 81.09.24.2 вписываем свой ip адрес, который можно узнать с помощью сервиса 2ip.ru. Но данный способ эффективен только в том случае, если ваш ip постоянный. За это удовольствие нужно платить, примерно, 100 рублей своему интернет-провайдеру в месяц. Меня это не устраивает, поэтому идём дальше.

В большинстве случаях, когда мы видим форму входа, то нам остаётся лишь узнать имя админа или редактора, и затем подобрать пароль. В wordpress, чтобы узнать логин админа, нужно нажать на имя автора записи. На моём сайте нажмите над записью на имя Дмитрий и перед вами откроется новая страница https://chempalov.ru/author/dmitry , где dmitry – это логин. И неважно логин это админа или редактора, в любом случае мы сможем нанести вред , если подберём пароль. По этой причине некоторые удаляют в файле шаблона строчку с автором. Но мы этого делать не будем, а установим лимиты на неправильную авторизацию.

2. Установка лимитов на неправильный ввод логина, пароля, ошибок 404. Данную функцию мы реализуем с помощью плагинов Limit Login Attempts, Better WP Security, Login Security Solution, и тд. Вам нужно установить только один из перечисленных.

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

Пару слов о Limit Login Attemptsочень понятный и простой плагин, отлично выполняет свою работу по защите от брута.

 Limit-login

Плагин wordfence http://wordpress.org/plugins/wordfence

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

Плагин Better WP Security
Данный плагин нужно установить сразу после установки wordpress. Имеет большое кол-во плюсов: позволяет убрать возможность редактирования сайта из панели администрирования, изменяет некоторые файлы, тем самым усложняет жизнь хакеру. У плагина есть существенные недостатки: несовместим с некоторыми плагинами и темами, а так же не работает функция скрытия входа в админку. Более подробно о настройках можно почитать в этой статье.

3.  Настроим безопасность на хостинге сайта

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

# BEGIN WordPress

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress
<files wp-config.php>
order allow,deny
deny from all
</files>

<Files ~ "^.*\.([Hh][Tt][Aa])">
order allow,deny
deny from all
satisfy all
</Files>

Самое верхнее значение, начинающая с # BEGIN WordPress должно уже прописано, если в директории сайта создан файл .htaccess. Далее следует строчка, защищающая файл .htaccess от роботов. Последняя строка закрывает доступ файл wp-config.php от посторонних.

Если по каким то причинам файла .htaccess нет, то создайте. Можно создать текстовый документ на рабочем столе и переименовать на .htaccess и далее по ftp доступу скинуть в директорию вашего сайта.

Теперь обязательно создадим файл .htaccess в папках wp-content, wp-includes, uploads и впишем туда следующий код,  который запрещает выполнение php:

<Files .php>
deny from all
</Files>

Всё было бы хорошо и на этом защиту можно было оставить, но, основной принцип работы плагинов – это блокировка ip, который превысит лимит на ввод пароля или логина. А , если менять ip каждые 20-40 секунд и дальше вводить неправильно пароль, что технически осуществимо, тогда данный способ защиты нам не поможет и мы переходим к следующему шагу – Установка капчи.

4.  Установка плагинов капчи captcha или SI CAPTCHA Anti-Spam и тд.  Капча защитит сайт от спам роботов и брута.

5.  После установки и обновления сайта на wordpress, нужно открыть файл wp-config.php и прописать ключи и соли для аутентификации. Для этого нужно перейти на по ссылки сайта, указанного в файле wp-config.php, примерно, на 40 строке https://api.wordpress.org/secret-key/1.1/salt/ и скопировать данную запись, вставив в 45-52 строку вместо пустых полей.

7898

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

7. Очень длинные пароли админа, к базе данных и тд, например, пароли из 20 символов. По статистики пароль из 15 символов подбирается за 3 месяца.

Поведём итоги: чтобы защитить сайт на wordpress нужно обязательно установить сложный пароль, капчу, лимиты на неправильный ввод паролей, постоянно обновлять плагины и сам движок.