
Эксплойт для CVE-2023-39361 в Cacti, решении для построения сетевых графиков, демонстрирующий уязвимость SQL-инъекции в образовательных целях и для тестирования безопасности.
Изменения в базе данных фиксируются в файле cacti.sql, который используется
для новых установок, а также фиксируются в обновлении базы данных установщика
для существующих установок. Поскольку номер версии не меняется до релиза в
ветке develop, что приведёт к тому, что обновление базы данных не запустится,
важно либо использовать скрипт обновления базы данных для принудительного
указания текущей версии, либо обновить версию в базе данных.
Когда Cacti был впервые разработан почти 20 лет назад, MySQL не был таким зрелым, как сейчас. Когда The Cacti Group занялась разработкой Cacti 1.x, было принято решение обязать пользователей использовать движок хранения InnoDB для многих таблиц. Это было сделано потому, что движок хранения InnoDB обеспечивает лучшее взаимодействие с пользователем, когда на вашем веб-сайте несколько одновременных входов в систему. Хотя он немного медленнее, он также обеспечивает большую устойчивость для разработчиков.
В связи с этим, перед обновлением вы ОБЯЗАНЫ выполнить несколько изменений в MySQL/MariaDB, и потребуется перезапуск службы. В зависимости от вашей версии MariaDB или MySQL, следующие настройки либо потребуются, либо уже включены по умолчанию:
[mysqld]
# required for multiple language support
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
# Memory tunables - Cacti provides recommendations at upgrade time
max_heap_table_size = XXX
max_allowed_packet = 500M
tmp_table_size = XXX
join_buffer_size = XXX
sort_buffer_size = XXX
# important for compatibility
sql_mode=NO_ENGINE_SUBSTITUTION,NO_AUTO_CREATE_USER
# innodb settings - Cacti provides recommendations at upgrade time
innodb_buffer_pool_instances = XXX
innodb_flush_log_at_trx_commit = 2
innodb_buffer_pool_size = XXX
innodb_sort_buffer_size = XXX
innodb_doublewrite = ON
# required
innodb_file_per_table = ON
innodb_file_format = Barracuda
innodb_large_prefix = 1
# not all version support
innodb_flush_log_at_timeout = 3
# for SSD's/NVMe
innodb_read_io_threads = 32
innodb_write_io_threads = 16
innodb_io_capacity = 10000
innodb_io_capacity_max = 20000
innodb_flush_method = O_DIRECT
Настройки required очень важны. В противном случае у вас возникнут проблемы при обновлении. Для настроек со значением XXX Cacti предоставит рекомендации во время обновления. Не редкость, когда во время обновления приходится перезапускать MySQL/MariaDB для настройки этих параметров. Пожалуйста, обратите на это особое внимание перед началом обновления.
Перед обновлением вам следует внести эти обязательные изменения, а затем перезапустить MySQL/MariaDB. После этого вы можете сэкономить время и избежать потенциальных ошибок, запустив следующие скрипты (при условии, что вы используете bash):
for table in `mysql -e "SELECT TABLE_NAME FROM information_schema.TABLES WHERE table_schema='cacti' AND engine!='MEMORY'" cacti | grep -v TABLE_NAME`;
do
echo "Converting $table";
mysql -e "ALTER TABLE $table ENGINE=InnoDB ROW_FORMAT=Dynamic CHARSET=utf8mb4" cacti;
done
Это преобразует все таблицы, будь то InnoDB или MyISAM, в формат файла Barracuda, динамический формат строк и utf8mb4. Обратите внимание, что если вы использовали MySQL или MariaDB без включённого innodb_file_per_table, вам, возможно, будет лучше создать резервную копию базы данных, сбросить InnoDB, удалив файлы ib* в каталоге /var/lib/mysql, после чего восстановить базу данных, таблицы и права MySQL/MariaDB. Прежде чем предпринимать такой шаг, всегда практикуйтесь на тестовом сервере, пока не почувствуете уверенность в этом изменении.
Удачи и приятного использования Cacti!
sudo -u cacti php -q cli/upgrade_database.php --forcever=`cat include/cacti_version`
update version set cacti = '1.1.38';
Примечание: Измените указанную выше версию на правильную, иначе установщик выполнит обновление с предыдущей версии.
Cacti — это комплексное решение для построения графиков сети, предназначенное для использования возможностей хранения данных и построения графиков RRDtool, предоставляющее следующие функции:
Удалённые и локальные сборщики данных
Обнаружение устройств
Автоматизация создания устройств и графиков
Шаблоны графиков и устройств
Пользовательские методы сбора данных
Контроль доступа для пользователей, групп и доменов
Всё это заключено в интуитивно понятный и простой в использовании интерфейс, который подходит как для установок масштаба локальной сети, так и для сложных сетей с тысячами устройств.
Разработанный в начале 2000-х годов Иэном Берри (Ian Berry) как школьный проект, он используется тысячами компаний и энтузиастов для мониторинга и управления своими корпоративными сетями и центрами обработки данных.
Cacti должен работать в любой операционной системе на базе Linux, UNIX или Windows при соблюдении следующих требований:
PHP 5.4+
MySQL 5.1+
RRDtool 1.3+, рекомендуется 1.5+
NET-SNMP 5.5+
Веб-сервер с поддержкой PHP
PHP также должен быть скомпилирован как автономный двоичный файл cgi или cli. Это требуется для сбора данных через cron.
Мы помечаем модуль php-snmp как необязательный. Если вы не используете устройства ipv6 или не используете идентификаторы движка snmpv3 или контексты, то использование php-snmp должно быть безопасным. В противном случае вам следует рассмотреть возможность удаления модуля php-snmp, так как он создаст проблемы. Мы знаем о проблеме с php-snmp и стремимся участвовать в проекте php для решения этих вопросов.
RRDtool доступен в нескольких версиях, и большинство из них поддерживаются Cacti. Пожалуйста, не забывайте проверять настройки Cacti для версии RRDtool, если у вас возникают проблемы с отображением графиков.
Документация доступна вместе с релизами Cacti, а также доступна для просмотра в Репозитории документации.
Посетите основной веб-сайт Cacti для загрузок, журналов изменений, примечаний к выпускам и многого другого!
Учитывая большие масштабы Cacti, форумы, как правило, генерируют значительный объём трафика. Ваш вклад в ответы на основные вопросы имеет большое значение, поскольку мы не можем быть везде одновременно. Внесите свой вклад в сообщество Cacti, участвуя в Форумах сообщества Cacti.
Примите участие в создании и редактировании документации Cacti! Сделайте форк, внесите изменения и отправьте pull request, чтобы помочь улучшить документацию на GitHub.
Примите участие в разработке Cacti! Присоединяйтесь к разработчикам и сообществу на GitHub!
Cacti обрабатывает сбор данных через концепцию источников данных. Источники данных используют методы ввода для сбора данных с устройств, хостов, баз данных, скриптов и т. д. Возможности сбора данных безграничны по своей природе. Источники данных являются прямой связью с базовыми файлами RRD; они определяют, как данные хранятся в файлах RRD и как данные извлекаются из файлов RRD.
Графики, сердце и душа Cacti, создаются RRDtool с использованием определённых определений источников данных.
Объединяя всё вместе, Cacti использует обширную систему шаблонов, которая позволяет создавать и использовать переносимые шаблоны. Шаблоны графиков, источников данных и RRA позволяют легко создавать графики и источники данных из коробки. Вместе с поддержкой сообщества Cacti шаблоны стали стандартным способом поддержки построения графиков для любого количества устройств, используемых в современных вычислительных и сетевых средах.
Поддержка локального и удалённого сбора данных с возможностью установки интервалов сбора. Ознакомьтесь с Data Source Profile в Cacti для получения дополнительной информации. Профили источников данных могут применяться к графикам при их создании или на уровне шаблона данных.
Удалённый сбор данных стал простым благодаря репликации ресурсов на удалённые сборщики данных. Даже при потере связи с основной установкой Cacti удалённый сборщик данных будет хранить собранные данные до восстановления соединения. Удалённый сбор данных требует только доступа MySQL и HTTP/HTTPS обратно к основному местоположению установки Cacti.
Cacti предоставляет администраторам ряд функций сетевой автоматизации для сокращения времени и усилий, затрачиваемых на настройку и управление устройствами.
Несколько определяемых правил обнаружения сети
Шаблоны автоматизации, определяющие, как настраиваются устройства
Cacti — это больше, чем система мониторинга сети; это операционная платформа, которая позволяет расширять и дополнять функциональность Cacti. The Cacti Group продолжает поддерживать набор плагинов. Если вы хотите добавить функции в Cacti, на GitHub есть довольно много справочных материалов на выбор.
Cacti позволяет выполнять множество изменений во время выполнения при просмотре графиков:
Динамически загружаемое дерево и просмотр графиков
Поиск по строке, типам графиков и шаблонов
Расширение возможностей просмотра
Простая настройка временных диапазонов
Удобные кнопки скользящего временного окна
Опция просмотра графика в реальном времени одним щелчком мыши
Простой экспорт графиков в csv
Просмотр RRA одним щелчком мыши
Поддержка разрешений для каждого пользователя и каждой группы на уровне каждой области (зоны Cacti), каждого графика, каждого дерева графиков, каждого устройства и т. д. Модель разрешений в Cacti основана на управлении доступом на основе ролей (RBAC), что позволяет гибко назначать разрешения. Поддержка принудительного применения сложности пароля, срока действия пароля и смены просроченных паролей.
Cacti поддерживает большинство возможностей построения графиков RRDtool, включая:
Полная правая ось
Сдвиг
Пунктир и смещение пунктира
Альтернативная сетка по Y
Без подгонки сетки
Длина единиц
Ширина вкладок
Динамические метки
Легенда правил
Положение легенды
VDEFs
Стеклянные линии
Определяемые пользователем ширины линий
Выравнивание текста
Copyright (c) 2004-2023 - The Cacti Group, Inc.