Help Blog of RoR, Ruby, Linux

Меню

Перейти к содержимому
  • Главная

wp login hide

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

  • Не нужно в качестве логина указывать 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, меняем количество дней.

Запись опубликована 25.01.2015 автором shilovk в рубрике login, wordpress.

Навигация по записям

← block ip mongo set value →

Рубрики

  • all (6)
  • api (1)
    • maps (1)
  • atom (1)
    • snippet (1)
  • bd (43)
    • mongodb (13)
    • mysql (27)
    • postgesql (3)
    • redis (2)
  • css (1)
    • img (1)
  • hosting (1)
  • html (2)
    • mp3 (1)
  • jquery (1)
  • js (1)
  • lan (1)
  • linux (99)
    • apache (2)
    • arh (3)
    • autorun (2)
    • background (1)
    • bash (2)
    • chkconfig (2)
    • clock (1)
    • commands (2)
    • cron (1)
    • curl and wget (1)
    • date (2)
    • drive (2)
    • du (1)
    • find (3)
    • ftp (2)
    • git (10)
    • grep (1)
    • history (1)
    • htop (1)
    • imagemagick (1)
    • iptables (8)
    • kill (2)
    • ln (1)
    • log (1)
    • mail (2)
    • main (1)
    • mogrify (1)
    • mount (2)
    • nginx (9)
    • php (7)
    • port (1)
    • ram (1)
    • repo (1)
    • rsync (1)
    • run (1)
    • scp (2)
    • sendmail (1)
    • ssh (6)
    • start (2)
    • swap (3)
    • system (2)
    • tail (1)
    • users (1)
    • vim (3)
    • webdav (1)
    • yum (1)
    • zip (1)
  • mac (6)
    • bash (4)
    • ip (1)
  • moodle (1)
  • programs (3)
    • sublime (3)
  • rails (23)
    • AR (1)
    • cucumber (1)
    • datetime (1)
    • errors (1)
    • faye (1)
    • gems (5)
      • gemset (1)
      • passenger (4)
    • migration (1)
    • paranoia (1)
    • pdf & img (1)
    • rake (1)
    • rvm (1)
    • sidekiq (1)
    • storage (1)
    • video (1)
  • S3 (1)
  • vagrant (1)
  • windows (6)
    • boot (3)
    • flash (1)
    • network (1)
  • wordpress (6)
    • log (1)
    • login (2)
    • ssl (1)
  • Yandex and Google (1)

Свежие записи

  • Update Exim
  • S3 mount to Linux, MacOS, Windows
  • Atom snippets
  • eslintrc
  • MySQL — SELECT list is not in GROUP BY clause and…
Сайт работает на WordPress