1. Уважаемые пользователи, прежде чем ответить в теме или создать новую,
    внимательно ознакомьтесь с правилами раздела

    Кому лень работать или руки не оттуда - пользуйтесь услугами специалистов
  2. Не задавайте глупых вопросов "Посоветуйте какой-нибудь компонент.."

    Есть JED!!! Ищите там!!!

Обсуждение Безопасность JOOMLA

Тема в разделе "Joomla", создана пользователем Scaltro, 22 янв 2009.

Информация :
  • Уважаемые пользователи, прежде чем ответить в теме или создать новую, внимательно ознакомьтесь с правилами раздела
  • Не задавайте глупых вопросов "Посоветуйте какой-нибудь компонент.." Есть JED!!! Ищите там!!!
  • Аналоги ищите там же - на JED!!!
  • Новая версия? - У кого будет - тот выложит!
Модераторы: arman29, DMS, NightHunter
  1. Scaltro

    Scaltro

    Регистр.:
    15 сен 2007
    Сообщения:
    1.091
    Симпатии:
    73
    Предлогаю в этой теме обсуждать способы обеспечения безопасности Joomla, кто какие слабости знает и как их устранить выкладывайте сюда если не жалко конечно ;)
     
  2. emone

    emone Постоялец

    Регистр.:
    1 сен 2007
    Сообщения:
    133
    Симпатии:
    38
    тема жована-пережована! само ядро Джумлы безопастно на 99% а вот дело какра в левых разширениях как в основном дырки в них находят!
     
  3. Scaltro

    Scaltro

    Регистр.:
    15 сен 2007
    Сообщения:
    1.091
    Симпатии:
    73
    Это что получается, если поставить голую Джумлу, то в ней практически нет дыр?
     
  4. 1d37r

    1d37r Читатель

    Заблокирован
    Регистр.:
    16 сен 2007
    Сообщения:
    287
    Симпатии:
    48
    Перед прочтением статьи. рекомендую ознакомится с этим сообщением.

    Сразу же надо оговориться, что стопроцентной защиты нет. Существуют лишь некоторые правила, без соблюдения которых, защиту точно не составит труда обойти.

    • register_globals - не надо думать, что это вот такая дыра в пхп, дыра прежде всего в головах у разработчиков, которые не умеют пользоваться средствами языка правильно. Так вот в последнее время (сентябрь 2006) число найденных дыр использующих неглубокие познания девелоперов экспоненциально возросло. Для самой примитивной защиты в файл .htaccess надо добавить строчку "php_value register_globals 0"(или "php_flag register_globals off") (без кавычек) (если вы это сделали, а у вас вывалилась ошибка 500 и вы не знаете что делать, значит вы нихрена не читали фак с самого начала, читайте его полностью)​
    • Рекоменудется прочитать "Руководство по обеспечению безопасости для мамбо" (с тех времен мало что изменилось, так что и для joomla все должно прокатить) ​
    • После сохранения конфига дать как можно меньше прав на файл configuration.php, вплоть до 444 (правда потом и вы не сможете перезаписать файл ) ​
    • На ВСЕ файлы и папки делайте CHMOD 644 и 755 соответственно. Если Joomla нужны будут права для записи/перезаписи, то она скажет об этом сама, подсветив нужные ей папки и файлы КРАСНЫМ цветом с сообщением Недоступно для записи.​

    Для работы Joomla (полностью настроенного сайта, когда нужные расширения уже установлены) только у нижеуказанных папок могут быть CHMOD 777:

    • administrator/backups/ - chmod 777 иногда требуется для различных компонентов, делающих бэкап базы Joomla.
    • images/
    • images/banners/ - chmod 777, если записываете сюда баннеры с помощью Joomla
    • images/stories/ -
    • Каталог кэша cache/ - папка для записи кэша
    • Каталог сессий - определено в настройках PHP - ДОЛЖЕН БЫТЬ ДОСТУПЕН ДЛЯ ЗАПИСИ

    Защитите папку administrator паролем. В большинстве хостинговых панелей это делается за несколько секунд, а нервы здорово сбережет. Обязательно переименуйте файл htaccess.txt в .htaccess, даже если вы не используете ЧПУ (SEF-урл'ы)

    Что такое chmod/чмод и права файлов (777, 664 и т.д. )

    * Чмод для чайников
    * http://chmod.ru/

    А если меня взломали как мне проанализировать ситуацию, предотвратить такое в будущем

    Прежде всего нужны логи за тот день, в который это предположительно произошло. Понятно, что логи большие и читать каждую строку смысла не имеет, но чаще всего можно найти необходимые строки где произошел взлом по следующим ключевым словам:
    Во-вторых надо проверить вашу текущую версию Joomla, для этого нужно зайти на joomla.org и почитать новости. Если ваша версия устарела - есть повод ее обновить.

    В третьих следует составить список установленных компонентов (не входящих в стандартный пакет), и зайти на их официальные сайты в поисках информации об их текущей версии и возможных сообщениях об найденных уязвимостях.

    Помимо просмотра логов надо найти то место, где может быть расположен вредоносный код. Лучше всего искать зараженные файлы после того, как скачали на домашний компьютер архив с файлами хостинга. Просто разархивируем его и, например, в проводнике задаем поиск по маске *.* с дополнительным параметром, а именно датой последнего изменения. Если вы примерно знаете, когда был взлом - то легко можете установить примерный период дат. По идее файлы на хостинге вообще не должны меняться (ну пожалуй за исключением вновь установленных расширений, но их-то уж можно будет смело отделить - вы всегда знаете что ставили а что нет). После того как файлы найдены (обычно это не один, а несколько файлов) можно уже смотреть их более внимательно на предмет постороннего кода. И чаще всего он находится в самом начале или конце файла, так как туда проще его вставлять взломщику.

    Также может помочь найти файл сканирование архива антивирусной программой.

    После выяснения причины уязвимости следует прочитать следующий пункт FAQ.

    Что делать в случае обнаружения взлома

    Мало его обнаружить и обнаружить почему он произошел. Надо еще правильно выйти из ситуации. Прежде всего делаем бэкап всех файлов и базы. Если есть возможность восстановиться с ранее созданного бэкапа - стоит им воспользоваться. Если такой возможности нет, то стоит залить свежий дистрибутив джумлы, заново настроить configuration.php. [Очень сильно рекомендуется после установки сайта сохранить куда-нибудь хотя бы configuration.php (если нет возможности сделать бэкап всего сайта)(это не касается конкретно взломов, но это надо знать)]. После восстановления файлов джумлы надо (если были найдены уязвимости в каких-то компонентах или взлом был осуществлен через них) обновить файлы компонентов (чаще всего выходят патчи одного-двух файлов).

    Теперь надо проверить сайт на работоспособность. Если всё работает, то надо визуально убедиться в отсутствии лишних файлов в основных директориях джумлы и еще раз сделать бэкап.


    Что еще можно сделать для обеспечения безопасности

    Ниже лежит частично переведенный Security FAQ с офф. сайта. Только самое полезное.

    Для вашей же безопасности, надо после установки как можно скорее сменить имя админстратора, которое ему дается по умолчанию, т.е. 'admin'. Для этого идем в админку -> Управление пользователями (Пользователи), выбираем себя и меняем имя.

    Как разрешить доступ к админке только с определенных IP-адресов

    Для этого, если используется веб-сервер apache, надо создать файл .htaccess в папке /administrator/ и написать нечто вроде этого
    Если надо ввести несколько адресов, то это можно сделать разделив их запятой, например так:
    Где можно включить/выключить параметр RG_EMULATION?

    В файле globals.php в строчке
    Цифра 1 означает, что он включен, 0 - выключен. Этот параметр (насколько я знаю) предназначен для старых, древних как сама жизнь компонентов, которые до сих пор не знают, что такое register_globals. Возможно, со старыми компонентами и выключенным режимом эмуляции их работа станет невозможной (и не надо тут искать слово "безопасность", хоть девелоперы и говорят о безопасности, но ерунда это всё, один криворукий девелопер ремозитория не означает, что все такие).

    Что можно сделать с особо важным файлом configuration.php

    Можно вынести его за пределы www-директории (у некоторых она называется public_html). Для этого копируем его за ее пределы, возможно рядом с ней, переименовываем например в "joomla.conf", а в том, что должен быть в корне Joomla пишем нечто вроде этого
    В результате особо-чувствительные данные теперь не находятся в www-директории и хотя бы на чуть-чуть стали более защищенными.

    Пример .htaccess директив, от старых мамбо-joomla уязвимостей

    Вот пример .htaccess директив, от старых мамбо-joomla уязвимостей, времен каменного века, возможно будет не лишним его использовать, хотя надо еще посмотреть на нагрузку, возможно она возрастет, тогда эти директивы надо отключить. Автор сборника - некто RobS.
    Как запретить вход в админку на время моего отсутствия

    В админке создаем .htaccess и пишем в него "deny from all". В результате никто (даже вы) не сможет туда войти. Бывает очень полезно, если вы знаете, что долго не будете входить туда. А перед тем как захотите войти - просто сотрите этот файл по FTP.

    Сообщение "Следующие настройки PHP являются неоптимальными для БЕЗОПАСНОСТИ и их рекомендуется изменить"

    После установки Joomla вы входите в админку и видите красными буквами это безобразие.

    • PHP magic_quotes_gpc установлено в `OFF` вместо `ON`
    • PHP register_globals установлено в `ON` вместо `OFF`
    • Параметр Joomla! RG_EMULATION в файле globals.php установлен в `ON` вместо `OFF`

    Хочу отметить - что по большой части это безобразие в головах у девелоперов. Если у вас стоят последние версии компонентов, то особо париться не надо. Но надпись напрягает, это правда. Для ее устранения надо либо в коде вырезать эту проверку - вариант для джедаев. Либо настроить пхп так, что бы они не выскакивали.

    • magic_quotes_gpc и register_globals - можно убрать двумя способами.
    • Либо, если вам доступно редактирование php.ini и вы можете иметь php.ini для каждой директории, то ложим этот файл в папку с Joomla и в папку админки. И там исправляем эти два параметра. Для magic_quotes_gpc пишем "magic_quotes_gpc=On" (без кавычек), а для register_globals пишем "register_globals=Off".
    • Если вы это делать не можете, то можно попробовать сменить их в .htaccess. Для этого добавляем (или раскомментируем - для пользователей RE версии) строчку "php_value имя_константы значение". О том как это сделать - внимательно читаем весь текст этой страницы. Обращаю внимание, что такой фокус с .htaccess может сработать только если ваш сервер это веб-сервер Apache, а не IIS и настройки хостинга позволяют менять данные параметры. Если он платный то чаще всего это сделать можно.
    • RG_EMULATION - читайте весь фак полностью.

    Что делать, если любой желающий может просмотреть список файлов в любой директории, насколько это опасно

    Т.е. если вы например набираете в адресной строке хттп://сайт.ру/components/com_content/ и видите содержимое директории, то это значит, что в вашем сервере настроена выдача листинга директорий. Насколько это безопасно - на самом деле это не так уж и страшно. Хотя в принципе может дать взломщику дополнительные плюсы при изучении вашего сайта. Избежать открытого листинга можно двумя способами:

    • .htaccess или в конфигурации apache создать директиву
    • В каждую директорию положить пустой файл index.html. Тогда если все настроено как обычно, то вместо списка файлов будет выдаваться именно этот файл.
    (с) http://www.joomla-docs.ru/Безопасность
     
    Extalionez, AndrewDK, max_1988 и 2 другим нравится это.
  5. Scaltro

    Scaltro

    Регистр.:
    15 сен 2007
    Сообщения:
    1.091
    Симпатии:
    73
    Где начало то и что делать???
     
  6. 1d37r

    1d37r Читатель

    Заблокирован
    Регистр.:
    16 сен 2007
    Сообщения:
    287
    Симпатии:
    48
    соре...

    Обеспечение безопасности
    Кратко.
    Для обеспечения безопасности, естественно, нужно следовать обычным правилам - сложный пароль и т.д.

    Кроме этого, нужно установить настройки пхп в соответствии с требованиями системы.(не рекомендованные настройки будут подсвечены красным цветом в админ.панели внизу).

    .htaccess

    Кроме того, рекомендуется защитить папку администратор с помощью .htaccess (Следует заметить, что администратор сервера может запретить использование .htaccess на вашем сервере, в любом случае лучше обратиться за информацией к адмимистратору.) действие которого распространяется на каталог, в котором он находится, и все покаталоги этого каталога.

    Для этого необходимо(сначала делаем на локалке под виндовс) скачать программу htpasswd.exe запускаем и вводим следующую команду
    Таким образом доступ к папке administrator будет иметь пользователь с логином [admin_login] и соответствующим паролем.

    Для добавления пользователя, имеющего доступ к administrator необходимо выполнить ту же команду только без ключа -ц т.е.:
    Затем необходимо создать файл .htaccess следующего содержания :
    Затем оба файла необходимо закачать в папку administrator.

    Конфигурирование файла .htaccess имеет очень важное значение для защиты сервера.

    Так, если вы хотите запретить доступ к папке пользователю с определённым ip-адресом, то в файл необходимо вписать следущие строчки(в файл .htaccess:(
    так, мы запрещаем пользователю с адресом 195.1.1.1 доступ к папке. Если же мы напишем вместо 164.1.1.1 164.1.1 то запретим доступ к папке для всей сети класса 164.1.1

    Определения файла по умолчанию с помощью директивы DirectoryIndex.

    Вообще все директивы сервера Apache можно посмотреть тут

    Обычно, при доступе в директорию файлом по умолчанию является index.html или index.php

    Для переопределения файла добавляем в .htaccess следующие строчки
    При обращении к каталогу Apache попытается найти один из указанных файлов и показать посетителю его содержимое, а если сделать этого не получится, сервер выдаст пользователю список файлов в каталоге.

    Для запрета выдачи списка файлов необходимо использовать следующую директиву(в том же файле .htaccess )
    (с) http://www.joomla-docs.ru/Обеспечение_безопасности

    Я конечно сомневаюсь, что это уже в предалах темы, т.к. безопасность джумлы и правильная настройка php.ini это разные вещи, но для интересующихся:
    Статья "PHP: секреты файла php.ini"
    Часть. 1 http://hostinfo.ru/articles/621
    Часть. 2 http://hostinfo.ru/articles/626
    Часть. 3 http://hostinfo.ru/articles/633
    Часть. 4 http://hostinfo.ru/articles/636
    У меня где-то была хорошая статья на эту тему, только немогу найти =/
     
    AlexeyyexelA, r00y, Serberg и ещё 1-му нравится это.
  7. Scaltro

    Scaltro

    Регистр.:
    15 сен 2007
    Сообщения:
    1.091
    Симпатии:
    73
    Интересные статейки...
    А вопрос, конфигурация апач где находится?
     
  8. 1d37r

    1d37r Читатель

    Заблокирован
    Регистр.:
    16 сен 2007
    Сообщения:
    287
    Симпатии:
    48
    Смотри тут:
    /apache/conf/httpd.conf
    /etc/apache/httpd.conf
    /etc/httpd.conf
    /etc/httpd/conf
    /etc/httpd/conf/httpd.conf
    /http/httpd.conf
    /usr/local/apache/conf/httpd.conf
    /usr/local/apache/httpd.conf
    /usr/local/apache1.3/conf/httpd.conf
    /usr/local/apache2/conf/httpd.conf
    /usr/local/etc/apache2/httpd.conf
    /usr/local/etc/httpd/conf
    /var/apache/conf/httpd.conf
    /var/www/conf
    /www/apache/conf/httpd.conf
    /www/conf/httpd.conf
    Или тут:
    ../../../../../../usr/local/apache/conf/httpd.conf
    ../../../../../../usr/local/apache2/conf/httpd.conf
    ../../../../../../etc/httpd/conf/httpd.conf
    ../../../../../../etc/apache/conf/httpd.conf
    ../../../../../../usr/local/etc/apache/conf/httpd.conf
    ../../../../../../etc/apache2/httpd.conf
    ../../../../../../../../../usr/local/apache/conf/httpd.conf
    ../../../../../../../../../usr/local/apache2/conf/httpd.conf
    ../../../../../../../../usr/local/apache/httpd.conf
    ../../../../../../../../usr/local/apache2/httpd.conf
    ../../../../../../../../usr/local/httpd/conf/httpd.conf
    ../../../../../../../usr/local/etc/apache/conf/httpd.conf
    ../../../../../../../usr/local/etc/apache2/conf/httpd.conf
    ../../../../../../../usr/local/etc/httpd/conf/httpd.conf
    ../../../../../../../usr/apache2/conf/httpd.conf
    ../../../../../../../usr/apache/conf/httpd.conf
    ../../../../../../../usr/local/apps/apache2/conf/httpd.conf
    ../../../../../../../usr/local/apps/apache/conf/httpd.conf
    ../../../../../../etc/apache/conf/httpd.conf
    ../../../../../../etc/apache2/conf/httpd.conf
    ../../../../../../etc/httpd/conf/httpd.conf
    ../../../../../../etc/http/conf/httpd.conf
    ../../../../../../etc/apache2/httpd.conf
    ../../../../../../etc/httpd/httpd.conf
    ../../../../../../etc/http/httpd.conf
    ../../../../../../etc/httpd.conf
    ../../../../../opt/apache/conf/httpd.conf
    ../../../../../opt/apache2/conf/httpd.conf
    ../../../../var/www/conf/httpd.conf
    ../../../private/etc/httpd/httpd.conf
    ../../../private/etc/httpd/httpd.conf.default
    ../../Volumes/webBackup/opt/apache2/conf/httpd.conf
    ../../Volumes/webBackup/private/etc/httpd/httpd.conf
    ../../Volumes/webBackup/private/etc/httpd/httpd.conf.default
    ../../../../../../../../../Program Files\Apache Group\Apache\conf\httpd.conf
    ../../../../../../../../../Program Files\Apache Group\Apache2\conf\httpd.conf
    ../../../../../../../../../Program Files\xampp\apache\conf\httpd.conf
    ../../../../../../../../../usr/local/php/httpd.conf.php
    ../../../../../../../../../usr/local/php4/httpd.conf.php
    ../../../../../../../../../usr/local/php5/httpd.conf.php
    ../../../../../../../../../usr/local/php/httpd.conf
    ../../../../../../../../../usr/local/php4/httpd.conf
    ../../../../../../../../../usr/local/php5/httpd.conf
    ../../../../../../../../../Volumes/Macintosh_HD1/opt/httpd/conf/httpd.conf
    ../../../../../../../../../Volumes/Macintosh_HD1/opt/apache/conf/httpd.conf
    ../../../../../../../../../Volumes/Macintosh_HD1/opt/apache2/conf/httpd.conf
    ../../../../../../../../../Volumes/Macintosh_HD1/usr/local/php/httpd.conf.php
    ../../../../../../../../../Volumes/Macintosh_HD1/usr/local/php4/httpd.conf.php
    ../../../../../../../../../Volumes/Macintosh_HD1/usr/local/php5/httpd.conf.php
    /usr/local/etc/apache/vhosts.conf
    Поподробней тут:
    http://forum.antichat.ru/showthread.php?t=11696
    И тут:
    http://forum.antichat.ru/thread49775.html
     
  9. Scaltro

    Scaltro

    Регистр.:
    15 сен 2007
    Сообщения:
    1.091
    Симпатии:
    73
    Нет у меня на сервере таких папок :nezn:
    Есть только etc, но в ней только папка моего пришитого домена и всё...
    Ну да ладно забьём, меня заинтересовал вопрос по поводу htpasswd.exe, я скачал эту прогу, запускаю её, а она быстро закрывается, как быть?
     
  10. 1d37r

    1d37r Читатель

    Заблокирован
    Регистр.:
    16 сен 2007
    Сообщения:
    287
    Симпатии:
    48
    По поводу конфигов апача, то тебе нужно обратится к хостеру, посмотри у себя на хосте phpinfo и если тебя, что-то не устроит пиши хостеру, что бы менял.