Здесь показаны различия между двумя версиями данной страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
| freebsd:cacti [2020/01/06 21:05] alex | freebsd:cacti [2021/11/13 16:54] (текущий) alex | ||
|---|---|---|---|
| Строка 102: | Строка 102: | ||
| require a local server. | require a local server. | ||
| + | У меня MySQL и Cacti находятся на разных серверах. На сервере с MySQL создаю базу данных cacti. Создаю пользователя cacti и разрешаю ему управлять созданной базой данных. Настраиваю удалённый доступ к MySQL. | ||
| - | mysqladmin -uroot -p create cacti | ||
| - | Enter password: | ||
| - |  | ||
| mysql -u root -p | mysql -u root -p | ||
| Enter password: | Enter password: | ||
| + | SHOW databases; | ||
| + | +--------------------+ | ||
| + | | Database  | | ||
| + | +--------------------+ | ||
| + | | information_schema | | ||
| + | | ccnet-db  | | ||
| + | | mysql | | ||
| + | | performance_schema | | ||
| + | | seafile-db  | | ||
| + | | seahub-db  | | ||
| + | | sys | | ||
| + | +--------------------+ | ||
| + | 7 rows in set (0.08 sec) | ||
|  |  | ||
| - | > show databases; | + | create database `cacti` character set = 'utf8'; | 
| + | SHOW databases; | ||
| +--------------------+ | +--------------------+ | ||
| | Database  | | | Database  | | ||
| Строка 115: | Строка 127: | ||
| | information_schema | | | information_schema | | ||
| | cacti | | | cacti | | ||
| + | | ccnet-db  | | ||
| | mysql | | | mysql | | ||
| | performance_schema | | | performance_schema | | ||
| + | | seafile-db  | | ||
| + | | seahub-db  | | ||
| | sys | | | sys | | ||
| +--------------------+ | +--------------------+ | ||
| - | 5 rows in set (0.00 sec) | + | 8 rows in set (0.00 sec) | 
|  |  | ||
| - | > CREATE USER 'cacti'@'localhost' IDENTIFIED BY 'rfRn3c_rkjn'; | + | CREATE USER 'cacti'@'localhost' IDENTIFIED BY 'rfRn3c_rkjn'; | 
| - | > CREATE USER 'cacti'@'10.215.130.21' IDENTIFIED BY 'rfRn3c_rkjn'; | + | CREATE USER 'cacti'@'10.215.130.21' IDENTIFIED BY 'rfRn3c_rkjn'; | 
| - | > GRANT ALL ON `cacti`.* TO 'cacti'@'10.215.130.21'; | + | GRANT ALL ON `cacti`.* TO 'cacti'@'10.215.130.21'; | 
| - | > GRANT SELECT ON `mysql`.`time_zone_name` TO 'cacti'@'10.215.130.21'; | + | GRANT SELECT ON `mysql`.`time_zone_name` TO 'cacti'@'10.215.130.21'; | 
| - | > FLUSH PRIVILEGES; | + | CREATE USER 'root'@'10.215.130.21' IDENTIFIED BY 'Ce,,0nf#'; | 
| - | + | GRANT ALL PRIVILEGES ON *.* TO 'root'@'10.215.130.21'; | |
| - | > use mysql | + | FLUSH PRIVILEGES; | 
| - | > SELECT Host,User FROM user; | + | select user,host from mysql.user; | 
| +---------------+---------------+ | +---------------+---------------+ | ||
| - | | Host | User | | + | | user | host | | 
| +---------------+---------------+ | +---------------+---------------+ | ||
| - | | 10.215.130.21 | cacti | | + | | cacti | 10.215.130.21 | | 
| - | | localhost  | cacti | | + | | root | 10.215.130.21 | | 
| - | | localhost  | mysql.session | | + | | root | 10.215.130.22 | | 
| - | | localhost  | mysql.sys | | + | | seafile  | 10.215.130.22 | | 
| - | | localhost  | root | | + | | cacti | localhost  | | 
| + | | mysql.session | localhost  | | ||
| + | | mysql.sys  | localhost  | | ||
| + | | root | localhost  | | ||
| +---------------+---------------+ | +---------------+---------------+ | ||
| - | 5 rows in set (0.00 sec) | ||
| - | > quit; | ||
| - | Добавляю в созданную базу данных таблицы | + | На компьютере с cacti в созданную базу данных загружаю таблицы | 
| - | root@jail_2:~ # mysql --database=cacti -h 10.215.130.20 -u cacti -p < /usr/local/share/cacti/cacti.sql | + | mysql --database=cacti -h 10.215.130.20 -u root -p < /usr/local/share/cacti/cacti.sql | 
| + | Enter password: | ||
| - | mysql -h 10.215.130.20 -u cacti -prfRn3c_rkjn | + | Подключаюсь к MySQL и проверяю создание талиц | 
| - | > use cacti | + | mysql -h 10.215.130.20 -u cacti -p | 
| - | > show tables; | + | use cacti | 
| + | show tables; | ||
| +-------------------------------------+ | +-------------------------------------+ | ||
| | Tables_in_cacti  | | | Tables_in_cacti  | | ||
| Строка 260: | Строка 278: | ||
| | version  | | | version  | | ||
| +-------------------------------------+ | +-------------------------------------+ | ||
| - | 109 rows in set (0.03 sec) | + | 109 rows in set (0.00 sec) | 
| + | Из файла ///usr/local/share/cacti/include/config.php.sample// создаю файл конфигурации в котором указываю пользователя и пароль базы данных cacti. | ||
| - | root@klotik:/usr/local/etc/mysql# mysql --database=cacti -uroot -p < /usr/local/share/cacti/cacti.sql | + | загружаю временные зоны в MySQL | 
| - | Enter password: | + | mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql | 
| - | root@klotik:/usr/local/etc/mysql# mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql | + | |
| - | Enter password: | + | |
| - | Warning: Unable to load '/usr/share/zoneinfo/Factory' as time zone. Skipping it. | + | |
| - | Warning: Unable to load '/usr/share/zoneinfo/zone.tab' as time zone. Skipping it. | + | |
| - | В /usr/local/share/cacti/include/config.php добавил строку | + | В папке ///var/log/cacti// создаю файл для логов **log** и задаю права доступа www:www | 
| - | date_default_timezone_set( 'Europe/Moscow' ); | + | touch /var/log/cacti/log | 
| - | + | Меняю права доступа к папке cacti | |
| - | Выполняю инструкцию | + | chown -R www:www /usr/local/share/cacti/ | 
| - | # mysqladmin -uroot -p create cacti | + | Создаю папку и меняю права доступа | 
| - | Enter password: | + | mkdir -p /usr/local/share/cacti/log/ | 
| + | chown -R www:www /usr/local/share/cacti/log/ | ||
| - | root@localhost [(none)]> CREATE USER 'cacti'@'localhost' IDENTIFIED BY 'rfRnec_rkjn'; | + | В браузере набираю cacti.klotik.ru. На приглашение логина и пароля набираю **admin/admin**. Cacti предложит сменить пароль. | 
| - | Query OK, 0 rows affected (0.41 sec) | + | |
| - | root@localhost [(none)]> FLUSH PRIVILEGES; | + | Input Validation Whitelist Protection | 
| - | Query OK, 0 rows affected (0.20 sec) | + | Cacti Data Input methods that call a script can be exploited in ways that a non-administrator can perform damage | 
| + | to either files owned by the poller account, and in cases where someone runs the Cacti poller as root, can | ||
| + | compromise the operating system allowing attackers to exploit your infrastructure. | ||
| + | |||
| + | Therefore, several versions ago, Cacti was enhanced to provide Whitelist capabilities on the these types of Data | ||
| + | Input Methods. Though this does secure Cacti more thouroughly, it does increase the amount of work required by | ||
| + | the Cacti administrator to import and manage Templates and Packages. | ||
| + | |||
| + | The way that the Whitelisting works is that when you first import a Data Input Method, or you re-import a Data | ||
| + | Input Method, and the script and or aguments change in any way, the Data Input Method, and all the corresponding | ||
| + | Data Sources will be immediatly disabled until the administrator validates that the Data Input Method is valid. | ||
| + | |||
| + | To make identifying Data Input Methods in this state, we have provided a validation script in Cacti's CLI | ||
| + | directory that can be run with the following options: | ||
| + | |||
| + | php -q input_whitelist.php --audit - This script option will search for any Data Input Methods that are currently | ||
| + | banned and provide details as to why. | ||
| + | php -q input_whitelist.php --update - This script option un-ban the Data Input Methods that are currently banned. | ||
| + | php -q input_whitelist.php --push - This script option will re-enable any disabled Data Sources. | ||
| + | It is strongly suggested that you update your config.php to enable this feature by uncommenting the | ||
| + | $input_whitelist variable and then running the three CLI script options above after the web based install has completed. | ||
| + | |||
| + | Check the Checkbox below to acknowledge that you have read and understand this security concern | ||
| - | root@localhost [(none)]> GRANT ALL ON `cacti`.* TO 'cacti'@'localhost'; | ||
| - | Query OK, 0 rows affected (0.05 sec) | ||
| - | root@localhost [(none)]> GRANT ALL ON `cacti`.* TO 'cacti'@'localhost'; | ||
| - | Query OK, 0 rows affected (0.04 sec) | ||
| - | root@localhost [(none)]> GRANT SELECT ON `mysql`.`time_zone_name` TO 'cacti'@'localhost'; | ||
| - | Query OK, 0 rows affected (0.04 sec) | ||
| - | root@localhost [(none)]> FLUSH PRIVILEGES; | ||
| - | Query OK, 0 rows affected (0.02 sec) | ||
| - | root@localhost [(none)]> exit | ||
| - | Bye | ||
| - | root@klotik:~ # mysql --database=cacti -ucacti -p < /usr/local/share/cacti/cacti.sql | ||
| - | Enter password: | ||
| - | ERROR 1045 (28000): Access denied for user 'cacti'@'localhost' (using password: YES) | ||
| - | root@klotik:~ # mysql --database=cacti -ucacti -p < /usr/local/share/cacti/cacti.sql | ||
| - | Enter password: | ||
| - | root@klotik:~ # mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql | ||
| - | Enter password: | ||
| - | Warning: Unable to load '/usr/share/zoneinfo/Factory' as time zone. Skipping it. | ||
| - | Warning: Unable to load '/usr/share/zoneinfo/zone.tab' as time zone. Skipping it. | ||
| - | Из файла | ||
| - | /usr/local/share/cacti/include/config.php.sample создаю файл конфигурации в котором указываю пользователя и пароль базы данных cacti. | ||
| Строка 324: | Строка 340: | ||
| - | + | === Обновление старого cacti === | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | Installing cacti-0.8.8h... | + | |
| - | ===> Creating groups. | + | |
| - | Using existing group 'cacti'. | + | |
| - | ===> Creating users | + | |
| - | Using existing user 'cacti'. | + | |
| - | ======================================================================= | + | |
| - | Cacti is now installed. If you intall it for the first time, | + | |
| - | you may have to follow this steps to make it work correctly: | + | |
| - | + | ||
| - | 1. Create the MySQL database, a cacti user, and initialize: | + | |
| - | a) CREATE DATABASE cacti; | + | |
| - | b) Create a mysql user/password for cacti: | + | |
| - | CREATE USER 'cacti'@'localhost' IDENTIFIED BY 'password'; | + | |
| - | FLUSH PRIVILEGES; | + | |
| - | c) Add GRANTS: | + | |
| - | GRANT ALL ON cacti.* TO 'cacti'@'localhost'; | + | |
| - | FLUSH PRIVILEGES; | + | |
| - | d) Import the default cacti database: | + | |
| - | mysql --database=cacti -ucacti -p < /usr/local/share/cacti/cacti.sql | + | |
| - | + | ||
| - | NOTE: | + | |
| - | * Cacti does not LOCK TABLES. | + | |
| - | + | ||
| - | 2. Edit /usr/local/share/cacti/include/config.php from the template | + | |
| - | config.php.orig. | + | |
| - | + | ||
| - | PHP requires the time zone to be explicitly set rather that rely on | + | |
| - | the system time zone, otherwise poller complains. I added the | + | |
| - | following line to my config.php: | + | |
| - | + | ||
| - | date_default_timezone_set('America/Los_Angeles'); | + | |
| - | + | ||
| - | 3. Add the following line to cron for cacti: | + | |
| - | */5 * * * * /usr/local/bin/php /usr/local/share/cacti/poller.php > /dev/null 2>&1 | + | |
| - | + | ||
| - | 4. Example Apache 2.4 configuration: | + | |
| - | + | ||
| - | LoadModule php5_module  libexec/apache22/libphp5.so | + | |
| - | + | ||
| - | <FilesMatch "\.php$"> | + | |
| - | SetHandler application/x-httpd-php | + | |
| - | </FilesMatch> | + | |
| - | <FilesMatch "\.phps$"> | + | |
| - | SetHandler application/x-httpd-php-source | + | |
| - | </FilesMatch> | + | |
| - | + | ||
| - | DirectoryIndex index.php | + | |
| - | + | ||
| - | DocumentRoot "/usr/local/share/cacti" | + | |
| - | + | ||
| - | Alias /cacti "/usr/local/share/cacti/" | + | |
| - | Alias /Cacti "/usr/local/share/cacti/" | + | |
| - | + | ||
| - | <Directory "/usr/local/share/cacti"> | + | |
| - | Require all granted | + | |
| - | AllowOverride None | + | |
| - | Order Allow,deny | + | |
| - | Allow from all | + | |
| - | </Directory> | + | |
| - | + | ||
| - | 5. Open a Cacti login page in your web browser and login with | + | |
| - | admin/admin. | + | |
| - | + | ||
| - | If you update cacti, open a login page and an updating process will | + | |
| - | start automatically. | + | |
| - | + | ||
| - | NOTEs as of 10Aug2014: | + | |
| - | + | ||
| - | 1) Cacti now better supports hier(7) | + | |
| - | + | ||
| - | a) Cacti log files are now found under /var/log/cacti where you can | + | |
| - | manage them using newsyslog. | + | |
| - | b) Cacti RRD files are now found under /var/db/cacti/rra. | + | |
| - | + | ||
| - | If you have an existing Cacti installation these paths are also | + | |
| - | found in Cacti's SQL database and MUST be updated. These two SQL | + | |
| - | commands should do the trick: | + | |
| - | + | ||
| - | UPDATE settings SET value='/var/log/cacti/log' \ | + | |
| - | WHERE name='path_cactilog'; | + | |
| - | + | ||
| - | UPDATE poller_item SET rrd_path=\ | + | |
| - | REPLACE(rrd_path,'/usr/local/share/cacti/rra','/var/db/cacti/rra') \ | + | |
| - | WHERE rrd_path REGEXP '^/usr/local/share/cacti/rra'; | + | |
| - | + | ||
| - | 2) The PERL paths in the Cacti PERL scripts have been updated to | + | |
| - | /usr/local/bin. | + | |
| - | + | ||
| - | Other Erratas: | + | |
| - | Mount linprocfs in /compat/linux/proc will alow most scripts to work. | + | |
| - | + | ||
| - | ======================================================================= | + | |
| - | + | ||
| - | ===>  Cleaning for php55-mysqli-5.5.38_1 | + | |
| - | ===>  Cleaning for php55-sockets-5.5.38_1 | + | |
| - | ===>  Cleaning for cacti-0.8.8h | + | |
| После обновления cacti внёс изменения в базу данных MySQL | После обновления cacti внёс изменения в базу данных MySQL | ||
| Строка 481: | Строка 393: | ||
| # ln -s /usr/local/lib/libpng16.so.16.23.0 /usr/local/lib/libpng15.so.15 | # ln -s /usr/local/lib/libpng16.so.16.23.0 /usr/local/lib/libpng15.so.15 | ||
| - | + | Ссылки:\\ | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | root@localhost [(none)]> CREATE USER 'cacti'@'localhost' IDENTIFIED BY 'rfRnec_rkjn'; | + | |
| - | ERROR 1819 (HY000): Your password does not satisfy the current policy requirements | + | |
| - | root@localhost [(none)]> CREATE USER 'cacti'@'localhost' IDENTIFIED BY 'rfRn3c_rkjn'; | + | |
| - | Query OK, 0 rows affected (0.05 sec) | + | |
| - | + | ||
| - | root@localhost [(none)]> use mysql | + | |
| - | Database changed | + | |
| - | root@localhost [mysql]> SELECT Host,User FROM user; | + | |
| - | +-----------+---------------+ | + | |
| - | | Host | User | | + | |
| - | +-----------+---------------+ | + | |
| - | | localhost | cacti | | + | |
| - | | localhost | mysql.session | | + | |
| - | | localhost | mysql.sys  | | + | |
| - | | localhost | root | | + | |
| - | +-----------+---------------+ | + | |
| - | 4 rows in set (0.00 sec) | + | |
| - | + | ||
| - | root@localhost [mysql]> quit | + | |
| - | Bye | + | |
| - | root@jail_1:/usr/local/etc/mysql# mysql -u root -p | + | |
| - | Enter password: | + | |
| - | Welcome to the MySQL monitor.  Commands end with ; or \g. | + | |
| - | Your MySQL connection id is 6 | + | |
| - | Server version: 5.7.25-log Source distribution | + | |
| - | + | ||
| - | Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved. | + | |
| - | + | ||
| - | Oracle is a registered trademark of Oracle Corporation and/or its | + | |
| - | affiliates. Other names may be trademarks of their respective | + | |
| - | owners. | + | |
| - | + | ||
| - | Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. | + | |
| - | + | ||
| - | root@localhost [(none)]> CREATE USER 'cacti'@'10.215.130.21' IDENTIFIED BY 'rfRn3c_rkjn'; | + | |
| - | Query OK, 0 rows affected (0.01 sec) | + | |
| - | + | ||
| - | root@localhost [(none)]> use mysql | + | |
| - | Database changed | + | |
| - | root@localhost [mysql]> SELECT Host,User FROM user; | + | |
| - | +---------------+---------------+ | + | |
| - | | Host | User | | + | |
| - | +---------------+---------------+ | + | |
| - | | 10.215.130.21 | cacti | | + | |
| - | | localhost  | cacti | | + | |
| - | | localhost  | mysql.session | | + | |
| - | | localhost  | mysql.sys  | | + | |
| - | | localhost  | root | | + | |
| - | +---------------+---------------+ | + | |
| - | 5 rows in set (0.00 sec) | + | |
| - | + | ||
| http://dnaeon.github.io/cacti-freebsd/\\ | http://dnaeon.github.io/cacti-freebsd/\\ | ||
| https://ctopmbi4.wordpress.com/2014/08/29/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-cacti-%D0%BD%D0%B0-freebsd/\\ | https://ctopmbi4.wordpress.com/2014/08/29/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-cacti-%D0%BD%D0%B0-freebsd/\\ | ||