Защита блога на ВордПресс -

как ограничить нежелательный доступ к служебным файлам сайта

Недавно заглянул на один из сайтов из папки «Избранное» и, вместо привычного дизайна, увидел сайт вот таким:

Экран взломанного сайта для посетителя

Увы, печально, этот сайт взломан злоумышленниками и попал под фильтр. За то, что рассылает спам. Или заражен вирусом.

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

Общий подход как защитить блог на WordPress

Для меня понятие «безопасность сайта» – это синоним слова «предсказуемость».

Обеспечить безопасность сайта — это обеспечить предсказуемое функционирование сайта в сети Интернет.

На функционирование сайта может влиять ряд факторов:
— надежность хостинга
— устойчивость к взлому сайта и использования его для целей злоумышленников

На надежность хостинга можно повлиять только косвенным путем – выбирать компанию-хостера «кошельком» по каким-то доступным и понятным тебе критериям. Например я выбрал хостинг, который автоматически сам делает архивы сайта за 10 последних дней.

Однако этот вариант никак не застрахует от такого случая, как пожар в data-центре, который может физически уничтожить сервер с сайтом. Единственный способ обезопасить себя от потери данных в подобных случаях – периодически делать резервное копирование содержимого сайта. Например, с помощью плагинов. Одини из них — Duplicator. Он поможет скопировать небольшой WordPress-сайт в один архив и быстро «развернуть» этот сайт на любом другом хостинге.

С надежностью хостинга понятно. Теперь о защите от взлома. Ни один способ не гарантирует 100% защиту блога от взлома! Потому, что если какая-либо защита придумана людьми, – то найдутся люди, которые знают, как ее обойти. Вопрос только во времени (их квалификации) и цене вопроса (их намерении).

Как на меня, то стратегия защиты от взлома – максимально усложнить взлом сайта путем внедрения различных «ухищрений». Исхожу из того, что злоумышленник, столкнувшись с проблемами при взломе сайта и потратив на него некое время безрезультатно, с большей степенью вероятности перейдет к взлому другого, менее защищенного сайта.

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

Правда, может быть крайний случай, когда некий «любитель» захочет лично кому-то что-то «доказать» или «насолить» выбрав в качестве мишени твой сайт. Ибо «понты дороже денег». Но это уже другая история.

Простые, но надежные способы ограничения нежелательного доступа с служебным файлам

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

Доступ к папкам и файлам сайта возможен как по протоколу http (через веб-браузер), так и по протоколу ftp (через программу ftp-клиент FileZilla например).

Для ограничения доступа по http есть простой, однако надежный способ — это обеспечить доступ к папке wp-admin только по паролю с помощью файлов .htaccess и .htpasswd

Файл .htpasswd должен находиться за пределами корневой директории твоего блога, а лучше расположить его в директории выше корневой. Для создания файла и генерации пароля можно воспользоваться сервисом Htpasswd Generator

Файл .htaccess должен находиться в директории wp-admin и содержать следующие инструкции:

   AuthName "Здесь будет текст, который  выводится в окне авторизации"
   AuthType Basic
   AuthUserFile Здесь Полный Путь/.htpasswd
   require user Здесь имя пользователя, кому разрешен доступ
 

AuthName – текст содержащийся в данной директиве, выводится в окне ввода пароля. Он должен быть написан в одну строку и заключен в двойные кавычки.
AuthType — типы аутентификации: Basic или Digest. Рекомендуется использовать первый.
AuthUserFile — полный путь к файлу с логинами и паролями, для аутентификации пользователей. Пароли содержаться в шифрованном виде. Рекомендуется хранить данный файл в папке, к которой нет доступа для пользователей, и это необходимо, чтобы предотвратить кражу паролей.
require user – директива предписывает, что к URL получают доступ только, пользователи, успешно прошедшие аутентификацию.

Для ограничения доступа по ftp простой и надежный способ: ограничить доступ только с определенных IP-фдресов. В этом случае IP-адреса должны статическими. Статический IP можно получить у провайдера. Файл .htaccess для директории wp-admin должен содержать следующие правила:

AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName "Example Access Control"
AuthType Basic
order deny,allow
deny from all
allow from a.b.c.d. #Твой статический IP

И напоследок: рекомендую «перебросить» конфигурационный файл wp-config.php в папку выше. В этом случае WordPress автоматически проверит директорию выше если не найдет файл wp-config.php в корневой директории. Правда минус такого подхода — за счет этой операции чуть-чуть увеличиться время загрузки сайта. Но тебе выбирать между скоростью и безопасностью.

Если есть какие-то замечания, советы или приемы — поделись в комментариях.
Удачи!
Александр Коваль