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:
- Установка через Менеджер пакетов: Установите компонент iskfileguardian2x из официального репозитория MODX или загрузив пакет вручную через Менеджер пакетов в панели управления.
-
Настройка системных параметров:
После установки перейдите в раздел «Системные настройки» MODX, выберите пространство имен
iskfileguardian2x
и сконфигурируйте необходимые параметры компонента (подробнее см. раздел 6). - Инициализация хэшей ядра: Во вкладке компонента «Хеши ядра» (в CMP) нажмите кнопку «скачать ядро». Процесс может занять некоторое время (около минуты или более), в течение которого будет скачан официальный дистрибутив вашей версии MODX и созданы эталонные хэши файлов ядра.
- Настройка 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.
Контролируйте всё. Получайте уведомления мгновенно.