10 рекомендаций по улучшению безопасности вашего сайта

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

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

  1. Используйте сложные логины и пароли
  2. Не устанавливайте слишком много сторонних расширений.
  3. Установите правильные права на файлы и папки
  4. Защитите вход в админпанель
  5. Используйте файерволлы.
  6. Используйте SSL сертификат для домена
  7. Следите ежедневно за своим сайтом.
  8. Своевременно обновляйте Joomla и расширения.
  9. Правильно сконфигурируйте PHP.
  10. Выбирайте надежный хостинг.

Примечание: Мы специально не называем здесь никаких приложений для Joomka, так как любое расширение может содержать уязвимый код, даже если оно нацелено на безопасность.

1. Используйте сложные логин и пароль

После установки Joomla не оставляйте логин adminи пароль по умолчанию. Замените логин и задайте сложный пароль, такой чтобы злоумышленники не могли его угадать.  Задайте длинный, сложный пароль и храните его в записной книжке или  в менеджере паролей таком как IPasswordили KeePass.

2. Не устанавливайте слишком много расширений

Joomal стала такой мощной и универсальной платформой благодаря своим расширениям, которые можно легко установить. Но большая сила влечет за собой большую ответственность! Большинство взломов происходят из-за несовершенства сторонних расширений.

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

Удаляйте полностью те расширения, которыми вы не пользуетесь. Не выключайте, а деинсталлируйте. Проверяйте, не осталось ли в базе данных таблиц от удаленных расширений. Лишний код на вашем сайте увеличивает количество потенциальных уязвимостей.

И наконец, регулярно изучайте официальные релизы  VulnerableExtensionsList.

3. Установите права на файлы и папки

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

В типичной установке Joomla права должны быть настроены следующим образом:

  • Папки – 0755 – только владелец может записывать файлы в папку, остальные могут читать и исполнять.
  • Файлы – 0644 – только владелец может записывать в файл, остальные только читать
  • PHP – 0444 – никто не может записывать в файл

И наконец, никогда не используйте права 777. Это позволит любому просматривать и корректировать ваши файлы. Это особенно важно,  если у вас виртуальный хостинг. Любой другой пользователь хостинга может получить доступ к вашим файлам.

4. Защитите панель администратора.

Закройте папку administrator паролем для большей безопасности. Это можно сделать вручную, используя файл .htaccess или в панели управления хостингом. 

5. Используйте файерволлы.

Веб приложение фаерволл действует как фильтр,  отслеживает HTTP запросы. Вы можете установить такое приложение, как ModSecurity или использовать облачное решение. Использование файерволла даст вам слеующие возможности:

  • Защита от спаботов
  • Защита от подбора пароля
  • Защита админпанели
  • Защита от DDoSатак
  • Защита от SQLинъекций
  • И др. 

6. Установите SSl сертификат

Чтобы защитить канал связи между вашими посетителями и веб-сайтом, вам необходимо зашифровать передаваемые данные используя SSL. Даже если вы не занимаетесь э-коммерцией или платежами, выполнение протокола HTTPS и наличие SSL сертифката улучшит безопасность вашего сайта, путем защиты логина и пароля, под которыми вы и ваши коллеги входите на сайт. В ином случае логин и пароль пересылаются через канал в  виде простого нешифрованного текста. 

7. Следите за вашим сайтом всегда

Как вы узнаете работает ли ваш сайт? Вы должны мониторить его постоянно, чтобы быть уверенным, что он не взломан. Если появиться проблема, вы получите уведомление по СМС.

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

8. Своевременно обновляйте Joomla и расширения

Наиболее важная часть управления сайтом на Joomla– это регулярные обновления. Большинство релизов содержит обновления безопасности. Поэтому игнорировать их плохая идея.

К счастью, Joomlaимеет встроенную систему проверки наличия новых версий для ядра и приложений. Большинство расширений поддерживают эту систему, а с 10 января 2017 года Joomlaввела требование обязательной поддержки этой системы для всех расширений из официального каталога.

Обязательно сохраняйте сайт перед обновлением.

9. Правильно сконфигурируйте PHP 

PHP язык на котором написана Joomla и ее расширения. Чтобы увеличить безопасность мы рекомендуем следующие настройки конфигурации PHP:

  • expose_php = 0
    Cкрывает версию PHP в отклике, так что хакер не сможет узнать какие уязвимости скрываются в вашей версии.
  • open_basedir = “/var/www/yoursite.com:/tmp/”
    Задает белый список директориев. Это предупредит попытки хакеров получить доступ к другим частям вашего сайта.
  • display_errors = 0 
    Не показывать ошибки, так как злоумышленник может извлечь из этого полезную для себя информацию.
  • disable_functions = exec, passthru, shell_exec, system, proc_open, proc_close, proc_terminate, popen, curl_exec, curl_multi_exec, show_source, posix_kill, posix_getpwuid, posix_mkfifo, posix_setpgid, posix_setsid, posix_setuid, posix_setuid, posix_uname, php_uname, syslog
    Запрет опасных PHP методов, чтобы хакеры не смогли ими воспользоваться. 

Вам также можете запретить следующие опции:

  • allow_url_fopen = 0
  • allow_url_include = 0

Не позволять PHP открывать удаленные URL, потому что удаленный контент может быть небезопасным.

  • file_uploads = 0 
    Запретить загрузку файлов, если ваш сайт в этом не нуждается. Однако, если необходимо загружать файлы в медиа менеджере, эту опцию следует оставить

10. Выберите надежный хостинг

Наконец выбирайте хостинг, который обеспечит своевременное обновление версии PHP.