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

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

Ниже я опишу 14 способов как можно повысить безопасность сайта на Joomla. Безусловно данные способы не гарантирую 100% защиты от взлома, но используя эти методы на своем сайте, вы значительно усложните жизнь злоумышленникам.

И мой вам совет — Учитесь на чужих ошибках!

1. Сменить префикс таблиц базы данных. Самой распространенной sql инъекций является то что хакер зная стандартный префикс таблиц joomla, пытается обратиться к таблице jos_users и получить информацию о пользователе из базы данных.

Итак, как поменять префикс таблиц в базе данных Joomla:

  • В панели администратора переходим в Общие настройки.
  • Выбираем вкладку Сервер, указываем новый префикс в поле префикс таблиц базы данных.Вводим новый префикс в настройках Joomla
  • Сайт на время перестанет работать.
  • Переходим в phpMyAdmin и выбираем нужную базу.
  • Нажимаем экспорт и жмем вперед. Сохраняем дамп базы на компьютере. Убедитесь, что дамп базы сохранен и удалите все таблицы из базы данных.
  • Открываем сохраненный дамп через текстовый редактор.
  • Нажимаем Ctr+F. Появится окно поиска и замены. Переходим на вкладку замены. В поле найти вводим старый префикс jos_, заменить на, вводим новый префикс hm3ko_. Нажимаем заменить все.
    Замена префиксов таблиц базы данных Joomla
  • Копируем содержимое файла и переходим в phpMyAdmin на вкладку SQL. Вставляем скопированные данные в поле и нажимаем вперед. После успешного выполнения запроса, сайт начнет работать.

2. Смените логин администратора. По умолчанию в joomla логин администратора предлагается admin. Желательно сменить его на более сложный содержащий в себе как минимум 10 символов букв и цифр. Тоже самое касается и пароля.

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

3. Скройте доступ к панели администратора от посторонних глаз.

Беда joomla, да и других smc систем в том что, практически любой пользователь, а уж тем более хакер, может попасть в панель администратора. Поиграв с магическими комбинациями administrator, wp-admin, admin и прочее.

Попав в панель администратора, подобрать пароль не составит труда.

Для скрытия админки воспользуйтесь плагином jSecure или его аналогом kSecure.

Пройдите регистрацию на сайте и скачайте плагин kSecure.

Установите плагин через “Менеджер расширений”. Найдите установленный плагин в “Менеджере плагинов” и зайдите в него.

Менеджер плагинов Joomla 2.5

Измените “Состояние” на включено, введите Password для доступа в админку. Значение Mode установите на Compatibility.

Настройка плагина kSecure на joomla 2.5

Совет – делайте пароль как можно сложнее из букв и цифр в нижнем и верхнем регистре.

Теперь для того чтобы войти в панель администратора Joomla вам нужно ввести /administrator?секретный ключ

4. Установите правильные права на папки 755, файл configuration.php 444, на все остальные файлы 644.

5. Переименуйте xml карту сайта и удалите ее из robots.txt

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

6. Скройте метатег generator. С помощью этого тега злоумышленник сможет определить на какой cms системе сделан сайт, а затем вычислить ее слабые места.

Есть два способа как убрать метатег generator в joomla:

Первый способ: зайдите в менеджер шаблонов и перейдите на вкладку шаблоны.

Панель администратора Joomla 2.5 менеджер шаблонов

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

Выбираем используемый шаблон для настройкиФайлы шаблона в панели администратора Joomla 2.5

В начале шаблона после кода defined(‘_JEXEC’) or dieВставьте код $this->setGenerator(‘Ваше значение’); Внутри  скобок вы можете ввести любое значение. Введенное значение будет отображаться в теге generetor. Если вам не нужно выводить данный тег вообще, подайте в метод $this->setGenerator(‘ ‘); пустое значение.

Изменяем метатег generator в Joomla методом setGenerator

Второй способ: зайдите по фтп в папку /libraries/joomla/document/html/renderer/ и скачайте а свой компьютер файл header.php. Откройте файл в текстовом редакторе и закомментируйте данную строку:

$generator = $document->getGenerator();

Убираем тег generator в Joomla, способ два

Минус данного способа в том что при обновлении Joomla сделанные изменения затруть

7. Включите sef ссылки. Они помогут скрыть используемые компоненты на сайте от глаз злоумышленника. Когда появляется информация об уязвимости компонента, хакеры пытаются найти те сайты на которых установлен «дырявый» компонент. Для этого они используют оператор inurl поиска google.

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

8. Компоненты, модули и плагины устанавливайте только с официальных сайтов. Даже если они платные, не жалейте на денег, хороший продукт должен стоит денег и не забывайте про труд разработчиков. Скачанные компоненты с сайтов помоек типа joomla-master.org, в лучшем случае будут содержать скрытые ссылки. В худшем — зараженные скрипты и шелкоды.

9. Постоянно обновляйте Joomla и установленные расширения. В обновлениях разработчики исправляют ошибки и обнаруженные уязвимости.

10. Чем больше на сайте установлено расширений, тем выше становится его уязвимость.

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

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

13. Скройте просмотр модулей через tp=1.

Для Joomla 1.5. В файл .htaccess добавить:

RewriteCond %{QUERY_STRING} tp=(.*)
RewriteRule ^(.*)$ index.php [F,L]

Для Joomla 1.6 и поздних версиях. Зайдите в панель администратора, менеджер шаблонов и нажмите настройки. В появившемся окне на вкладке шаблоны, отключите опцию “Просмотр позиций модулей”.

14. Установите модуль безопасности RSFirewall. Модуль платный но он стоит своих денег.

Перечислю основные функции модуля:

  • Ведение журнала событий — в котором отображаются попытки взлома сайта и ip адреса злоумышленников, также есть возможность отправки журнала на email.
  • Защита от sql инъекций.
  • Ведение черного списка пользователе (блокировка по ip).
  • Сканер системы — проверяет основные файлы на наличие ошибок и вредоносных программ.
  • Проверка и оптимизация базы данных.

Ну вот и все, основные методы по повышению безопасности Joomla я перечислил. Данные методы я применяю на всех разработанных мною сайтах.

А какие методы используете вы? Делитесь ими в комментариях!