Поиск по моему блогу

Защищаем свою Joomla !

Уровень знаний: средний и продвинутый
Приветствую всех почитателей Joomla! В этой статье я постараюсь донести до вас основные шаги, которые необходимо предпринять для защиты от хакерских атак и других нелигитимных действий с вашим сайтом и FTP-доступом к нему.
Ни для кого не секрет, что для обеспечения должной защищенности своего сайта, построенного на J!, недостаточно отделаться установкой компонента типа Defender, RS Firewall, X-Defender или аналогичных. Подобного рода компоненты не способны защитить ваш сайт от всех видов посягательств и имеют ряд ограничений, хотя при некоторых атаках (SQL и PHP-инъекции, флуд и т.п.) они показывают достаточно хорошие результаты.
Поэтому ниже я приведу действия, которые необходимо предпринять для защиты своего сайта от большинства посягательств на его целостность и работоспособность.
Сразу оговорюсь, что приведенный материал не претендует на полноту изложения и отражает индивидуальное мнение автора. Некоторые сторонние расширения могут требовать индивидуальной настройки для своих файлов и каталогов.
Итак, начнем.
1. Защита с помощью файла .htaccess
Код:
Добавьте в файл .htaccess в корне сайта следующее:

order deny,allow
deny from all


order allow,deny
allow from all


order deny,allow
allow from all
Эти строки указывают серверу, что необходимо запретить выполнение каких-либо скриптов в корне, кроме файла index.php. И если хакеру удастся загрузить в корень сайта какой-нибудь бэкдор, он все равно не сможет его выполнить на сервере.
Однако, хакер может попытаться загрузить бэкдор с именем index.php в какой-нибудь подкаталог в корне сервера, где он будет успешно выполняться. Поэтому во все подкаталоги первого уровня от корня необходимо поместить файл .htaccess следующего содержания:
Код:

Deny from all
Данная мера позволит запретить запуск php-скриптов напрямую.
В каталоге "administrator" необходимо поместить файл .htaccess следующего содержания:
Код:

order deny,allow
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-адреса, с которых вы администрируете J!. Эта мера поможет, когда хакер каким-то образом смог получить пароль администратора. В этом случае он все равно не сможет залогиниться в административной панели.
В папке "administrator" во все каталоги первого уровня поместите файл .htaccess следующего содержания:
Код:

Deny from all
Настройка безопасности с помощью файла .htaccess завершена.

2. Защита доступа по FTP

Все вы прекрасно знаете, что J! хранит реквизиты вашего FTP-сервера в файле "configuration.php". И это дает хакеру лишнюю возможность получить FTP-доступ к вашему серверу, прочитав данный файл. Поэтому нам необходимо так настроить FTP-защиту, чтобы разрешить FTP-доступ только с определенных IP-адресов. Таким образом, даже если злоумышленник получит FTP-реквизиты, он не сможет залогиниться на ваш FTP-сервер. Если вы имеете доступ к файлу "/etc/proftpd.conf " на сервере, то добавьте в него следующие строки:
Код:

Order allow,deny
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, чтобы J! могла заходить на FTP-сервер через PHP для управления файлами.
Если же вы не имеете доступа к файлу "/etc/proftpd.conf ", то скорее всего в панели управления вашей площадкой на хостинге присутствует возможность ограничения доступа по FTP-протоколу. Обязательно узнайте об этом у своего хостера и воспользуйтесь такой настройкой.

3. Блокирование доступа к сайту с определенных IP-адресов.

Далее мы заблокируем доступ к сайту с определенных IP-адресов или даже для конкретных стран. Чтобы узнать нужные IP-адреса конкретных стран, воспользуйтесь этим сервисом.
Заблокировать доступ для диапазонов адресов можно с помощью IP-таблиц. Для этого вам понадобится SSH-доступ к вашему серверу. Если вы не знаете SSH-реквизитов, обратитесь за ними к службе техподдержки вашего хостера.
Войдя в оболочку, введите в коммандной строке:
Код:
/sbin/iptables -I INPUT -s 88.147.196.0/88.147.253.255 -j DROP
где:
-I – ключ вставки. Также вы можете использовать ключ –A для добавления IP-адресов к уже существующим записям. Вы можете блокировать как отдельные IP-адреса, так и диапазоны, разделяя начальный и конечный адреса символом "/". Заблокируйте плохих парней из Ирана, Ирака и т.п.
4. Файлы и каталоги
Следующий шаг состоит в том, чтобы присвоить безопасные атрибуты файлам и каталогам на сервере. Основная идея состоит в том, что владельцем всех файлов и папок должны быть вы как FTP-пользователь. Кроме того, каталоги должны иметь атрибут 755, а файлы 644. Если вы имеете доступ по SSH, то команда, выполненная из корня сайта, будет следующая:
Код:
chown -R user:group ./
chmod -R 0644 ./
find . -type d -exec chmod 755 {} ;
После этого все папки и файлы нельзя будет изменить через PHP.
Но скорее всего вам придется вручную задать атрибуты доступа 777 для каталогов с кешем и резервного копирования. Не забудьте сделать это.
5. Установка компонента безопасности.
Установите какой-либо компонент безопасности типа Defender, RS Firewall, X-Defender или аналогичный. Этот компонент позаботится обо всем остальном, т.к. мы запретили запуск любых скриптов, кроме index.php.
Выполнив эти пять шагов, Вы защитите свою J! от 99.9% атак.
По материалам сайта www.mightyextensions.com
Reblog this post [with Zemanta]

Реклама от BigBN