Обзоры расширений Joomla

 

В предыдущей статье «Защита Joomla (часть 1). Безопасный пароль» я привёл список того, что можно делать для повышения защиты сайта от взлома. Далеко не все эти пункты относились исключительно к Joomla. Более того, многие из них относятся как к динамическим так и к статическим сайтам. В этой части будут рассматриваться вопросы хостинга и надёжного хранения паролей. А безопасный хостинг актуально для любого сайта, как и надёжное хранение паролей.

Хранение паролей

Хранение паролейДопустим, Вы используете разные логины и пароли для разных учётных записей (административной зоне сайта, FTP, базе данных и так далее). Допустим, эти пароли отвечают всем требованиям безопасности. Но все мы люди, и запомнить большое количество паролей типа GG67ej4*j4b%d2vHyq8 очень сложно, если вообще возможно. Рекомендую иметь «твёрдую» актуальную копию всех учётных записей и параметров доступа где-нибудь в защищённом месте. Например, в сейфе. И лучше, чтобы о наличии такого документа никто не знал и не имел к нему доступ. Компьютерные вирусы к нему точно не доберутся. Но этот вариант не удобен в повседневном использовании. Крайне сложно постоянно подсматривать в бумажку и вводить пароли для доступа к сайту.

Рекомендую использовать специальные программные средства для хранения подобной информации в зашифрованном виде. Такие средства встроены, например, в Norton Internet Security и Kaspersky Internet Security (и более ранние версии). Или же они выполнены самостоятельным программным обеспечением, например, Kaspersky Password Manager (стоимость около 286 грн. на 09.10.2011). В подобных продуктах пароли хранятся в зашифрованном виде и Вам нужно запомнить только один мастер-пароль для доступа к этой программе. За счёт этого достигается баланс между удобством использования паролей и надёжностью. Так же можно воспользоваться менеджерами закладок для браузеров с функциями шифрования данных. Например, Xmarks, Firefox Sync, Opera Link, LastPass. Среди них, в основном, все бесплатные версии поддерживают шифрование данных.

Защита Joomla от взлома не может быть полноценной без надлежащего отношения к хранению и использованию паролей.

Более подробно о менеджерах закладок Вы можете прочитать в моих предыдущих статьях: «Менеджеры закладок Xmarks, Firefox Sync, Opera Link, LastPass», «Xmarks менеджер паролей», «Firefox Sync. Синхронизация закладок Firefox», «Opera Link. Менеджер паролей в Opera». Более того, такие браузеры как Mozilla Firefox и Opera предоставляют возможность установить мастер-пароль для доступа к сохранённым паролям и логинам. Настоятельно рекомендую этим воспользоваться.

Касательно сохранения паролей в FTP клиентах, также советую, по возможности, установить мастер-пароль. Total Commander, например, позволяет это сделать. И тогда Ваши учётные данные будут храниться в зашифрованном виде. Даже, если злоумышленник получит файл с паролями, то ему понадобится время на его расшифровку.

При покупке хостинга Вам на электронную почту будет выслано письмо с логинами, паролями и настройками для Вашей учётной записи. Сохраните его на компьютере, распечатайте, а затем обязательно удалите с почты. Так как есть вероятность взлома Вашего почтового ящика. И тогда все данные могут оказаться в руках злоумышленников. Против этого может помочь обращение в службу технической поддержки Вашей хостинг-компании.

Можно сделать вывод, что защита Joomla 1.7 (как и вообще защита сайта) не будет комплексной и эффективной, если хранение паролей не организованно на высоком уровне. Не маловажным, а может быть и одним из самых важных, является грамотно выбранный и настроенный безопасный хостинг. Именно безопасный хостинг (лучше не виртуальный, а VDS/VPS) поможет Вам построить качественную защиту сайта.

Хостинг

Защита сайта, как Вы уже могли понять - это сложная задача, требующая комплексного подхода. Проблема выбора хостинга - это очень сложный и многогранный вопрос. Если Вы готовы выделить много денег для своего сайта, то, с точки зрения безопасности (и не только), лучше нанять опытного сотрудника, который сможет выбрать необходимое оборудование, программное обеспечение, сможет всё это настроить и поддерживать 24 часа в сутки 7 дней в неделю. Для большей уверенности, перед покупкой оборудования и программного обеспечения, нужно проконсультироваться у различных фирм и отдельных специалистов. Но это очень дорогой и трудо затратный способ. Дешевле и быстрее воспользоваться услугами хостинг-провайдера.

