Суббота, 22 Март 2014 00:00

Защита сайтов Joomla от кибер атак

Автор
Оцените материал
(0 голосов)
Закончил ремонт очередного сайта на CMS Joomla. В частности, выполнил некоторые рекомендации хостера по защите от взлома.
Часть рекомендаций делал и раньше, некоторые по здравому размышлению реализовал только сейчас.
При анализе советов сначала сделал себе MindMap, а потом решил еще и дописать некоторые пункты. Документ оказался достаточно содержательным и после небольшой доработки решил его выложить. Может, кому и пригодиться как чеклист при открытии сайта.

Рекомендации по защите JoomlaРегулярная смена пароля

Надеемся на авось и ленимся - рискуем. Про правила как подбирать пароль написано предостаточно. Только ленивый не пишет об этом. (Я например еще не писал ;))

Установить Joomla дополнения безопасности

Есть компоненты, которые анализируют логи, проверяют сайт на уязвимости и информируют о них. Например, мой хостер советует использовать Securitycheck.

Анализ логов на предмет несанкционированного доступа

А вы часто анализируете логи? Увлекательное занятие.

Установка последней версии Joomla

Последние версии Joomla 3.* предлагают обновления сами. Есть встроенный механизм, который в настройках показывает, что возможно обновление как самой Joomla, так и компонентов. Опять же надо не забывать проверять возможность и обновлять. К сожалению, есть опыт неудачного обновления. Не понятно с чем это связано, но один раз произошел сбой и пришлось восстанавливать ручками. Важно перед обновлением делать дамп базы данных и файловых каталогов.
Во-первых, проверяем состояние БД:  
Менеджер обновлений -> Базы данных
получаем некоторую информацию о возможных проблемах и можно даже полечить свою базу слегка.
Во-вторых, обновляем версию Joomla. Возможно, если бы я в свое время проверил и полечил, проблем бы было меньше.

Изменить стандартное имя admin

Тут все просто. Фактически вместо одного пароля взломщику придется еще и имя администратора подбирать. Если при создании воспользовались стандартным именем admin, то можно поменять в менеджере пользователей. Главное потом вспомнить что это было! К стати, советуют в имени использовать цифры. Для надеги (или безнадеги для кого-то).

Выбирать оригинальные шаблоны из проверенных мест

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

Удалить неиспользуемые шаблоны

По собственному опыту знаю, что когда подбираешь шаблон для сайта иногда приходится устанавливать кучу левых шаблонов. Потом уже они так и остаются навеки инсталлированными в системе. Тем не менее, многие из них действительно левые и могут содержать заведомые дыры уязвимости. В общем лучше всего с ними расстаться.
Шаблоны удаляются в Менеджере расширений в разделе Управление. Можно сгруппировать по типу расширения и без труда найти и удалить ненужные шаблоны. В лучшем случае должно остаться два: один для сайта, другой для админки. Если, конечно у вас не специальный набор шаблонов для настраивания вида для каждого пользователя.
Сообщением об ошибке закончится попытка удалить шаблон из Менеджера шаблонов. На самом деле, Менеджер шаблонов работает со стилями, поэтому, скорее всего удалить единственный стиль не даст. Идите вы в Менеджер расширений!

Устанавливать только защищенные расширения из проверенных мест

Та же проблема что и с шаблонами.

Удалить информацию о версии сайта

В некоторых простых шаблонах необходимо идти в соответствующий файл templates/имя_вашего_шаблона/index.php
(как правило конце файла index.php) и удалить пару строчек со ссылками на версию Joomla.
Некоторые специалисты вообще советуют сделать так, чтобы внешний наблюдатель был не в состоянии определить на каком движке сделан сайт, но это другой длинный разговор.

Переименовать административный каталог

Совет, конечно, хороший, но вручную это делать сложно. Лучше всего воспользоваться каким-нибудь специальным дополнением, например jSecure. Подозреваю, что проблемы будут не столько у хакеров, сколько у администраторов сайта.
Другой способ - запаролить каталог administrator, но тогда придется вводить дополнительный пароль при входе. Выбирать вам.

Избегать использование  jos_ префикса в БД

При создании сайта, Joomla предлагает поменять стандартный префикс. Обязательно меняем. Если сразу этого не сделать, то придется немного помучиться.
Во-первых, делаем дамп базы данных. В текстовом редакторе меняем префиксы (конечно же поиском и заменой по всему файлу, Семен Семенович!). После этого, импортируем базу заново. Для верности можно предварительно удалить все таблицы из базы. Пересоздавать базу не надо.
Во-вторых, меняем префикс в файле configuration.php. Можно, конечно, сначала поменять прямо в настройках сайта этот префикс, но пока вы возитесь с редактированием дампа сайт будет лежать. Если вы с легкостью меняете префиксы с текстовом редакторе, то и редактировать для вас будет легче configuration.php

Не использовать root пользователя для доступа к БД

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

Установить доступ к файлам и каталогам

Файлам нужны привелегии 644
Каталогам - 755

Backup

Надо ввести для себя правило на регулярной основе делать дамп базы данных и каталогов сайта. Для этого есть специальные дополнения. Не буду ничего рекламировать. Скажу только, что иногда эти дополнения работают, а иногда нет. Конечно, удобно, когда делаешь пару кликов и получаешь полный архив сайта. В конце концов, всегда можно из панели управления отдельно подготовить дамп базы и подготовить архив с каталогами. Нажатий несколько больше, но метод верный. Хранить этот груз не менее полугода!

Вынести информацию из configuration.php

Файл configuration.php содержит критическую информацию пароли, имена, явки. Заполучив этот файл, хакер сможет сделать с вашим сайтом все что угодно.
Поэтому копируем все его содержимое в файл, например, site.conf и помещаем последний выше каталога сайта (туда, где находятся каталоги www, public_html и др.). В сам конфигурационный файл записываем что-то вроде:
<?php require( dirname( __FILE__ ) . '/../site.c' ); ?>
, главное правильно указать путь туда, куда вы засунули свои секреты.

 

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

Прочитано 1739 раз Последнее изменение Суббота, 22 Март 2014 17:40
Авторизуйтесь, чтобы получить возможность оставлять комментарии