Как защитить блог от взлома
Один из самых насущных вопросов для блоггера: что предпринять, чтобы мой блог не взломали?
Всех тонкостей мы сейчас не затронем, но некоторые нюансы, которые помогут обезопасить наш блог от злоумышленников, рассмотрим.
1. Скрываем папки нашего сайта.
Для того, чтобы узнать видят ли наши файлы посторонние, вводим в адресную строку имя своего сайта + какую-либо из директорий. Для моего сайта, например, путь может выглядеть так: jul-collection.com/wp-includes или jul-collection.com/wp-content/uploads, т.е. добавляем к названию сайта те директории, которые должны видеть только мы, но, к сожалению, они часто видны «всем на свете». Если, вписав подобную конструкцию в адресную строку, вы видите пустую страницу или сообщение, что страница не найдена, значит эта проблема вас не коснулась и этот пункт можно смело пропускать, если же нет и вы видите список файлов, то принимаемся за решение этой проблемы.
В файл htaccess добавляем строку следующего содержания:
Options All -Indexes
сохраняем файл и проверяем открытость наших документов для всеобщего обозрения.
2. Блокируем подбор пароля к админке сайта.
Подобрать пароль к админ-панели бывает проще некуда, ведь даже новичок знает, что дописав после имени сайта фразу wp-admin, попадаешь на страницу входа. Как же предотвратить свободный доступ к перебору пароля? Для этого воспользуемся плагином Login LockDown, в настройках которого указываем количество попыток ввода логина и пароля и время блокировки:
Max Login Retries равно 3 — т.е. допуск ошибки равен трем попыткам. Если три раза подряд были введены неверные данные, то вход в админ-панель будет блокирован.
Retry Time Period Restriction (minutes) равен 5 — время, за которое могут быть осуществленный попытки входа. Задан период в 5 минут и это означает, что если за эти пять минут было сделано три неверных попытки, то админка будет блокирована на 60 минут, так как Lockout Length (minutes) равен 60 минутам.
Так как этот плагин мы затрагивали ранее, то скачать его можно здесь.
3. Не увлекаемся плагинами.
Да, многие плагины облегчают редактирование, некоторые отвечают за продвижение, безопасность, а иные блог украшают, так что плагины — вещь неплохая и довольно полезная. Но к ним стоит подходить с умом — не устанавливать огромное количество на свой блог, так как любой плагин — это лишний черный вход для посторонних. Ограничьтесь тем набором плагинов, которые вам действительно необходимы.
4. Меняем логин для входа в админ-панель.
У нас есть два уравнения, одно с одним неизвестным, другое — с двумя неизвестными. Какое легче и быстрее удастся решить? Логично ответить, что первое, так как надо искать лишь один компонент. Вот так происходит и с данными для входа на сайт. Установив WordPress, многие забывают или не считают нужным сменить логин, оставляя стандартный логин admin.
Идем в phpmyadmin нашего сайта и в базе данных ищем таблицу под именем wp_users, выбираем ее и меняем user_login, которое у нас admin, на какое-либо другое имя. Но желательно не использовать в роли логина название сайта, собственное имя или имя администратора сайта, так как это легко раскрываемые имена.
Кликаем по карандашу (правка — редактировать) и в поле user_login меняем admin на нечто иное.
5. Меняем пароль.
Не уходя из phpmyadmin, меняем пароль, чтобы он у нас был длинным и сложным. Сочетаем в нем цифры, буквы, символы, меняем регистр.
Чтобы изменить пароль достаточно в этом же окне, где мы меняли логин, в поле user_pass вписать новый пароль. При этом не забываем, что пароль у нас хранится в хэшированом виде, а это значит, что вписав новый пароль, нам необходимо рядом, в выпадающем списке, выбрать функцию MD5. Сохраняем изменения.
6. Скрываем версию WordPress и меняем префиксы таблиц БД.
Для этого будет разумным использование плагина WP Security Scan.
Версию движка он скрывает самостоятельно, с нашей стороны никаких движений не требуется. Префиксы изменить легко.
Скачиваем плагин по ссылке выше, загружаем на свой сайт и активируем.
В админ-панели получаем дополнительные вкладки WSD security, в выпадающем меню переходим по Database. Внизу страницы видим заголовок Change database table prefix, вот здесь то нам и следует изменить префикс wp_ на придуманный нами. Но прежде чем приступить к данной процедуре, плагин советует сохранить бэкап базы данных (уже неоднократно использовала данный плагин в этих целях, ни одной проблемы пока что не возникло).
Вместо wp_ вводим другой префикс и нажимаем Start Renaming.
7. Перемещаем конфигурационный файл.
Файл, который хранит в себе важную информацию (пароли к БД весьма важная информация!) — wp-config.php — должен быть защищен от посторонних глаз. Для этого переносим его с одной директории в другую, а именно на уровень выше. Его постоянное место — это public html/wp-config.php, мы же перемещаем выше. На работу сайта это никак не влияет и никак не вредит, но этот момент важен в том смысле, что данный файл будет находиться не на положенном для него месте и будет недоступен для всяких вредоносных скриптов и ботов. Но есть один нюанс, который необходимо учитывать, если собираетесь осуществить такой перенос, для субдоменов эта процедура не годится.
8. Защищаемся от XSS атак.
Вам нужен еще один админ кроме вас самого? Если нет, то прибегаем к услугам плагина Anti-XSS attack, который обезопасит нашу админку. Настроек у плагина нет, свою работу он совершает без нашего вмешательства. От нас только требуется скачать плагин, загрузить на сайт и активировать. Подробнее о плагине можно прочитать на сайте автора.
9. Сохраняем БД.
Тему архивации базы данных мы уже ранее рассматривали на примере плагина WordPress Database Backup. С ним мы и продолжим работать, так как он удобен в том плане, что позволяет сохранять нашу базу как вручную так и автоматически. Задаем ему частоту копирования наших таблиц так часто, как пожелаем (частота будет зависеть от того насколько часто обновляется информация на вашем сайте/блоге).
Инструкции по установке и настройке находятся здесь.
10. Обновляемся!
Не забываем об обновлениях. Вышла новая версия WP? Обновляемся. Доступны новые версии тех плагинов, которые мы используем? Также не стоим в стороне и обновляем их. Обновления помогают обезопасить блог от взлома. Новые версии потому и появляются, что в старых появляются дыры и лазейки для взлома.
Выполняя эти нехитрые действия, мы сможем создать дополнительный барьер для недоброжелателей, тем самым сохраняя свой блог в целости и сохранности.
В дальнейшем мы еще не один раз затронем эту тему и найдем больше путей для защиты собственного блога.
Очень классная статья! Да и вообще весь цикл статей про защиту WP блогов отличный. Советы дельные. Однако часто защитить WP сайт … почти нереально. Да, основные стандартные уязвимости тут покрыты, но чего только стоят уязвимости в самом Apache2, который часто на хостингах последний раз обновляли год назад… Чего только тоит тот факт, что на большинстве WordPress сайтов wp-content имеет доступ 777 или 755, поскольку иначе процесс, в котором крутится приложение не может создать необходимую папку, и как следствие — загрузка изображений банально невозможна. Вернее возможна — через FTP, что для большинства неудобно.
При чем неизвестно, что хуже, давать доступ к wp-content 777 или 755. Это может быть не очевидно, но второе может привести к еще большим последствиям. Чтобы приложение могло работать с wp-content с правами 755, Apache2 нужно запускать через sudo. Что, к стати, можно сделать только на своем сервере, никак не на хостинге. Так вот Apache2 со всеми его уязвимостями, запущенный через sudo открывает злоумышленникам просто невероятное поле для деятельности по угону и использованию нашего сервера.
Ну а если Apache запущен в процессе с минимальными правами, как это и должно быть, то скорее всего права будут стоять 777 или 775, что в принципе неважно, поскольку нет ничего проще, чем загрузить в эту папку скрипт и выполнить его.
В общем, огромное спасибо, что просвещаете людей по безопасности, эти советы действительно пригодятся и помогут многим, а вы делаете крутое дело! Успехов вам!