1. Общее описание

iskfileguardian2x — это компонент для MODX Revolution 2.x, представляющий собой автоматическую систему для мониторинга целостности файлов как всего веб-сайта, так и ядра MODX. Компонент позволяет эффективно выявлять любые изменения, включая модификации, добавления и удаления файлов. При обнаружении несоответствий, iskfileguardian2x способен отправлять уведомления администратору по электронной почте (Email) и через мессенджер Telegram. Все производимые действия и события логируются, а результаты проведенных сканирований доступны для анализа через интуитивно понятный встроенный интерфейс в панели управления MODX.

2. Целевая платформа

  • MODX Revolution 2.x

3. Ключевые возможности

Компонент iskfileguardian2x предоставляет широкий набор функций для обеспечения безопасности и контроля файловой системы вашего сайта:

  • Мониторинг изменений файлов:

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

    • Сравнение файлов текущей установки MODX с файлами официального релиза соответствующей версии.
    • Вычисление контрольных сумм для файлов ядра и отслеживание любых расхождений.
    • Гибкая настройка путей, относящихся к ядру, и определение шаблонов исключений для более точного анализа.
  • Расширенные настройки исключений:

    • Возможность исключать из процесса проверки любые файлы и папки, используя гибкие паттерны (например, маски файлов, указание поддиректорий, фильтрация по расширениям и т.д.).
    • Ведение раздельных списков исключений для сканирования файлов сайта и файлов ядра MODX.
  • Гибкая система уведомлений:

    • Отправка уведомлений о любых обнаруженных изменениях по Email, с поддержкой настраиваемых шаблонов писем и возможностью указания нескольких получателей.
    • Мгновенные оповещения о критических изменениях через Telegram.
    • Кастомизация формата сообщений с использованием чанков MODX, что позволяет адаптировать их под конкретные нужды.
    • Раздельная конфигурация настроек уведомлений для событий, связанных с файлами сайта и файлами ядра.
  • Подробная история и отчеты:

    • Все результаты проверок и актуальные статусы файлов (например, добавлен, изменен, удален) записываются в специализированные таблицы базы данных.
    • Удобный встроенный интерфейс для просмотра истории сканирований, системных логов и отправленных уведомлений.
    • Сохранение детализированных отчетов о каждом запуске проверки, с подробной информацией по каждому файлу, подвергшемуся изменениям.
  • Высокая производительность и безопасность:

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

4. Требования

Для корректной работы компонента iskfileguardian2x необходимо соблюдение следующих условий:

  • CMS: MODX Revolution 2.x или выше.
  • PHP: Версия 7.2 или выше.
  • Расширения PHP:
    • curl (для скачивания дистрибутивов ядра MODX)
    • zip (для распаковки архивов)

5. Установка

Процесс установки компонента iskfileguardian2x стандартен для MODX:

  1. Установка через Менеджер пакетов: Установите компонент iskfileguardian2x из официального репозитория MODX или загрузив пакет вручную через Менеджер пакетов в панели управления.
  2. Настройка системных параметров: После установки перейдите в раздел «Системные настройки» MODX, выберите пространство имен iskfileguardian2x и сконфигурируйте необходимые параметры компонента (подробнее см. раздел 6).
  3. Инициализация хэшей ядра: Во вкладке компонента «Хеши ядра» (в CMP) нажмите кнопку «скачать ядро». Процесс может занять некоторое время (около минуты или более), в течение которого будет скачан официальный дистрибутив вашей версии MODX и созданы эталонные хэши файлов ядра.
  4. Настройка CRON-заданий (рекомендуется): Для автоматического мониторинга настройте выполнение скриптов сканирования через CRON (подробнее см. раздел 7.2).

6. Настройка компонента (Системные параметры)

Все основные настройки компонента iskfileguardian2x производятся через «Системные настройки» MODX в пространстве имен iskfileguardian2x.

