|
viziter |
Дата: Воскресенье, 31.01.2010, 16:51 | Сообщение # 1 |
|
|
|
|
Mazafacker
|
|
|
|
Группа: Модераторы
|
|
Сообщений: 1462
|
|
« »
|
|
|
Статус: Offline
|
|
|
Защищаем свою J! Уровень знаний: средний и продвинутый Приветствую всех почитателей Joomla! В этой статье я постараюсь донести до вас основные шаги, которые необходимо предпринять для защиты от хакерских атак и других нелигитимных действий с вашим сайтом и FTP-доступом к нему. Ни для кого не секрет, что для обеспечения должной защищенности своего сайта, построенного на J!, недостаточно отделаться установкой компонента типа Defender, RS Firewall, X-Defender или аналогичных. Подобного рода компоненты не способны защитить ваш сайт от всех видов посягательств и имеют ряд ограничений, хотя при некоторых атаках (SQL и PHP-инъекции, флуд и т.п.) они показывают достаточно хорошие результаты. Поэтому ниже я приведу действия, которые необходимо предпринять для защиты своего сайта от большинства посягательств на его целостность и работоспособность. Сразу оговорюсь, что приведенный материал не претендует на полноту изложения и отражает индивидуальное мнение автора. Некоторые сторонние расширения могут требовать индивидуальной настройки для своих файлов и каталогов. Итак, начнем. 1. Защита с помощью файла .htaccessКод: Добавьте в файл .htaccess в корне сайта следующее: <Filesmatch ".(php)$"> order deny,allow deny from all </Filesmatch> <Filesmatch "^index.php"> order allow,deny allow from all </Filesmatch> <Filesmatch "^index2.php"> order deny,allow allow from all </Filesmatch> Эти строки указывают серверу, что необходимо запретить выполнение каких-либо скриптов в корне, кроме файла index.php. И если хакеру удастся загрузить в корень сайта какой-нибудь бэкдор, он все равно не сможет его выполнить на сервере. Однако, хакер может попытаться загрузить бэкдор с именем index.php в какой-нибудь подкаталог в корне сервера, где он будет успешно выполняться. Поэтому во все подкаталоги первого уровня от корня необходимо поместить файл .htaccess следующего содержания: Код: <Files ~ ".(php)$"> Deny from all </Files> Данная мера позволит запретить запуск php-скриптов напрямую. В каталоге "administrator" необходимо поместить файл .htaccess следующего содержания: Код: <Filesmatch ".(php)$"> order deny,allow deny from all </Filesmatch> <Files index.php> order deny,allow deny from all allow from 11.11.11.11 allow from 22.22.22.22 allow from 33.33.33.33 </Files> <Files index2.php> order deny,allow deny from all allow from 11.11.11.11 allow from 22.22.22.22 allow from 33.33.33.33 </Files> <Files index3.php> order deny,allow deny from all allow from 11.11.11.11 allow from 22.22.22.22 allow from 33.33.33.33 </Files> Где IP-адреса вида 11.22.33.44 -- это IP-адреса, с которых вы администрируете J!. Эта мера поможет, когда хакер каким-то образом смог получить пароль администратора. В этом случае он все равно не сможет залогиниться в административной панели. В папке "administrator" во все каталоги первого уровня поместите файл .htaccess следующего содержания: Код: <Files ~ ".(php)$"> Deny from all </Files> Настройка безопасности с помощью файла .htaccess завершена.
2. Защита доступа по FTP
Все вы прекрасно знаете, что J! хранит реквизиты вашего FTP-сервера в файле "configuration.php". И это дает хакеру лишнюю возможность получить FTP-доступ к вашему серверу, прочитав данный файл. Поэтому нам необходимо так настроить FTP-защиту, чтобы разрешить FTP-доступ только с определенных IP-адресов. Таким образом, даже если злоумышленник получит FTP-реквизиты, он не сможет залогиниться на ваш FTP-сервер. Если вы имеете доступ к файлу "/etc/proftpd.conf " на сервере, то добавьте в него следующие строки: Код: <Limit LOGIN> Order allow,deny Allow from 11.22.33.44 Allow from 127.0.0.1 Deny from all </Limit> где 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
Раздача на халяву Изменим нашу страну.Форум о политике! |
|
| |