Перед выбором хостинга следует учесть системные требования, которые предъявляет Joomla (1.6, 1.7, 2.5 (на 14.09.2012)) к хостингу. А именно:

  • PHP – минимально от версии 5.2.4 и выше. Рекомендовано версия 5.3 и выше.
  • MySQL – минимальная и рекомендованная версия 5.0.4 и выше.
  • Apache – минимальная и рекомендованная версия 2.х и выше с поддержкой mod_mysql, mod_xml, and mod_zlib.
  • Microsoft IIS – минимальная и рекомендованная версия 7 и выше.

Безопасный хостингЗащита Joomla 1.7 должна быть продумана максимально полно. Хранение паролей и безопасный хостинг это важные но не единственные вопросы, о которых необходимо позаботится. Но хочу ещё раз подчеркнуть, что качественный, профессиональный, безопасный хостинг это весьма приоритетная задача, стоящая перед владельцами сайтов.

В основном все современные хостинги поддерживают данную конфигурацию, но всё равно стоит об этом узнать до оплаты и заключения договора. Также не стоит забывать и о системных требованиях сторонних расширений, которые будут у Вас на сайте (если Вы их установите). Но, как правило, они совпадают с системными требованиями Joomla. В качестве примера, приведу системные требования такого распространённого расширения для создания интернет магазинов под Joomla как VirtueMart 1.1.9. На момент написания статьи (09.10.2011) установка и работа VirtueMart 1.1.9 в Joomla 1.7 сопровождается большим количеством проблем. Официальной поддержки VirtueMart 1.1.9 в Joomla 1.7 нет.

  • PHP – минимально от версии 4.2 и выше. Рекомендовано версия 5.2 и выше. Должна быть возможность поддержки HTTPS (openSSL) и cURL. Безопасный режим обязательно должен быть выключен.
  • MySQL – минимально от версии 3.23 и выше. Рекомендовано версия 5.0 и выше.
  • Apache – минимально от версии 1.3.19 и выше с поддержкой mod_mysql, mod_xml, и mod_zlib. Рекомендовано версия 2.2 и выше с поддержкой mod_mysql, mod_xml, и mod_zlib.

Если у Вас, например, сайт-визитка с небольшим количеством посетителей, то Вам вполне подойдёт «общий» хостинг. Около 90 – 340 грн. в год (в зависимости от количества субдоменов, баз данных и FTP аккаунтов). Если для повышения защищённости Вашего сайта Вы захотите использовать выделенный IP адрес и SSL-сертификат, то тогда Вам придётся оплатить более дорогой тарифный план. Около 540 – 920 грн. за хостинг (в зависимости от количества субдоменов, баз данных и FTP аккаунтов) и около 292 грн. в год за выделенный IP адрес. SSL-сертификат можно получить бесплатный (об этом поговорим немного подробнее в дальнейшем). Платный SSL-сертификат может обойтись от 274 до 12325 грн. в год.

Если у Вас более серьёзный проект, то советую задуматься над выделенным виртуальным сервером (VDS/VPS). Это даст Вам немного больше защищённости и позволит выполнить настройку параметров безопасности на уровне сервера. В стоимость выделенного виртуального сервера входит стоимость выделенного IP адреса. Также Вы сможете установить SSL-сертификат и воспользоваться SSH-доступом. SSH - обеспечивает надёжную авторизацию и безопасную передачу данных по открытым каналам связи. Стоимость VDS/VPS составляет около 2400 – 5760 грн. в год (в зависимости от дисковой квоты, трафика, оперативной памяти, файлов подкачки и тактовой частоты процессора).

Если Ваш проект требует «уникальной» серверной среды, то для максимизации безопасности Вашего сайта можно арендовать выделенный сервер. Но это ещё более дорогое «удовольствие». Стоимость выделенного сервера в год может колебаться от 8640 до 19200 грн. (в зависимости от дисковой квоты, трафика, оперативной памяти, файлов подкачки, тактовой частоты процессора и количества IP адресов).

В случае с «общим» хостингом, Вам будет доступна графическая панель управления хостингом (например, cPanel или ISPmanager) и не нужно беспокоиться о настройке «серверной среды». Всё уже сделано. В случае с VDS/VPS и виртуальным сервером Вам необходимо будет или самостоятельно настроить «серверную среду» для нормального функционирования сайта или заплатить за её настройку профессионалам. Для более удобного пользования хостингом в дальнейшем, в случае с VDS/VPS и выделенным сервером рекомендую оплатить лицензию на панель управления хостингом. Например, стоимость лицензии ISPmanager на год составляет, приблизительно, 960 грн.

