Я так долго не писал в свой блог, потому что последние 2 недели занимался чисткой всех своих WordPress-блогов (у меня их много!) от вирусов. Сначала не хотел делать сам, пытался найти фрилансера для этой задачи, но только обматерился весь и потерял неделю времени. Как всегда, пришел к выводу, что разовые задачи лучше выполнять самому.
Когда ваш блог набирает популярность, то взламывать его будут все чаще и чаще. Мой блог взломали уже второй раз за последние 2 года. Обычно хакеры не интересуются отдельными блогами, а взламывают все сайты подряд – пачками. И им не важно, что у вас за блог и какая у вас посещаемость. Потом они используют сразу много сайтов для своих целей (рассылки спама, рекламы, редиректов, размещения ссылок и т.д.). Правда, когда на моем блоге было мало посетителей, то его ни разу не взломали). Странно, но это так).
Ниже я напишу краткую памятку о том, что нужно сделать самостоятельно, прежде чем обращаться к специалисту. Перечисленные ниже шаги позволят вам с вероятностью 99% избавиться от вредоносного кода и защититься от будущих атак. Если они не помогут вам, то есть смысл обратиться к профи.
Хочу обратить внимание, что когда я пишу “обращаться к специалисту”, я не имею в виду фрилансера, который за 500-1000 рублей пообещает вам решить проблему. Из моего огромного опыта могу сказать, что около 90% людей на фрилансе не очень разбираются в том, что делают. За эти деньги люди просто ищут халяву, простых и быстрых заработков и сделают минимум из того, что написано ниже. И если что-то пойдет не так, то они просто отказываются, ибо не хватает знаний, чтобы быстро решить проблему. Я сам пытался нанимать таких, но честно сказать, больше времени потратил на общение с ними и переделку того, что они сделали. Как всегда, в таких случаях – плюнул и все сделал сам. Тем более, что это разовая задача, а по многим пунктам просто невозможно проверить их работу… Тут очень важно доверие, а на фрилансе вы нанимаете неизвестно кого.
Все, что описано ниже, вы и сами сделаете за 1-3 дня и будете уверены, что все у вас в порядке, или обращайтесь ко мне, если не хотите возиться с этим сами.
Если вам лень, то я готов проделать все, что нужно с вашим сайтом, за 15 000 рублей.
Эта инструкция не для новичков, поэтому я здесь не буду разжевывать все подробно.
Извините, но писал я ее больше как шпаргалку для самого себя на будущее. Однако моя инструкция очень хорошо подойдет для тех, кто уже имеет опыт в администрировании WordPress и очень любит вскрывать черепную коробку своего блога и со скальпелем в руках ковыряться у него в мозгах, удаляя всякую заразу. Я прямо кайф получаю от этого процесса)!
Реализовав все, что здесь написано, вы вылечите свой сайт и надежно защитите его от хакеров.
Что делать, если взломали WordPress
Предполагается, что у вас сохранился доступ в админку. Если доступа нет, то сначала надо его восстановить.
Далее делаем вот что:
- Обновление. Обновляем все темы и плагины, а также сам WordPress через админку.
- Удаление пользователей. Проверьте, нет ли пользователей с правами администратора (кроме вас) и удалите их, если есть. Удалите всех ненужных пользователей.
- Смена паролей. Обязательно меняем все пароли:
- доступы к хостингу,
- админка WordPress,
- все FTP, SFTP-пароли,
- пароли доступа к БД MySQL (в файле wp-config.php в корне сайта).
- Удалите ненужные файлы. Я делаю это при помощи плагина WordFence. После запуска сканирования сайта он находит все подозрительные файлы и сообщает об этом. Вы должны рассмотреть каждый файл и удалить ненужные.
- Переустановите ядро WordPress. Для этого скачайте последнюю версию Вордпресс на wordpress.org и загрузите на хостинг все, кроме папки /wp-content/. Это надо сделать обязательно через SFTP или прямо на хостинге.
- Переустановите все плагины и темы. Надо полностью удалить все плагины и темы (не через админку, а прямо на хостинге!) и установить заново. Важный момент: удалите также неиспользуемые плагины и темы! Так как тем обычно немного, то быстрее всего переустановить их вручную. А плагинов обычно много, поэтому вручную делать это очень долго, и лучший способ сделать это – использовать wp-cli (WordPress консоль). Просто введите команду:
wp plugin install $(wp plugin list ——field=name) ——force
. Есть еще вариант – использовать плагин WPCore Plugin Manager, но метод wp-cli проще, быстрее и надежнее. - Двухфакторная авторизация. Подключите двухфакторную авторизацию. При помощи плагина WordFence и приложения Authy.com. Это приложение лучше, чем Google Authenticator, т.к. вы можете подключить к нему несколько устройств, и поэтому если вы потеряете телефон, то ваши доступы сохраняются.
- Включите Google Recaptcha. В WordFence также имеет смысл включить Google Recaptcha, чтобы защититься от ботов на странице входа в админку. В Гугл рекапчу можно создать здесь.
- Установите SSL. Если у вас до сих пор этого нет, то установите обязательно SSL-сертификат на свой сайт. Я писал об этом в статье “Как установить SSL”.
- Заблокируйте доступ к wp-config.php. Файл wp-config.php содержит доступы к вашей БД. Поэтому важно заблокировать доступ к нему извне. Просто добавьте этот код в файл .htaccess:
<files wp-config.php>
order allow,deny
deny from all
</files>
- Пересоздайте карту сайта. Если поисковые системы исключили ваш сайт из индекса и прислали вам предупреждение, то вам надо заново создать карту сайта, чтобы в ней не было ссылок на зараженные файлы, и отправить ее на индексацию в поисковики. Если у вас установлен плагин Yoast SEO, и вы сгенерировали с его помощью карту сайта, то вас следует отключить опцию “XML-карта сайта”, очистить кэш сайта и снова включить ее. Затем удалить карту сайта из Яндекса и Гугла и снова загрузить ее.
- Отключите редактирование файлов через админку. Вордпресс имеет встроенный редактор кода, который позволяет редактировать файлы ядра прямо из админки сайта. Это огромная возможность для хакеров. Надо отключить ее обязательно! Для этого надо добавить в файл wp-config.php следующую строчку кода:
define( 'DISALLOW_FILE_EDIT', true );
- Заблокируйте PHP для папок /wp-content/uploads/ и /wp-includes/. Для этого создайте файл .htaccess. Добавьте в него код:
<Files *.php> deny from all </Files>
. И положите этот файл в папки /wp-content/uploads/ и /wp-includes/. - Проверьте .htaccess файл. Проверьте .htaccess файл в корневой папке блога на наличие вредоносного кода (иногда туда добавляют редиректы). Если вы в этом не разбираетесь, то просто удалите этот файл, и он сам создастся вновь.
- Проверьте wp-config.php. Сравните содержимое этого файла с wp-config-sample.php. Там не должно быть ничего лишнего, если вы, конечно, сами туда это не добавляли.
Как защитить свой Вордпресс-сайт от взлома?
Чтобы защититься от взлома, надо сделать то, что я написал выше, а также купить один из плагинов, перечисленных ниже, чтобы они постоянно проверяли ваш сайт на наличие вредоносного ПО. Или как минимум используйте хотя бы бесплатную версию одного из этих плагинов.
Плагины, обеспечивающие безопасность WordPress
Я нашел все существующие плагины на сегодняшний день и протестировал их.
Самый выгодный это – Wpscan, но он не вызвал у меня никакого доверия. Также мне не понравился плагин All In One WP Security & Firewall, про который все пишут, что он бесплатный (у него просто есть сильно ограниченная бесплатная версия) – какой-то он недоделанный, что ли – нет у меня доверия к нему.
Я сам для себя выбрал WordFence и использую его платную версию. Тут, наверное, самый классный набор бесплатных функций.
Про многие плагины пишут, что они бесплатные, но на самом деле это не так(. Они все платные, просто у некоторых есть сильно ограниченная бесплатная версия. Так что не покупайтесь на бесплатность.
Кроме того, сами подумайте, бесплатный плагин – это ненадежно, ибо какой интерес разработчикам его постоянно обновлять, чтобы защитить вас от новых угроз?
Условно-бесплатные плагины (имеется ограниченная бесплатная версия)
- BulletProof Security;
- WPScan – WordPress Security Scanner;
- Wordfence;
- WP Cerber Security;
- All In One WP Security & Firewall (все пишут, что это бесплатный плагин, но это не так!).
Недорогие плагины
- BulletProof Security – $69,95 за один сайт пожизненно.
- wpsecurityninja.com – $4 в месяц (или $119 за один сайт пожизненно).
- WPScan – WordPress Security Scanner – $5 (цена зависит от кол-ва плагинов, до 22 плагинов – бесплатно).
Дорогие плагины
- ithemes.com/security/ – $6,7 в месяц.
- MalCare – $8 в месяц.
- Wordfence – $8 в месяц.
- WP Cerber Security – $10 в месяц.
- All In One WP Security & Firewall – $10 в месяц.
- jetpack.com – $12 в месяц (тариф Security Daily, включает ежедневный бэкап).
- Sucury.com – $16 в месяц.
Как я уже писал выше, сам я использую плагин WordFence (платную версию).
Вот еще статья по этой теме на английском языке на сайте wordpress.org: