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

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

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

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

Резервное копирование с BackWPup

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

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

Самый лучший способ для хранения бекапов — это DropBox.

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

Резервное копирование в Дропбокс выглядит примерно так: после регистрации и установки клиента на компьютере выделяется папка, содержимое которой автоматически сохраняется в папку на сервере Дропбокса. Вы что-то копируете в эту папку, и оно оказывается в дропбоксе. Вы что-то закачиваете в дропбокс, и оно оказывается в папке на компьютере. Если винт умирает — вы восстанавливаете все из дропбокса.

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

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

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

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

Важные настройки следующие:

Отмечаем, что мы хотим сохранить: Database backup и File backup (базу данных и файлы).

Ставим галочку Backup to Dropbox — копировать в дропбокс.

Сохраняем.

Кстати! Кроме дропбокса, плагин умеет заливать резервные копии по указанному ftp адресу или присылать архив с бекапом на мыло. Можете воспользоваться и такими вариантами.

И просматривайте периодически подменю Logs – там отображается информация о ошибках и предупреждениях.

Например, если плагин ругается на проблемы с архивацией очень длинных имен файлов или файлов с названием на кириллице, то стоит сменить формат архива с Tar Gzip на Zip.

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

На вкладке Расписания/Sсhedule выбираем как часто и в какое время будем делать резервную копию. Правило следующее — чем чаще обновляется сайт, тем чаще нужно делать бекапы.

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

В данном примере настроен бекап через день в 3:45.

На вкладке DB Backup выбираем все таблицы в базе данных для резервного копирования, на вкладке Files выбираем для копирования Backup root folder — т. е. полная копия сайта.

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

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

Как видно на скриншоте, выбрана опция Backup themes — копировать шаблон, исключая дефолтовый шаблон twentytwelve и выбрано копировать Backup uploads folder — папка загрузки файлов, исключая файлы за 2012 год.

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

Также важная опция внизу:

Include special files

Backup wp-config.php, robots.txt, .htaccess, .htpasswd and favicon.ico from root.

Означает делать копии основных файлов системных настроек.

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

На последней вкладке To: Dropbox выполняем авторизацию своим аккаунтом (full Dropbox) и указываем локальную папку на сервере дропбокса для хранения бекапов.

И настраиваем хранить 3 последний бекапа.

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

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

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

Защита от подбора паролей к админке с Limit Login Attempts

Капитан Очевидность утверждает, что большинство логинов админов к вордпресс — это admin. Поэтому для хакеров остается только перебором распространенных вариантов пароля, типа 1111, 123132 или qwerty найти ключик к сайту.

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

Если посмотреть в настройки плагина, то увидим следующее:

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

В статистике зафиксировано 126 попыток подбора пароля, 119 айпишников заблокированы в данный момент.

Что нужно настроить:

• 1 allowed retries — 1 разрешенная попытка (1-2 максимум);
• 9999 minutes lockout — блокировка на 9999 минут при неверном пароле;
• 1 lockouts increase lockout time to 9999 hours — еще одна блокировка увеличивает время блокирования еще на 9999 часов;
• Site connection — тип соединения админа с сайтом (прямое или черезпрокси);
• Handle cookie login — отслеживать куки;
• Notify on lockout — в случае блокировки записать айпи и срочно намылить админу об этом факте.

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

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

Чтобы удалить информацию о блокировке, необходимо сделать в phpMyAdmin запрос к БД сайта «UPDATE wp_options SET option_value = » WHERE option_name = ‘limit_login_lockouts'»

Второй способ — зайти на сайт с другого айпи и очистить список блокировки кнопкой Restore Lockouts.

Пример уведомлений на почту — типичная атака на клиентский сайт.

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

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

1. В меню WordPress Пользователи добавляете нового пользователя с хитрым логином и паролем и правами Администратор
2. Логинитесь в вордпресс под новым пользователем.
3. Удалите старый аккаунт admin. Внимание! Не удалите и все свои опубликованные посты, сопоставьте их с новым администратором.

Блокировка спамных комментариев с Antispam Bee

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

Плагин Antispam Bee не добавляет никаких формул, картинок или загадок, а тихо делает свою работу. Большинство настроек по умолчанию оставляем как есть.

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

Важные настройки следующие:

• Mark as spam, do not delete — пометить как спам, не удалять. Стоит включить на первое время использования плагина, если явных проколов нет, то выключить — пусть сразу удаляет;
• Notification by email — уведомления о спаме на емаил. Если спама падает много, то отключить уведомления;
• Delete existing spam after 2 days — удалять спам через 2 дня;
• Statistics on the dashboard — показывать статистику в панели.

А вот интрига — почему на данном примере в последнее время спама стало 0?

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

Потому, что комментарии были полностью отключены и заменены на форму комментариев Вконтакте.

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

Если вы являетесь единственным админом сайта и посещаете его все время с одного айпишника, есть эффективный способ закрыть доступ посторонним в админку без плагинов. Для этого для всех айпи, кроме вашего, в htaccess блокируется доступ к файлу wp-login.php

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

SetEnvIf Remote_Addr "^1.2.3.4|^128.128" addr
Order Deny,Allow
Deny from all
Allow from env=addr

или

Order Deny,Allow
Deny from all
Allow from 1.2.3.4
Allow from 128.128 

где 1.2.3.4 ваш статический айпи, а 128.128 к примеру первые цифры динамического айпи мобильного интернета.

Узнать свой айпи можно на 2ip.ru

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

Order Allow,Deny
Deny from All

Чтобы закрыть для всех посторонних доступ к папке wp-admin внутрь этой папки кладется файл htaccess с следующим содержимым

SetEnvIf Remote_Addr "^1.2.3.4|^128.128" addr
Order Deny,Allow
Deny from all
Allow from env=addr

или

Order Deny,Allow
Deny from all
Allow from 1.2.3.4
Allow from 128.128

Таким образом, извне никто не сможет попасть в админку сайта. Единственным слабым местом остается подбор пароля к FTP и взлом всего сервера сразу у хостера. С первым можно побороться использованием заковыристых паролей, со вторым — используйте нормальных хостеров.

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

Прячем wp-login.php

Чтобы полностью исключить любую возможность подбора пароля — стоит спрятать адрес входа в админ панель вордпресса путем переименовывания файла авторизации wp-login.php

Он находится в корневой директории сайта, замените его название на любое нестандартное. Для демонстрации я переименовал файл в adminka.php Теперь в самом файле adminka.php нужно заменить старое название файла на новое — сделаем правку с заменой

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

Теперь найдите файл wp-includes/general-template.php и замените в нем wp-login.php на adminka.php. Ни оставим ни единого шанса напихать шеллов на ваши сайты.

Теперь при обращении по адресу вашсайт/wp-login.php будет выдаваться ошибка. Останется только в htaccess полностью запретить доступ к этому урл.

Важно! При обновлении wordpress файлы могут быть перезаписаны на новые версии и нужно будет повторить процедуру замены урл входа.

Кроме этого, если вы используете виджет Meta, то в нем будет виден адрес для авторизации в блоге, уберите этот виджет.

ОСТАВЬТЕ ОТВЕТ