Давно хотів написати статтю, присвячену безпеці сайтів на Joomla. Останнім часом почастішали зломи сайтів на Joomla, і не тільки на ній. Злому піддаються будь-які CMS (наприклад: Виявлена небезпечна уразливість в кешируєтся плагинах для WordPress). Методи зараження завжди однотипні: це зараження сайтів вірусами-троянами, установка бекдоров (backdoor). З цим боротися можна, і досить просто. Є ряд рішень з безпеки для сайтів на Joomla. Отже, обговоримо.
Безопаность сайту на Joomla варто розділити на частини:
- Налаштування .htaccess.
- Налаштування веб-сервера Apache.
- Права файлової системи.
- Оновлення CMS Joomla.
- Видалення розширень Joomla.
- Оновлення розширень Joomlа.
- Не використовуйте варезні розширення.
- Установка розширень безопаности.
- Складні паролі до облікового запису адміністраторів.
- Створення сторінки 404.
Безпечна настройка сервера / хостингу
Це найважливіша частина, Багато сайтобудівники не задаються питанням безпеки самого хостингу, де розміщуються сайти. А це поширена помилка. Це треба робити в першу чергу. Всі хостинги надають послугу, як є. Тільки на деяких майданчиках вже зроблена тонка настройка хостингу / сервера.
використовуйте .htaccess
Сам дистрибутив Joomla вже йде в комплекті з налаштованим файлом .htaccess. залишається тільки перейменувати його з htaccess .txt в .htaccess. І почнемо настройку.
Заборона виконання файлів в корені сайту
Заборона доступу до xml-файлів розширень
Блокування прямого доступу до ядра
Дане рішення закриє доступ до бекдоров, тим самим збільшуючи безпеку сайту на Joomla. З особистого досвіду, часто сайт заражається бекдоров під назвою FileMan. При віддаленому виклику ви отримуєте повний доступ до файлової системи, ви можете змінювати будь-які файли, при цьому залишаючи дату останньої зміни, а не поточних. Знайшли такі бекдоров в папці modules. приклади:
- /modules/mod_system/mod_system.php
- /modules/mod_systems/mod_system.php
- /modules/mod_article/mod_system.php
- /modules/mod_articles/mod_system.php
- /modules/mod_articless/mod_system.php
Створити новий файл .htaccess. Додати інструкцію, яка вказана нижньо. Вона забороняє виконання скриптів. Додати його в усі папки кореня сайту.
Налаштування Apache
Тепер перейдемо до налаштування безпеки веб-сервера Apache, він обробляє PHP-код і повертає браузеру HTML-код. Його теж треба налаштувати. Тут може виникнути ряд труднощів, оскільки не на всіх серверах є доступ до файлу php.ini (в ньому зберігається конфігурація Apache). Можна спробувати конфігурувати через .htaccess.
Встановіть модуль mod_security
ModSecurity - модуль Apache, який додає можливості виявлення і запобігання вторгнення на Web-сервер.
Використовуйте PHP версії 5.0 і вище.
Версія 4.0 вже вважається застарілою, і деякі функції вважаються небезпечними.
Не варто боятися включити, наприклад, версію 5.3 для Joomla гілки 1.5. CMS буде чудово працювати.
Використовуйте локальний php.ini
Деякі хостинги дозволяють використовувати власний файл конфігурації Apache, який знаходиться в корені сайту. Якщо така можливість є, не пропустіть її.
Налаштування php.ini
Якщо немає можливості налаштувати php.ini, то можна спробувати прописати в .htaccess.
Права в файлової системі
Якщо дистрибутив Joomla встановлений на веб-сервері Apache з mod_php. то все віртуальні хости на цьому сервері працюють в тому ж контексті, що і Joomla. Якщо файли належать іншим користувачем, наприклад «nobody» або «wwwrun», найбезпечнішим рішенням буде змінити власника, використовуючи FTP-клієнти (FilleZill, Total Commander і etc) і встановити правильні права доступу. Вони такі:
- Коренева директорія 750 (наприклад public_html)
- файли 644
- Директорії 755 (711 якщо ви параноїк, але не для директорій, які повинні бути перераховані, наприклад images)
Оновлення CMS Joomla
Дуже важливий крок. Оновити систему треба, так як розробники періодично закривають дірки в ядрі. Наприклад, останній білд для 1.5 є 1.5.26. Завантажити релізи оновлень можна на сайті joomla.org. Там же знайдете пакети оновлень і для новіших версій.
Перед оновленням обов'язково створіть резервну копію всього сайту, використовуючи інструменти, які надає хостинг або скористайтеся компонентом Akeeba Backup.
Видалення розширень Joomla
Багато сайтобудівники ставлять поспіль всі розширення, які знаходять. Здебільшого всі вони не приносять користі і мають купу дірок, через які зловмисник може отримати повний доступ до сайту або заразити сайт на Joomla вірусом. Так що треба визначитися, чи потрібен вам віджет годин на сайті? Краще видалити невикористовувані розширення і залишити тільки дійсно корисні.
Оновлення розширень Joomlа
Не використовуйте варезні розширення
Установка розширень безпеки
Є ряд корисних розширень для Joomla, який значно підвищить безпеку вашого сайту. Наведу їх список.
- Admin Tools - шикарний інструмент реальної безпеки. При цьому я рекомендую придбати професійну версію (вона коштує всього 20 Євро), зате ви отримаєте майже максимальну безпеку. порівняння версій
- jHackGuard - цікавий плагін від SiteGround, що дозволяє істотно підвищити безпеку сайту. HackGuard забезпечує захист від таких видів злому, як: SQL-ін'єкції, віддалені включення URL / файлів, віддалене виконання коду, а також захист від XSS-атак.
- AI-Bolit - Скрипт (не розширення) для пошуку вірусів і шкідливих скриптів на сайті. Інструкція по його використанню - у коробці.
- Shell and Backdoor Script Finder - вірусний сканер сайту, у нього більш просунуті бази, ніж у AI-Bolit.
Складні паролі до облікового запису адміністраторів
У мене є впевненість, що більшість сайтів на Joomla можна зламати за допомогою пари логіна admin і пароль 1234. Це неприпустима недбалість. Такий пароль з логіном підбирається в лічені секунди. Якщо ви відчуваєте труднощі з генерацією складних паролів, то скористайтеся сервісом pasw.ru.
Створення сторінки «404»
Ну, про це я писав уже двічі: Посадкова 404 сторінка і Як створити 404 сторінку в Joomla 1.5.xx. Ви ж не хочете побачити ось таку нудну сторінку:
Ось, в принципі і все. Цих кількох простих дій достатньо, щоб ваш сайт жив і процвітав. Безпека понад усе.
Що ще почитати на цю тему
Привіт, у мене така проблема, не встановлюються розширення, перепробував всі можливі способи - ні в яку! На вірусняк правда не перевіряв ще тільки. Сайт намагалися зламати кілька разів - не змогли і може яку капость зробили, це можливо? І спасибі за інформацію, ваш сайт у мене в закладках.Ответіть
$ Cat .htaccess | grep Filesmatch
$
при цьому, на корені сайту здійснюється тільки index.php
Що я роблю не так? Відповісти