Как бороться с уязвимостями: 4 шага к безопасности сайта

За 2018 год от уязвимостей пострадали самые популярные бесплатные CMS и панели управления — WordPress, Joomla, Drupal, Vesta CP. Впрочем, если вы используете коммерческие CMS, это не повод расслабляться: уязвимости есть и в них, просто о них не так широко известно.  Часто обновления безопасности “критические”, то есть от них зависит сохранность собственных и клиентских данных. Снизить вероятность потери данных можно, если поддерживать программное обеспечение сервера и компоненты сайта в актуальном состоянии. Ниже мы опишем 4 этапа комплексного обновления:

  1. Сделайте резервную копию файлов сайта, БД и конфигов VDS
  2. Проверьте на вирусы сервер и сайты
  3. Обновление окружения сервера
  4. Обновление сайта

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

1. Создайте резервную копию

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

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

На серверах без панели управления сделайте копию важных файлов/каталогов с помощью утилиты cp , либо заархивируйте их с помощью tar или zip. Не забудьте сделать копию каталога «/etc/ » — в нём хранятся файлы конфигурации сервера.

Экспортируйте дампы баз данных через веб-интерфейс phpMyAdmin или phpPgAdmin, либо воспользуйтесь утилитами mysqldump, pg_dump в консоли.

2. Проверьте на вирусы сервер и сайты

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

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

При наличии на сервере панели управления ISPmanager сайты можно проверить антивирусными модулями VirusDie или Revisium Antivirus в автоматическом режиме.

Если панели нет — проверьте сайты вручную, либо антивирусным сканером AIBolit.

Заражение более глубокого уровня выявить сложнее. Нужно проверить сервер на наличие на нём постороннего программного обеспечения, также можно провести аудит безопасности. Чаще всего устранить последствия такого взлома сложно. Самым простым вариантом будет перенос проектов на новый сервер или переустановка программного обеспечения на старом.

3. Приступаем к обновлению

Обновление окружения сервера

В большинстве современных дистрибутивов ОС семейства *NIX программы поставляются уже скомпилированными в виде пакетов, готовых к установке. Для управления пакетами и их зависимостями используется менеджер пакетов. Он устанавливает и обновляет пакеты из репозиториев — хранилищ программного обеспечения.

В основном на наших серверах используются дистрибутивы Linux: Ubuntu, Debian и CentOS. В Debian и Ubuntu используется пакетный менеджер apt, на CentOS — yum.

Обновление пакетов — это потенциально опасная процедура. Сервер может перестать запускаться из-за некорректно установленного ядра, возможны проблемы в работе отдельных служб. Поэтому не забывайте перед каждым обновлением делать бэкап.

Для запуска обновления выполните последовательно команды в консоли сервера:

Ubuntu, Debian

apt-get update
apt-get upgrade

CentOS

yum upgrade

 

На серверах с ISPmanager обновить программное обеспечение можно через интерфейс панели. Перейдите в раздел ISPmanager НастройкиВозможности и нажмите Обновить.

 

В открывшемся окне отметьте опции Обновить список доступного ПО и Обновить ПО, затем нажмите Ок.

После нажатия будут обновлены системные пакеты и панель управления. Дождитесь завершения фоновых заданий.

Обновление следует выполнять с особой осторожностью, если:

  • вы меняли конфигурацию служб вручную после настройки через панель
  • на сервере установлено программное обеспечение из сторонних репозиториев

Убедитесь, что сервер корректно загружается после обновления системы, и работа сайтов не нарушена.

Обновляем сайты

В грубом приближении все сайты можно разделить на 2 типа: основанные на готовом решении и самописные.

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

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

  • создание резервной копии файлов сайта и базы данных
  • проверка соответствия программного окружения сервера системным требованиям новой версии ядра сайта и плагинов
  • проверка прав доступа  — разрешите запись на необходимые для обновления файлы и каталоги
  • обновление ядра
  • обновление модулей и плагинов
  • проверка работы сайта и исправление недочетов

Отдельно хотелось бы остановиться на этапах обновления ядра и плагинов.

В популярных CMS, как правило, все процедуры можно сделать через админ-панель, но в ряде случаев может потребоваться ручное вмешательство. Подробнее в документациях к CMS: WordPress (базовая и расширенная инструкции), Joomla, Drupal, Bitrix.