Защищаем свою Joomla
- Подробности
- Автор: Dantess
- Просмотров: 7058
Уровень знаний: средний и продвинутый
Приветствую всех почитателей Joomla! В этой статье я постараюсь донести до вас основные шаги, которые необходимо предпринять для защиты от хакерских атак и других нелигитимных действий с вашим сайтом и FTP-доступом к нему.
Ни для кого не секрет, что для обеспечения должной защищенности своего сайта, построенного на Joomla, недостаточно отделаться установкой компонента типа Defender, RS Firewall, X-Defender или аналогичных. Подобного рода компоненты не способны защитить ваш сайт от всех видов посягательств и имеют ряд ограничений, хотя при некоторых атаках (SQL и PHP-инъекции, флуд и т.п.) они показывают достаточно хорошие результаты.
Поэтому ниже я приведу действия, которые необходимо предпринять для защиты своего сайта от большинства посягательств на его целостность и работоспособность.
Сразу оговорюсь, что приведенный материал не претендует на полноту изложения и отражает индивидуальное мнение автора. Некоторые сторонние расширения могут требовать индивидуальной настройки для своих файлов и каталогов.
Итак, начнем.
1. Защита с помощью файла .htaccess
order deny,allow
deny from all
order allow,deny
allow from all
order deny,allow
allow from all
Эти строки указывают серверу, что необходимо запретить выполнение каких-либо скриптов в корне, кроме файла index.php. И если хакеру удастся загрузить в корень сайта какой-нибудь бэкдор, он все равно не сможет его выполнить на сервере.
Однако, хакер может попытаться загрузить бэкдор с именем index.php в какой-нибудь подкаталог в корне сервера, где он будет успешно выполняться. Поэтому во все подкаталоги первого уровня от корня необходимо поместить файл .htaccess следующего содержания:
Данная мера позволит запретить запуск php-скриптов напрямую.
В каталоге "administrator" необходимо поместить файл .htaccess следующего содержания:
deny from all
order deny,allow
deny from all
allow from 11.11.11.11
allow from 22.22.22.22
allow from 33.33.33.33
order deny,allow
deny from all
allow from 11.11.11.11
allow from 22.22.22.22
allow from 33.33.33.33
order deny,allow
deny from all
allow from 11.11.11.11
allow from 22.22.22.22
allow from 33.33.33.33
Где IP-адреса вида 11.22.33.44 - это IP-адреса, с которых вы администрируете Joomla. Эта мера поможет, когда хакер каким-то образом смог получить пароль администратора. В этом случае он все равно не сможет залогиниться в административной панели.
В папке "administrator" во все каталоги первого уровня поместите файл .htaccess следующего содержания:
Настройка безопасности с помощью файла .htaccess завершена.
2. Защита доступа по FTP
Все вы прекрасно знаете, что Joomla хранит реквизиты вашего FTP-сервера в файле "configuration.php". И это дает хакеру лишнюю возможность получить FTP-доступ к вашему серверу, прочитав данный файл. Поэтому нам необходимо так настроить FTP-защиту, чтобы разрешить FTP-доступ только с определенных IP-адресов. Таким образом, даже если злоумышленник получит FTP-реквизиты, он не сможет залогиниться на ваш FTP-сервер. Если вы имеете доступ к файлу "/etc/proftpd.conf " на сервере, то добавьте в него следующие строки:
Allow from 11.22.33.44
Allow from 127.0.0.1
Deny from all
где IP-адрес 11.22.33.44 - это IP-адрес, с которого вы заходите на ваш FTP-сервер. Не забудьте добавить также IP-адрес 127.0.0.1, чтобы Joomla могла заходить на FTP-сервер через PHP для управления файлами.
Если же вы не имеете доступа к файлу "/etc/proftpd.conf ", то скорее всего в панели управления вашей площадкой на хостинге присутствует возможность ограничения доступа по FTP-протоколу. Обязательно узнайте об этом у своего хостера и воспользуйтесь такой настройкой.
3. Блокирование доступа к сайту с определенных IP-адресов.
Далее мы заблокируем доступ к сайту с определенных IP-адресов или даже для конкретных стран. Чтобы узнать нужные IP-адреса конкретных стран, воспользуйтесь этим сервисом.
Заблокировать доступ для диапазонов адресов можно с помощью IP-таблиц. Для этого вам понадобится SSH-доступ к вашему серверу. Если вы не знаете SSH-реквизитов, обратитесь за ними к службе техподдержки вашего хостера.
Войдя в оболочку, введите в коммандной строке:
где: -I – ключ вставки. Также вы можете использовать ключ –A для добавления IP-адресов к уже существующим записям. Вы можете блокировать как отдельные IP-адреса, так и диапазоны, разделяя начальный и конечный адреса символом "/". Заблокируйте плохих парней из Ирана, Ирака и т.п.
4. Файлы и каталоги
Следующий шаг состоит в том, чтобы присвоить безопасные атрибуты файлам и каталогам на сервере. Основная идея состоит в том, что владельцем всех файлов и папок должны быть вы как FTP-пользователь. Кроме того, каталоги должны иметь атрибут 755, а файлы 644. Если вы имеете доступ по SSH, то команда, выполненная из корня сайта, будет следующая:
chmod -R 0644 ./
find . -type d -exec chmod 755 {} ;
После этого все папки и файлы нельзя будет изменить через PHP.
Но скорее всего вам придется вручную задать атрибуты доступа 777 для каталогов с кэшем и резервного копирования. Не забудьте сделать это.
5. Установка компонента безопасности.
Установите какой-либо компонент безопасности типа Defender, RS Firewall, X-Defender или аналогичный. Этот компонент позаботится обо всем остальном, т.к. мы запретили запуск любых скриптов, кроме index.php.
Выполнив эти пять шагов, Вы защитите свою Joomla от 99.9% атак.
Статью любезно предоставил Dantess

