Окт
Дюжина советов по устранению уязвимостей на wordpress блоге (часть 1)
Повышение уровня безопасности Вашего блога на WordPress, является хорошей манерой ведения блога. Так WordPress имеет открытый исходный код, что повышает шансы вредоносных атак на успех.
Ранее я уже описывал, как с помощью нескольких плагинов повысить безопасность блога, теперь рассмотрим советы и приемы, с помощью которых можно устранить wordpress уязвимости.
Защищаем файл wp-config
Одним из главных файлов блога является wp-config.php, который содержит все данные, необходимые для подключения к серверу MySQL и базе данных. Защита этого файла – одна из самых главных задач, поэтому необходимо запретить доступ к этому файлу. Для этого в файл .htaccess (файл находиться в корне сайта) необходимо добавить код. Код:
order allow,deny
deny from all
Изменяем расположение wp-config.php.
Файл конфигурации WordPress «wp-config.php», можно убрать из папки блога, на один уровень вверх, там где его никто не найдет, что повысить безопасность блога. К примеру, блог находится в папке «/названиеблога.ru/public_html/» как правило, к папке «названиеблога.ru» доступа через веб уже нет, но если переместить туда файл wp-config.php, WordPress все еще будет работать, потому, как умеет искать файл конфигурации в папке на уровень выше.
Настраиваем права доступа на файлы и папки
Права доступа устанавливаются автоматически при закачке сайта на хостинг на файлы и папки. Необходимо настроить права доступа на папки — 755, на файлы – 644, для cache и uploads – 777.
Немного рассмотрим доступ на папки:
/wp-admin/ — папка панели администрирования: доступ на запись файлов, должен быть только у пользователя хостинга.
/wp-includes/ — служебные файлы WordPress: доступ на запись файлов, должен быть только у пользователя хостинга.
/wp-images/ — картинки WordPress: доступ на запись файлов, должен быть только у пользователя хостинга.
/wp-content/ — различное содержимое добавляемое пользователями блога: доступ на запись файлов, может быть у всех, пользователя, группы и публичный. Однако по некоторым рекомендациям доступ на запись ограничивают и для этого каталога.
/wp-content/themes/ — шаблоны WordPress блога: доступ на запись файлов, должен быть только у пользователя хостинга, если хотите использовать встроенный редактор шаблонов, тогда доступ нужно дать и для группы
/wp-content/plugins/ — плагины WordPress: доступ на запись файлов, должен быть только у пользователя хостинга.
Обязательно выполняем регулярный бэкап БД
Важным условием безопасности Вашего блога, является регулярное резервное копирование или создание бэкапа БД и системных файлов. Резервные копии дают возможность в любой момент восстановить информацию, над которой Вы так долго работали.
Если Ваш блог взломан, или удален полностью с сервера, резервная копия всегда поможет восстановить его после атаки. Поэтому не ленитесь и делайте по несколько резервных копий на разных носителях информации, чтобы уберечь себя и Ваши нервы.
Делать бэкапы обязательно перед изменением или внесением каких-либо действий в системные файлы Вашего блога. С помощью плагина WP DataBase Backup, Вы сможете регулярно получать бэкапы БД по почте.
Так же рекомендую делать полный бэкап wordpress сайта в dropbox, читаем как быстро и легко это сделать.
Устанавливаем пароль на папку wp-admin
Некоторые хостинги в своих панелях управления предоставляют возможность поставить дополнительный пароль на папку. Если у Вас есть такая возможность, то обязательно воспользуйтесь данным сервисом и установите пароль на папку wp-admin. В случаи получения злоумышленником «ключей» (логин/пароль) от панели администрирования Вашего блога, ему потребуется ввести еще один пароль, чтобы попасть в административную панель Вашего блога.
Убираем ошибку о неверно набранном логине/пароле
Когда Вы ошибаетесь при вводе логина/пароля в административную панель, то появляется сообщение о неверно набранных данных. Тем самым злоумышленник будет знать, что он ввел не те данные, но зачем нам давать ему такую возможность? И так, чтобы убрать сообщение об ошибке ввода необходимо добавить небольшой код в functions.php (данный файл находится в папке с темой Вашего сайта). Вот сам код:
add_filter ('login_errors',create_function ('$a', «return null;»));
Сохраняем и обновляем файл на сервере. Все, теперь вывод сообщений не будет происходить.
Скрываем версию ВП
Новые версии программ делают, чтобы добавить новые возможности, упростить управление и главное закрыть бреши от злоумышленников. Так и wordpress не отличается от других программ и имеет свои уязвимости в той или иной версии, поэтому надо эту брешь закрыть. Так не вовремя обновленная версия движка увеличивает шанс воспользоваться слабыми местами, но скрыв версию вордпресса повысить безопасность блога.
Советую удалить файл readme.html, находящийся в корне сайта. В нём тоже содержится информация о текущей версии WordPress'a.
Так же можно установить плагин Secure WordPress и в настройках поставить галочку напротив пункта «Версия WordPress».
Изменяем стандартный логин для входа в административную панель
Стандартно, после установки WordPressа, в административную панель сайта устанавливается логин «admin». Если логин известен, то провести успешный брутфорс будет легче, поэтому надо изменить данное упущение.
С версией WordPress 3.0 у Вас появляется право указать любой логин, чем непременно советую воспользоваться. Для остальных версий нужно немного поколдовать. Предлагаю четыре варианта решения данной задачи:
Первый способом, просто выполняем этот запрос к базе данных:
UPDATE wp_users SET user_login = 'Ваш новый логин' WHERE user_login = 'Admin';
Чтобы посты, написанные ранее admin'ом не поменяли своего автора, необходимо выполнить ещё один запрос:
UPDATE wp_posts SET post_author = 'Ваш новый логин' WHERE post_author = 'admin';
Для второго способа необходимо создать нового пользователя с правами администратора, затем выйти из админки блога и залогиниться под новым ником. После чего следует проверить: все ли функции доступны, и удалить первую учетную запись, связав все записи с новым пользователем.
Для третьего способа нам понадобиться плагин WPVN — Username Changer, который поможет изменить логин на который вы хотите.
Для четвертого способа надо немного подкорректировать БД, читаем как это правильно сделать.
Усложняем пароль в админку
Халатность при выборе пароля для входа в административную панель может пагубно сказаться на его безопасности. Многие вводят пароли в виде своей фамилии, даты рождения, цифр вида 12345, слов qwerty, но в наше время брутфорс все легче и легче становиться, поэтому минимум надо делать пароль из 12 символов. Используя в пароле цифры, спецсимволы, заглавные и строчные буквы.
Так же сложностью паролями не надо пренебрегать и на доступе в ФТП, в панель управления хостингом, в е-меил аккаунте.
Переносим страницу входа в административную панель
По умолчанию страница входа в административную панель блога находится по адресу: вашсайт.ru/wp— login, что в очередной раз дает брешь для взломщика. Чтобы заставить сначала найти вход в админку, а потом уже попытаться подобрать ключ к ней, мы изменим директорию нахождения wp— login. Поможет плагин Stealth Login, который позволяет изменить адрес страницы авторизации, о нем я уже писал.
Ограничиваем количество попыток авторизации в админку
Изменив логин и подобрав сложный пароль в административную панель блога, мы все еще не совсем уверены в своей безопасности, т.к. мы еще не защитились от брутфорса (метод решения задачи путем перебора всех возможных вариантов, сложность полного перебора зависит от количества всех возможных решений задачи). Поэтому, чтобы убрать возможность подобрать пароль от административной панели необходимо воспользоваться плагином Login Lockdown, который будет блокировать IP-адрес после нескольких неправильных попыток авторизации. Про данный плагин я уже писал ранее в статье про плагины для защиты ВП.
Защищаем передачу данных через SSL протокол
Если у Вашего провайдера есть возможность использовать SSL—протокол, то Вы можете обезопасить передачу данных. Так при активированной данной функции будет происходить принудительное использование SSL при входе в админку. Если возможность есть, то заходим на сервер и открываем wp-config.php и добавляем код:
define ('FORCE_SSL_ADMIN', true);
На данной статье останавливаться не буду и скоро опубликую еще материала по повышению безопасности блога.
09 Ноя 2010 в 00:24
[...] то публикую вторую дюжину советов, кто пропустил первую могут наверстать упущенное, так же прилагается список [...]
19 Ноя 2010 в 01:11
у меня к тебе вопрос насчет бекапа. как из полученного архива выполнить этот самый бекап?
[Ответить]
Ahawks Reply:
ноября 19, 2010 at 11:46
Я один раз это делал, на сколько я помню тебе необходимо зайти в phpMyAdmin, обычно туда можно попасть или через сайт хостинга твоего или через панель, потом зайти в базу данных блога и там будет сверху с право возможность загрузить бекап
[Ответить]
19 Ноя 2010 в 11:47
спасибо
[Ответить]
01 Янв 2011 в 12:05
Артур, привет!
Уточни пжл как сделать по первому способу,
чтоб изменить стандартный логин «admin» для входа в административную панель.
«Делаем запрос к базе данных» — это где именно? Прошу разъяснений...
[Ответить]
Ahawks Reply:
января 1, 2011 at 17:19
Вопрос понял, ответ ясен, только я попозже напишу... только приехал домой... подумаю или здесь текстом или создам новую тему и в картинках объясню данный список и возможно еще один...
[Ответить]
03 Янв 2011 в 22:12
[...] взят с моей первой статьи «Дюжина советов по устранению уязвимостей на wordpress блог...», где в одном из советов я описал три способа как [...]
04 Янв 2011 в 12:54
Здравствуйте! Статья очень полезная!
А где находится корень сайте? напишите подробно, пожалуйста.
[Ответить]
Ahawks Reply:
января 4, 2011 at 16:42
Здравствуйте, корень сайта это первоначальная папка с сайтом на Вашем хостинге. К примеру если Вы зайдете через панель хостинга или через фтп к себе то у Вас будет папка с названием Вашего домена у меня это ahawks.ru, в неё уже находиться сама cms и другие файлы. Не путать еще папку с cms и корневую, так как они могут располагаться не в одном месте. У некоторых тот же wordpress установлен прям в корневой папке, а у других в отдельной папке.
[Ответить]
09 Янв 2011 в 17:25
[...] Внизу перед шапкой представлены три кнопки, наверх, карта сайта и управление. Для «наверх» это идеальное место, но карту сайта я бы перенес к верхним страницам, четыре кнопки на страницы более красивее будут смотреться. А вот страницу управления я бы вообще убрал, как я понимаю на блоге нельзя зарегистрироваться, так зачем лишний раз показывать прямой вход в административную часть блога? Лучше перенести вход в другое место, тем самым повысив безопасность блога, как это сделать можно прочитать в моих советах по безопасности блога. [...]
06 Июл 2012 в 21:46
Спасибо вам огромное!Уже несколько месяцев один негодяй пытается войти в мою админку,но плагин Login Lockdown останавливает его. Если установим плагин Stealth Login,потом смогу я сам зайти в админку?
[Ответить]