пятница, 30 января 2015 г.

основные шаги, которые необходимо предпринять для защиты от хакерских атак и других нелигитимных действий с вашим сайтом и FTP-доступом к нему.

Приветствую всех почитателей 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
 
tsumeno
Dantess!!! как всегда на высоте!!!
 
dantess
Только нужно учесть, что используя
Код:
Добавьте в файл .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>
Останавливается выполнение всех сторонних php, которые могут использоваться в составе Вашего сайта
 
svet2222
А это только для джумлы или для любой СМС
 
rigoss
dantess
так это вроде как подходит для защиты любой смс
код сапы встраиваеться в индех.пхп
он же должен выполняться в этом случае?
 
dantess
rigoss писал(а):
dantess
так это вроде как подходит для защиты любой смс
код сапы встраиваеться в индех.пхп
он же должен выполняться в этом случае?
Выполняется
 
isnifer
dantess
Спасибо за статью, возьмем на вооружение =)
 
file_graw
dantess
Супер, ты как всегда Крут. Молодца. Еще по защите, подкинь!!
 
Mons_single
Советую кидать такие htaccess файлы в папки с файлами с фотографиями картинками и шаблонами например в виде TPL файлов. Это обезопасит вас от залитых шелов
 
Wir-ssumy
Статья отстой, это защитит только от школьников, которые и так не смогут взломать ничего, а от продвинутых, это реально не поможет, в общем бред.
 
saramarabu
Цитата:
4. Файлы и каталоги...
........
Код:
chown -R user:group ./
Поясните пожалуйста, что вводить вместо user:group
То что это команда смена владельца файлов и каталогов - понятно, - но зачем это делать если мы и так залили их по ФТП под своим логином?
 
03rus
Очень полезная инфа. Спасибо. Воспользуюсь!
 
tolsty
Цитата:
Защищаем свою Joomla!
Копипастом промышляете. Лучше уж просто ссылку давать.
http://www.shadowxak.ru/articles/useful/defending-your-joomla.html
 
breb
tolsty
из этой ссылки
"Статью любезно предоставил Dantess"
 
*agat*
tolsty
))
Сам то смотрел?
Защищаем свою Joomla
Автор: Dantess
28.12.2009 17:39
 
kojibaca
tolsty писал(а):
Цитата:
Защищаем свою Joomla!
Копипастом промышляете. Лучше уж просто ссылку давать.
http://www.shadowxak.ru/articles/useful/defending-your-joomla.html
представьте сайт в ссылках
---
все правильно, свои труды нужно печатать - дабы продвигать их в поисковиках!
а раскидывать ссылки ща глупо
 
JonGrey
del
 
antius-ak
dantess писал(а):
Только нужно учесть, что используя
Код:
Добавьте в файл .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>
Останавливается выполнение всех сторонних php, которые могут использоваться в составе Вашего сайта
Скажите, что сделать, чтобы работали сторонние php? например VOTItaly теперь не работает...
 
zlopyhatel
antius-ak писал(а):
Скажите, что сделать, чтобы работали сторонние php? например VOTItaly теперь не работает...
Очевидно, прописать чуть выше запрещающих правил разрешающее правило с указанием явного адреса сайта, которому вы доверяете.
Аналогично доверенным IP.
 
Mastamikes
Спасибо большое! Очень пригодилось! Куда можно отправить поощение? ))))
 
Тар-Тар-Тар-Тар
Вот на счёт Defender, RS Firewall, X-Defender - хоетл бы спросить - что эффективнее? Я ставил себе их все поочереди и понял, что они страшно глючные. Смысл в них тогда?
 
jaya108
подскажите пожалуйста башевский скрипт который бы рекурсирвно копировал .htaccess файл во все папки кроме админа, т.к. папки могут добвляться, и отдельно для админской части скрипт
 
onemonk
спс! dantess
полезно
 
lika44
Подскажите, а какие права устанавливать на файл .htaccess как в корне, так и от корня сайта в поддиректориях где загружен файл .htaccess 444 или 644? Вроде как 444 надо, но что то ни где ни указано?
 
luka_d74
lika44 писал(а): 
Подскажите, а какие права устанавливать на файл .htaccess как в корне, так и от корня сайта в поддиректориях где загружен файл .htaccess 444 или 644? Вроде как 444 надо, но что то ни где ни указано?
644 - достаточно
 
Elimelech007
а у меня постоянно какой-то хакер заливает в корень сайт с расширением html - index.htm и содержанием: "Hacked By Moroccan wolf ~ Dz Team"
Что делать? Как запретить заливать любые файлы в корень сайта?

0 коммент.:

Отправить комментарий