Как обезопасить от взлома свой блог на вордпресс

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

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

  • Не нужно в качестве логина указывать admin. Иначе есть риск подбора пароля брутфорсом
  • Генерируйте пароль длинной от восьми символов и используйте латинские символы разного регистра, цифры, спецсимволы
  • Если не используете встроенный крон wordpress, переименуйте файл wp-cron.php, находящийся в корне сайта

Бот все равно будет стучаться к вам на страницу /wp-login.php, поэтому чтобы сервер не нагружался каждый раз обрабатывая запрос бота и проверяя на корректность пару логин/пароль, один из вариантов решения — перенести страницу входа в админку wp-login.php.

Для этого переименуем файл wp-login.php, например в wp-auth.php. Откроем файл на редактирование и заменим все строки wp-login.php на wp-auth.php. То же самое проделываем в файлах:

  • /wp-signup.php
  • /wp-activate.php
  • /wp-includes/admin-bar.php
  • /wp-includes/canonical.php
  • /wp-includes/general-template.php
  • /wp-includes/post-template.php

Если сайт все-таки взломали, или просто для проверки на предмет вредоносного кода, можно воспользоваться ssh протоколом для выявления зараженных файлов. Для этого в домашней директории выполним несколько команд, которые ищут определенные строки в файлах:

find . -type f -name '*.php' | xargs grep -l "base64_decode *(" --color

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

  • /wp-includes/class-feed.php
  • /wp-includes/SimplePie/Sanitize.php
  • /wp-includes/class-IXR.php

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

Вторая аналогичная команда, которая ищет в файлах eval, который также часто присутствует в вирусах:

find . -type f -name '*.php' | xargs grep -l "eval" --color

С этой строкой та же ситуация, в wp есть системные файлы, содержащие эту функцию, например:

  • /wp-admin/press-this.php
  • /wp-admin/includes/ajax-actions.php
  • /wp-admin/includes/class-pclzip.php

Также можно определить вредоносный файл посмотрев куда идут POST запросы в логах сервера. Это делается опять-таки через ssh командой

zgrep POST /var/www/sitename/data/logs/sitename.ru.access.log*

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

tail -fn0 /var/www/sitename/data/logs/sitename.ruaccess.log

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

find . -type f -iname "*.php" -mtime -3

для просмотра всех фалов, которые были изменены за последние три дня. Меняя в команде цифру 3, меняем количество дней.

Статья оказалась полезной? Вырази благодарность - поделись в соцсетях

Отзывы : 3 комментария

  1. Чую, что информация полезная. Но не понимаю 🙁 Как и где писать эти команды для проверки?

Комментирование отключено