6.1. Основные:

  • iskfileguardian2x.enabled: Включить/выключить компонент (Да/Нет).
  • iskfileguardian2x.scan_dirs: Директории для сканирования файловой системы сайта. Указывайте каждый путь с новой строки (например, assets/images/, core/components/mycomponent/).
  • iskfileguardian2x.exclude_paths: Паттерны исключения для сканирования файлов сайта. Каждый паттерн указывается с новой строки. Можно использовать маски (например, *.log, temp/*, assets/cache/).
  • iskfileguardian2x.hash_algo: Алгоритм хеширования, используемый для файлов (рекомендуется sha256, также доступен md5).

6.2. Ядро MODX:

  • iskfileguardian2x.core.enabled: Включить отдельную проверку целостности ядра MODX (Да/Нет).
  • iskfileguardian2x.core_modx_ver: Версия ядра MODX для сравнения. Обычно определяется автоматически при скачивании хэшей.
  • iskfileguardian2x.core.hashes_url: Путь (URL или локальный путь) для хранения файла с эталонными хэшами ядра. По умолчанию компонент управляет этим автоматически.
  • iskfileguardian2x.core_paths: Пути, которые считаются частью ядра MODX и подлежат проверке (например, core/, manager/). Каждый путь с новой строки.
  • iskfileguardian2x.exclude_patterns: Паттерны исключения для проверки ядра (например, core/config/config.inc.php, core/cache/*). Каждый паттерн с новой строки.

6.3. Уведомления (Email):

  • iskfileguardian2x.em.enabled: Включить уведомления об изменениях по электронной почте (Да/Нет).
  • iskfileguardian2x.em.to_addr: Email-адреса получателей уведомлений (можно указать несколько адресов через запятую).
  • iskfileguardian2x.em.from_addr: Email-адрес отправителя уведомлений.
  • iskfileguardian2x.em.subj_chunk: Название чанка MODX для формирования темы письма уведомления.
  • iskfileguardian2x.em.body_chunk: Название чанка MODX для формирования тела письма уведомления.
  • iskfileguardian2x.em.site_notify: Оповещать по Email об изменениях в файлах сайта (Да/Нет).
  • iskfileguardian2x.em.core_notify: Оповещать по Email об изменениях в файлах ядра MODX (Да/Нет).

6.4. Уведомления (Telegram):

  • iskfileguardian2x.tg.enabled: Включить уведомления об изменениях в Telegram (Да/Нет).
  • iskfileguardian2x.tg.bot_token: Токен вашего Telegram-бота.
  • iskfileguardian2x.tg.chat_id: Chat ID получателя или группы в Telegram.
  • iskfileguardian2x.tg.site_notify: Оповещать в Telegram об изменениях в файлах сайта (Да/Нет).
  • iskfileguardian2x.tg.core_notify: Оповещать в Telegram об изменениях в файлах ядра MODX (Да/Нет).

6.5. Логирование:

  • iskfileguardian2x.log_level: Минимальный уровень логирования событий компонента (например, INFO, ERROR).
  • iskfileguardian2x.log_storage: Способ хранения логов (Database — в таблице БД, или file — в файле).

7. Использование

7.1. Примеры сценариев

  • Автоматическая проверка по CRON:

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

  • Контроль целостности ядра MODX:

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

  • Мониторинг пользовательских файлов и компонентов:

    Вы можете гибко настроить компонент для мониторинга любых важных для вас папок, например, директорий с вашими собственными компонентами (core/components/myextra/, assets/components/myextra/) или папок с медиафайлами, при этом используя систему исключений для игнорирования временных файлов или кэша.

7.2. Настройка CRON-заданий

Для автоматического запуска сканирования настройте следующие CRON-задания на вашем сервере:

Проверка только ядра MODX:

/usr/bin/php8.1 /полный/путь/к/вашему/сайту/core/components/iskfileguardian2x/elements/cron/scan_core.php

(Замените /usr/bin/php8.1 на актуальный путь к интерпретатору PHP на вашем сервере и /полный/путь/к/вашему/сайту/ на реальный путь к корневой директории вашего MODX сайта).

Проверка всех файлов сайта (согласно настройкам iskfileguardian2x.scan_dirs):

/usr/bin/php8.1 /полный/путь/к/вашему/сайту/core/components/iskfileguardian2x/elements/cron/scan_site.php

(Аналогично, адаптируйте пути к PHP и сайту).

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

8. Встроенный интерфейс

Компонент iskfileguardian2x предоставляет удобный интерфейс управления, доступный в панели администратора MODX:

  • Просмотр файлов и хэшей: ExtJS-грид (таблица) для отображения списка отслеживаемых файлов, их текущих хэшей, статусов и истории изменений.
  • Управление хэшами: Возможность быстрого запуска генерации (или перегенерации) хэшей для файлов сайта или ядра прямо из интерфейса.
  • Управление отчетами и логами: Кнопки и инструменты для ручной очистки устаревших данных, просмотра детализированных отчетов по сканированиям и поиска по файлам и записям логов.

9. Система уведомлений

iskfileguardian2x обеспечивает своевременное информирование об обнаруженных изменениях:

  • Email-уведомления:
    • Поддержка отправки уведомлений на несколько Email-адресов одновременно.
    • Полная кастомизация темы и тела письма с использованием стандартных чанков MODX, что позволяет брендировать сообщения и включать в них любую необходимую информацию.
  • Telegram-уведомления:
    • Простая интеграция с вашим Telegram-ботом (требуется только указать токен бота и Chat ID получателя).
    • Сообщения в Telegram отправляются только при фактическом обнаружении новых, измененных или удаленных файлов, минимизируя информационный шум.
  • Условие отправки: Уведомления генерируются и отправляются только в том случае, если в ходе сканирования были зафиксированы изменения (новые, измененные или удаленные файлы) по сравнению с предыдущим состоянием или эталонными хэшами.

10. Структура базы данных

Компонент использует несколько таблиц в базе данных MODX для хранения своей информации:

iskfileguardian2x_hashes
Основная таблица, хранящая информацию о найденных файлах сайта (не ядра), их хэшах и статусах (например, added, modified, deleted, current).
iskfileguardian2x_core_hashes
Таблица для хранения эталонных хэшей файлов ядра MODX.
iskfileguardian2x_reports
Таблица, в которой сохраняются все результаты проведенных сканирований и формируются отчеты.
iskfileguardian2x_logs
Таблица для поддержки расширенного логирования действий компонента (если выбран способ хранения логов "Database").

11. Заключение

iskfileguardian2x — ваш персональный страж для файлов MODX.

Контролируйте всё. Получайте уведомления мгновенно.