CACTI ошибка при добавлении шаблонов(темплейтов)

    Решил на свежий RockyLinux установить свежий кактус (cacti), всё вроде прошло штатно все требования выполнил, права на каталоги, параметры PHP и MySQL, но после установки имеем начисто отсутствующие шаблоны (template)

    При установке в окне отладки ошибка для всех шаблонов выглядит так, меняется только имя шаблона:

    Import of Package 'PING_Advanced_Ping.xml.gz' under Profile '1' failed

    В это время в логе cacti.log:

    IMPORT FATAL: Could not Verify Signature. 

    Такая же ошибка если попытаться импортировать вручную через CLI

    php /usr/share/cacti/cli/import_package.php --filename=/tmp/Template/PING_Advanced_Ping.xml.gz

    Пробовал версию и последнюю с репозитория 1.2.21 и качал последнюю 1.2.22 с официального сайта, качал темплейты оттуда же. Пробовал PHP разные версии 7.4, 8.0, 8.1 но без результата. На сколько я понял при установке пакета проверяется подпись и только после этого устанавливается шаблон. Именно на этот моменте идет затык. В файле cacti/lib/import.php есть два участка кода в которых идет проверка.

    Строка 341:

    // Verify Signature
    $ok = openssl_verify($xml, $binary_signature, $public_key);
    $ok = 1; //-- Set verify OK :)
    if ($ok == 1) {                 
        cacti_log('NOTE: File is Signed Correctly', false, 'IMPORT', POLLER_VERBOSITY_LOW);
    } elseif ($ok == 0) {
         cacti_log('FATAL: File has been Tampered with.', false, 'IMPORT', POLLER_VERBOSITY_LOW);
         return false;
    } else {
          cacti_log('FATAL: Could not Verify Signature.', false, 'IMPORT', POLLER_VERBOSITY_LOW);
          return false;
    }

    И строка 374:

    $ok = openssl_verify($fdata, $binary_signature, $public_key, OPENSSL_ALGO_SHA1);
    $ok = 1; //-- Set verify OK :)
    if ($ok == 1) {
         cacti_log('NOTE: File OK: ' . $f['name'], false, 'IMPORT', POLLER_VERBOSITY_LOW);
    } else {
         cacti_log('FATAL: Could not Verify Signature for file: ' . $f['name'], true, 'IMPORT', POLLER_VERBOSITY_LOW);
         return false;
    }

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

    Copyright © 2022Powered by Bludit