
Exploit per CVE-2023-39361 in Cacti, una soluzione di grafici di rete, che dimostra la vulnerabilità di SQL injection a scopo educativo e di test di sicurezza.
Le modifiche al database vengono salvate nel file cacti.sql che viene utilizzato per
le nuove installazioni e salvate nell'aggiornamento del database dell'installer per le installazioni
esistenti. Poiché il numero di versione non cambia fino al rilascio nel ramo
develop, il che comporterà la mancata esecuzione dell'aggiornamento del database, è
importante utilizzare lo script di aggiornamento del database per forzare la versione corrente
oppure aggiornare la versione nel database.
Quando Cacti fu sviluppato per la prima volta quasi 20 anni fa, MySQL non era maturo come lo è ora. Quando The Cacti Group si dedicò all'ingegneria di Cacti 1.x, fu presa una decisione per obbligare gli utenti a utilizzare il motore di archiviazione InnoDB per molte delle tabelle. Questo fu fatto perché il motore di archiviazione InnoDB offre una migliore esperienza utente quando il tuo sito web ha diversi accessi simultanei. Sebbene un po' più lento, offre anche una maggiore resilienza per gli sviluppatori.
Detto questo, ci sono diverse modifiche che DEVI apportare a MySQL/MariaDB prima dell'aggiornamento, ed è richiesto un riavvio del servizio. A seconda della tua versione di MariaDB o MySQL, le seguenti impostazioni saranno richieste oppure già abilitate come predefinite:
[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
Le impostazioni richieste sono molto importanti. Altrimenti, incontrerai problemi durante l'aggiornamento. Per le impostazioni con XXX, Cacti fornirà una raccomandazione al momento dell'aggiornamento. Non è insolito dover riavviare MySQL/MariaDB durante l'aggiornamento per ottimizzare queste impostazioni. Ti preghiamo di prenderne nota prima di iniziare l'aggiornamento.
Prima dell'aggiornamento, dovresti apportare queste modifiche richieste, quindi riavviare MySQL/MariaDB. Dopo di che, puoi risparmiare tempo e potenziali errori eseguendo i seguenti script (supponendo che tu stia usando 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
Questo convertirà tutte le tabelle che sono InnoDB o MyISAM al formato file Barracuda, formato riga dinamico e utf8mb4. Nota che, se hai utilizzato MySQL o MariaDB senza innodb_file_per_table impostato su on, potresti fare meglio a eseguire un backup del database, reimpostare InnoDB rimuovendo i file ib* nella directory /var/lib/mysql, e successivamente ripristinare il database e le tabelle e autorizzazioni di MySQL/MariaDB. Prima di compiere un passo del genere, dovresti sempre esercitarti su un server di test finché non ti senti a tuo agio con la modifica.
Buona fortuna e goditi Cacti!
sudo -u cacti php -q cli/upgrade_database.php --forcever=`cat include/cacti_version`
update version set cacti = '1.1.38';
Nota: Modifica la versione sopra con quella corretta o rischi che l'installer esegua l'aggiornamento da una versione precedente.
Cacti è una soluzione completa di grafici di rete progettata per sfruttare la potenza delle funzionalità di archiviazione dati e grafici di RRDtool, offrendo le seguenti caratteristiche:
Collector di dati remoti e locali
Scoperta dei dispositivi
Automazione della creazione di dispositivi e grafici
Templating di grafici e dispositivi
Metodi di raccolta dati personalizzati
Controlli di accesso per utenti, gruppi e domini
Tutto questo è racchiuso in un'interfaccia intuitiva e facile da usare che ha senso sia per installazioni di dimensioni LAN che per reti complesse con migliaia di dispositivi.
Sviluppato nei primi anni 2000 da Ian Berry come progetto scolastico, è stato utilizzato da migliaia di aziende e appassionati per monitorare e gestire le loro reti aziendali e data center.
Cacti dovrebbe essere in grado di funzionare su qualsiasi sistema operativo Linux, UNIX o Windows con i seguenti requisiti:
PHP 5.4+
MySQL 5.1+
RRDtool 1.3+, consigliata 1.5+
NET-SNMP 5.5+
Server Web con supporto PHP
PHP deve anche essere compilato come binario cgi o cli autonomo. Questo è richiesto per la raccolta dati tramite cron.
Contrassegniamo il modulo php-snmp come opzionale. Finché non utilizzi dispositivi ipv6, o non usi ID motore o contesti snmpv3, l'uso di php-snmp dovrebbe essere sicuro. Altrimenti, dovresti considerare di disinstallare il modulo php-snmp poiché creerà problemi. Siamo a conoscenza del problema con php-snmp e stiamo cercando di coinvolgerci nel progetto php per risolvere questi problemi.
RRDtool è disponibile in più versioni e la maggior parte di esse è supportata da Cacti. Ricorda di confermare le impostazioni di Cacti per la versione di RRDtool se hai problemi a rendere i grafici.
La documentazione è disponibile con le release di Cacti ed è anche disponibile per la consultazione nel Repository della Documentazione.
Visita il sito web principale di Cacti per download, log delle modifiche, note di rilascio e altro!
Data la vasta portata di Cacti, i forum tendono a generare una quantità considerevole di traffico. Fare la propria parte nel rispondere a domande di base aiuta molto poiché non possiamo essere ovunque contemporaneamente. Contribuisci alla community di Cacti partecipando ai Forum della Community di Cacti.
Partecipa alla creazione e modifica della documentazione di Cacti! Fai un fork, modifica e invia una pull request per contribuire a migliorare la documentazione su GitHub.
Partecipa allo sviluppo di Cacti! Unisciti agli sviluppatori e alla community su GitHub!
Cacti gestisce la raccolta dei dati attraverso il concetto di sorgenti dati. Le sorgenti dati utilizzano metodi di input per raccogliere dati da dispositivi, host, database, script, ecc... Le possibilità sono infinite riguardo alla natura dei dati che sei in grado di raccogliere. Le sorgenti dati sono il collegamento diretto ai file RRD sottostanti; come i dati vengono archiviati nei file RRD e come i dati vengono recuperati dai file RRD.
I grafici, il cuore e l'anima di Cacti, vengono creati da RRDtool utilizzando la definizione delle sorgenti dati definite.
Riunendo tutto, Cacti utilizza un ampio sistema di template che consente la creazione e il consumo di template portabili. I template di grafici, sorgenti dati e RRA consentono la facile creazione di grafici e sorgenti dati pronti all'uso. Insieme al supporto della community di Cacti, i template sono diventati il modo standard per supportare la creazione di grafici per qualsiasi numero di dispositivi in uso negli ambienti informatici e di rete odierni.
Supporto per la raccolta dati locale e remota con la possibilità di impostare intervalli di raccolta. Consulta Data Source Profile all'interno di Cacti per maggiori informazioni. I Data Source Profiles possono essere applicati ai grafici al momento della creazione o a livello di data template.
La raccolta dati remota è stata resa facile attraverso la replica delle risorse verso collector di dati remoti. Anche quando la connettività con l'installazione principale di Cacti viene persa dal collector di dati remoto, questo memorizzerà i dati raccolti finché la connettività non viene ripristinata. La raccolta dati remota richiede solo accesso MySQL e HTTP/HTTPS di ritorno alla posizione dell'installazione principale di Cacti.
Cacti fornisce agli amministratori una serie di funzionalità di automazione di rete per ridurre il tempo e lo sforzo necessari per configurare e gestire i dispositivi.
Regole di scoperta di rete multiple e definibili
Template di automazione che specificano come vengono configurati i dispositivi
Cacti è più di un sistema di monitoraggio di rete, è un framework operativo che consente l'estensione e l'integrazione delle funzionalità di Cacti. The Cacti Group continua a mantenere una serie di plugin. Se stai cercando di aggiungere funzionalità a Cacti, c'è parecchio materiale di riferimento tra cui scegliere su GitHub.
Cacti consente molte integrazioni a runtime durante la visualizzazione dei grafici:
Visualizzazione di alberi e grafici caricata dinamicamente
Ricerca per stringa, tipi di grafico e template
Integrazione della visualizzazione
Semplici regolazioni dell'intervallo di tempo
Comodi pulsanti per finestre temporali scorrevoli
Opzione grafico in tempo reale con un solo clic
Facile esportazione dei grafici in csv
Visualizzazione RRA con un solo clic
Supporto per autorizzazioni per utente e per gruppo a livello di singolo realm (area di Cacti), per grafico, per albero di grafici, per dispositivo, ecc... Il modello di autorizzazione in Cacti è il controllo degli accessi basato sui ruoli (RBAC) per consentire un'assegnazione flessibile delle autorizzazioni. Supporto per l'applicazione della complessità delle password, dell'età delle password e della modifica delle password scadute.
Cacti supporta la maggior parte delle funzionalità di creazione grafici di RRDtool, inclusi:
Asse destro completo
Shift
Dash e dash offset
Griglia y alternativa
Nessun adattamento alla griglia
Lunghezza unità
Larghezza tab
Etichette dinamiche
Legenda delle regole
Posizione legenda
VDEF
Linee impilate
Larghezze di linea definibili dall'utente
Allineamento del testo
Copyright (c) 2004-2023 - The Cacti Group, Inc.