Итого из расчёта оплаты хостинга на один год (без стоимости доменного имени):

  1. «общий» хостинг. До 340 грн. Без возможности настройки SSL, SSH, выделенного IP адреса. Стоимость панели управления хостингом включена. Это самый дешёвый и «наименее безопасный» вариант.
  2. «общий» хостинг. До 920 грн. С возможностью настройки SSL и выделенного IP адреса. Но без учёта стоимости выделенного IP адреса и без возможности использования SSH. Со статическим IP адресом стоимость увеличивается до 1212 грн. Стоимость панели управления хостингом включена. При условии получения бесплатного или самого дешёвого SSL-сертификата (ещё плюс 274 грн.), можно достичь неплохого результата в повышении безопасности Вашего сайта за относительно небольшую сумму (1212 – 1486 грн.).
  3. VDS/VPS. До 5760 грн. С возможности настройки SSL, SSH и выделенным IP адресом. Стоимость панели управления хостингом не включена. Так же не включена стоимость работ по настройке «серверной среды», если это делает не Ваш сотрудник или не Вы лично. Получив бесплатный или оплатив минимальный SSL-сертификат (ещё плюс 274 грн.), и возможность настройки «серверной среды» и «отделившись» от общей массы сайтов, расположенных на «общем» хостинге, Вы получите весьма хороший «прирост безопасности» Вашего сайта.
  4. Выделенный сервер. До 19200 грн. С возможностью настройки SSL, SSH и выделенным IP адресом. Стоимость панели управления хостингом не включена. Так же не включена стоимость работ по настройке «серверной среды». В сочетании с квалифицированной настройкой, обслуживанием и «серьёзным» SSL-сертификатом Вы получите «максимальную» защиту на уровне сервера при «небольших» затратах. Под «небольшими» я понимаю затраты на аренду выделенного сервера по сравнению с покупкой и настройкой собственного.

Цены на хостинг («общий», VDS/VPS, выделенный сервер), SSL сертификаты и статический IP адрес действительны на 09.10.2011. Цены взяты с сайта хостинг-компании Bitte.

Рекомендую использовать выделенный IP адрес для сайта, так как Вы получаете возможность:

  • установки SSL-сертификата.
  • Создания анонимного FTP доступа.
  • Более высокую устойчивость Вашего сайта в условиях DoS-атакаи на сайты, расположенные на «общем» IP адресе.
  • Обращаться к вашему сайту по IP-адресу.
  • Независимость от веб-ресурсов «соседей» по физическому серверу, которых поисковые системы занесли в «чёрный список». Источник.

Этим не ограничиваются преимущества выделенного IP адреса, я перечислил основные, относящиеся к повышению безопасности сайта.

Рекомендую использовать SSL-сертификат. Он нужен для организации защищённого доступа к сайту по протоколу HTTPS. SSL-сертификат - это электронный документ, подтверждающий с высокой степенью надёжности отношение транзакций к тому или иному серверу. Кроме того, наличие на сервере SSL-сертификата может служить подтверждением легитимности компании и её юридического адреса, а также для создания защищённого канала, благодаря которому информация передаётся между клиентом и сервером в закодированном виде с целью предотвращения её перехвата и искажения во время пересылки. Источник. То есть настроенное HTTPS соединение при помощи SSL-сертификата позволит Вам защитить вводимые данные на Вашем сайте (логин, пароль, номера банковских карточек и так далее) по пути к серверу. Для сайтов, на которых не предусмотрена регистрация, ввод конфиденциальных данных и не критично подтверждение «личности» (или компании) владельца сайта SSL не нужен. Или, по крайней мере, он не так важен. Для интернет магазинов, крупных фирм, заботящихся, о своей репутации, сайтов, хранящих данные своих клиентов, SSL-сертификат весьма важный контур в обеспечении безопасности сайта.

SSL-сертификат позволяет просматривать следующую информацию:

  • доменное имя, на которое оформлен SSL-сертификат.
  • Юридическое лицо - владелец сертификата.
  • физическое местонахождение (город, страна).
  • Срок действия сертификата.
  • Реквизиты компании-поставщика SSL-сертификата. Источник.

Использование SSL-сертификата позволяет Вам выполнить следующие условия безопасности:

  • Подлинность. Клиент всегда может быть уверен, что полученная им информация отправлена с указанного адреса, а сам адрес принадлежит компании, на имя которой выдан сертификат.
  • Конфиденциальность. Благодаря шифрованию перехват информации на пути от сервера к клиенту становится невозможным.
  • Целостность. Информация, защищённая сертификатом, не может быть изменена во время сеанса передачи данных через интернет. Источник.

Однако стоит помнить о том, что выбор и хранение SSL-сертификата это ответственный вопрос. Так как завладев Вашим сертификатом, любой сможет выдать свой сайт за Ваш, а выбрав «ненадёжный» центр сертификатов, можно попасть в «нехорошую» историю. Это может нанести огромный ущерб репутации Вашей фирме или лично Вам. Вспомните истории со взломанными центров сертификатов DigiNotar и COMODO.

Можно сказать, что SSH доступ чем-то отдалённо напоминает HTTPS соединение. SSH позволяет безопасно передавать в незащищённой среде практически любой другой сетевой протокол. Таким образом можно не только удалённо работать на компьютере через командную оболочку, но и передавать по шифрованному каналу звуковой поток или видео (например, с веб-камеры). Также SSH может использовать сжатие передаваемых данных для последующего их шифрования, что удобно, например, для удалённого запуска клиентов X Window System. Источник.

Возвращаемся непосредственно к настройкам хостига. Отключив параметр Register Globals (доступно для любого хостинга (если это позволяет политика компании хостера), но требует обращение в службу технической поддержки), можно повысить защищённость сайта на уровне PHP. Отключение Register Globals не так актуально с версии PHP 5.3. Источник. Joomla не использует Register Globals. Поэтому Вы не потеряете в функциональности. В Joomla есть специальный механизм, отключающий Register Globals несмотря на глобальные установки PHP (источник Saitcreate.ru), но всё равно позаботитесь об отключении этой опции. Проверить состояние данной настройки можно в информации о системе, вкладка Параметры PHP (для Joomla).

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

Register Globals можете смело отключать. А вот включение безопасного режима (если Вам это доступно) требует осмысленного подхода и проверки работоспособности сайта. Более того изначально этот режим был создан для повышения защищённости сайта. Но в последствии стал причиной большого количества ошибок.

Также рекомендую в настройках PHP отключить allow_url_fopen (позволяет хакеру загрузить свои собственные PHP скрипты на сервер. В итоге он сможет получить полный доступ к серверу), allow_url_include (позволяет хакеру загрузить свои собственные PHP скрипты на сервер. В итоге он сможет получить полный доступ к серверу) и включить disable_functions (отключает опасные PHP функции. Рекомендуется отключить: show_source, system, shell_exec, passthru, exec, phpinfo, popen, proc_open), open_basedir (ограничивает доступ только к определенным папкам). Но при использовании open_basedir занесите папку с сайтом, папку с временными файлами сайта и сервера, папку с отчётами и папку с конфигурационным файлом (если он лежит вне папки сайта) в исключения.

open_basedir=/hosting/akkaunt/www/aleksius.com:/hosting/akkaunt/tmp:/hosting/akkaunt/log

Если на Вашем хостинге разрешено изменять настройки PHP самостоятельно, то добавьте файл php.ini в корень с сайтом содержащий следующий текст:

register_globals=Off
safe_mode=Off
allow_url_fopen=Off
allow_url_include=Off
disable_functions=show_source, system, shell_exec, passthru, exec, phpinfo, popen, proc_open
open_basedir=ХХХ:УУУ

где ХХХ и УУУ путь к каталогу временных файлов и логов.

Но будьте очень внимательны при настройке PHP! Обязательно протестируйте сайт после применения настроек. При отключении allow_url_fopen в Joomla 1.7 Вы не сможете пользоваться автоматическими обновлениями в менеджере расширений. При отключении shell_exec Вам будет недоступно YUI Compressor при сжатии JavaScript файлов. Например, при использовании WEBO Site SpeedUp (детальнее в статье «WEBO Site SpeedUp. Ускорение сайта Aleksius.com»).

Ещё одним немаловажным фактором повышения и поддержания безопасности сайта является компетентность и доступность технической поддержки хостинга. Техническая поддержка должна быть круглосуточной без перерывов и выходных. Более того. Советую при Выборе хостинга подумать о «каналах связи» со специалистами этой компании. Желательно, чтобы было несколько каналов связи (ICQ, электронная почта, система тикетов, телефон и так далее). И, конечно же, Вам будет намного проще, если специалисты хостинга будут говорит с Вами на Вашем родном языке.

Учитывая тот факт, что в мире активно развиваться всевозможные «репутационные» сообщества (например, WOT, Norton Safe Web и так далее), необходимо учитывать репутацию Вашего будущего хостера. За этим сложно, но можно проследить. Например, поискать отзывы в интернете о интересующей Вас компании. Не рекомендую использовать бесплатные хостинги в качестве размещения сайта с повышенными требованиями к его защищённости и репутации.

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

В следующей статье «Защита Joomla (часть 3). Обновление» я рассмотрю более подробно вопросы обновления Joomla и её расширений, вкратце затрону тему необходимости скрытия следов того, что сайт сделан при помощи системы управления контентом Joomla и поговорим об организации доступа к FTP, базе данных сайта и панели управления хостингом. Надеюсь, что ознакомившись со всеми статьями данного цикла защита сайта станет для Вас менее запутанным вопросом.

 

Полезные ссылки:

Похожие статьи: