Има различни начини да запазите данните си в безопасност. Практики като контролиране на достъпа до база данни, защита на конфигурацията, надграждане на вашата система и други са част от сигурността на базата данни. Възможно е дори да имате проблеми със сигурността и да не го осъзнавате (докато не стане твърде късно), ето защо наблюдението е ключов елемент, за да се гарантира, че ако се случи нещо неочаквано, ще можете да го хванете. Това включва не само вашата система, но и вашите бази данни.
Одитът е начин да разберете какво се случва във вашата база данни и също така се изисква за много разпоредби или стандарти за сигурност (напр. PCI - индустрия за разплащателни карти).
MariaDB Server, един от най-популярните сървъри за бази данни с отворен код, има свой собствен плъгин за одит (който работи и на MySQL), за да помогне с тази задача за одит. В този блог ще видите как да инсталирате и използвате тази полезна MariaDB Audit Plugin.
Ще представим и по-усъвършенстваната версия на приставката на MariaDB за MariaDB Enterprise Audit, която е включена в корпоративни инсталации 10.6, 10.5 и 10.4. Но повече за това по-късно.
Какво е MariaDB Audit Plugin?
Приставката за одит е разработена от MariaDB, за да отговори на изискванията за записване на потребителския достъп, за да бъде в съответствие с разпоредбите за одит.
За всяка клиентска сесия записва в регистрационен файл (или syslog) кой се е свързал със сървъра, какви заявки са изпълнени, кои таблици са били достъпни и променливите на сървъра са променени.
Работи с MariaDB, MySQL и Percona Server. MariaDB стартира включването по подразбиране на Audit Plugin от версии 10.0.10 и 5.5.37 и може да се инсталира във всяка версия от MariaDB 5.5.20.
Инсталиране на MariaDB Audit Plugin
Файлът на приставката (server_audit.so) се инсталира по подразбиране по време на инсталацията на MariaDB в директорията на плъгините /usr/lib/mysql/plugin/:
$ ls -lah /usr/lib/mysql/plugin/ |grep server_audit
-rw-r--r-- 1 root root 63K May 9 19:33 server_audit.so
И така, просто трябва да го добавите в екземпляра на MariaDB:
MariaDB [(none)]> INSTALL SONAME 'server_audit';
Query OK, 0 rows affected (0.003 sec)
MariaDB [(none)]> SHOW PLUGINS;
+--------------+--------+-------+-----------------+---------+
| Name | Status | Type | Library | License |
+--------------+--------+-------+-----------------+---------+
| SERVER_AUDIT | ACTIVE | AUDIT | server_audit.so | GPL |
+--------------+--------+-------+-----------------+---------+
И го активирайте с помощта на командата SET GLOBAL:
MariaDB [(none)]> SET GLOBAL server_audit_logging=ON;
Query OK, 0 rows affected (0.000 sec)
Или го направете постоянен в конфигурационния файл my.cnf, за да започнете одит:
[MYSQLD]
server_audit_logging=ON
Друг начин да го добавите към екземпляра на MariaDB е като добавите параметъра plugin_load_add в конфигурационния файл my.cnf:
[mariadb]
plugin_load_add = server_audit
Препоръчва се също да добавите FORCE_PLUS_PERMANENT, за да избегнете деинсталирането му:
[mariadb]
plugin_load_add = server_audit
server_audit=FORCE_PLUS_PERMANENT
Сега имате инсталиран MariaDB Audit Plugin, нека видим как да го конфигурирате.
Конфигурация на приставката за одит на MariaDB
За да проверите текущата конфигурация, можете да видите стойността на глобалните променливи „server_audit%“, като изпълните следната команда:
MariaDB [(none)]> SHOW GLOBAL VARIABLES LIKE "server_audit%";
+-------------------------------+-----------------------+
| Variable_name | Value |
+-------------------------------+-----------------------+
| server_audit_events | |
| server_audit_excl_users | |
| server_audit_file_path | server_audit.log |
| server_audit_file_rotate_now | OFF |
| server_audit_file_rotate_size | 1000000 |
| server_audit_file_rotations | 9 |
| server_audit_incl_users | |
| server_audit_logging | OFF |
| server_audit_mode | 0 |
| server_audit_output_type | file |
| server_audit_query_log_limit | 1024 |
| server_audit_syslog_facility | LOG_USER |
| server_audit_syslog_ident | mysql-server_auditing |
| server_audit_syslog_info | |
| server_audit_syslog_priority | LOG_INFO |
+-------------------------------+-----------------------+
15 rows in set (0.001 sec)
Можете да промените тези променливи с помощта на командата SET GLOBAL или да ги направите постоянни в конфигурационния файл my.cnf в секцията [mysqld].
Нека опишем някои от най-важните променливи:
- server_audit_logging : Активира регистриране на одит.
- server_audit_events :Посочва събитията, които искате да запишете. По подразбиране стойността е празна, което означава, че всички събития се записват. Опциите са ВРЪЗКА, ЗАЯВКА и ТАБЛИЦА.
- server_audit_excl_users, server_audit_incl_users :Тези променливи определят коя активност на потребителите трябва да бъде изключена или включена в регистрационния файл за одит. По подразбиране активността на всички потребители се записва.
- тип_изход_на_сървър :По подразбиране изходът за одит се изпраща във файл. Другата опция е syslog, което означава, че всички записи отиват в системата syslog.
- server_audit_syslog_facility, server_audit_syslog_priority :Указва съоръжението за системен журнал и приоритета на събитията, които трябва да отидат в syslog.
След като го конфигурирате, можете да видите одитните събития в посочения регистрационен файл (или syslog). Нека видим как изглежда.
Регистър на приставката за одит на MariaDB
За да видите събитията, регистрирани от приставката Audit Log Plugin, можете да проверите посочения регистрационен файл (по подразбиране server_audit.log).
$ tail -f /var/lib/mysql/server_audit.log
20200703 19:07:04,MariaDB1,cmon,10.10.10.116,64,915239,QUERY,information_schema,'FLUSH /*!50500 SLOW */ LOGS',0
20200703 19:07:05,MariaDB1,cmon,10.10.10.116,61,915240,QUERY,information_schema,'SHOW GLOBAL STATUS',0
20200703 19:07:05,MariaDB1,cmon,10.10.10.116,64,915241,WRITE,mysql,slow_log,
20200703 19:07:05,MariaDB1,cmon,10.10.10.116,64,915241,QUERY,information_schema,'SET GLOBAL SLOW_QUERY_LOG=1',0
20200703 19:07:06,MariaDB1,cmon,10.10.10.116,61,915242,QUERY,information_schema,'SHOW GLOBAL STATUS',0
20200703 19:15:42,MariaDB1,root,localhost,124,0,CONNECT,,,0
20200703 19:15:42,MariaDB1,root,localhost,124,917042,QUERY,,'select @@version_comment limit 1',0
20200703 19:15:48,MariaDB1,root,localhost,124,0,DISCONNECT,,,0
20200703 19:57:41,MariaDB1,root,localhost,135,925831,QUERY,,'create database test1',0
20200703 19:58:05,MariaDB1,root,127.0.0.1,136,0,FAILED_CONNECT,,,1045
20200703 19:58:05,MariaDB1,root,127.0.0.1,136,0,DISCONNECT,,,0
20200703 19:58:49,MariaDB1,root,localhost,137,926073,QUERY,,'SELECT DATABASE()',0
20200703 19:58:49,MariaDB1,root,localhost,137,926075,QUERY,test1,'show databases',0
20200703 19:58:49,MariaDB1,root,localhost,137,926076,QUERY,test1,'show tables',0
20200703 19:59:20,MariaDB1,root,localhost,137,926182,CREATE,test1,t1,
20200703 19:59:20,MariaDB1,root,localhost,137,926182,QUERY,test1,'create table t1 (id int, message text)',0
20200703 19:59:48,MariaDB1,root,localhost,137,926287,QUERY,test1,'insert into t1 values (4,\'message 1\')',0
Както можете да видите в горния регистър, ще имате събития относно връзките към базата данни и заявките, изпълнявани там, в зависимост от конфигурацията на server_audit_events.
Използване на MariaDB Audit Plugin в ClusterControl
За да избегнете ръчно конфигуриране, можете да активирате приставката за одит от потребителския интерфейс на ClusterControl. За това трябва само да отидете на ClusterControl -> Изберете клъстера MariaDB -> Сигурност -> Регистър на одита:
И ще имате активиран плъгин без ръчна инсталация или конфигурация.
С помощта на ClusterControl можете също да се възползвате от различни функции, не само сигурност, но и наблюдение, управление и архивиране, наред с други полезни функции.
Представяме MariaDB Enterprise Audit Plugin, server_audit2
MariaDB продължава да се развива и това включва подобрения на плъгини. Включен в 10.6, 10.5 и 10.4 MariaDB Enterprise Server инсталации, най-новата им приставка за MariaDB Enterprise Audit е server_audit2.so. Накратко, той позволява на потребителите да съхраняват информация, необходима за одити за съответствие.
Плъгинът въвежда системни таблици за шаблони за филтриране и потребители, филтър по подразбиране, както и някои филтри на ниво акаунт за всеки потребител. Новият филтър по подразбиране позволява на хората да дефинират правила за одит за всеки потребител без дефиниран филтър. Таблицата се състои от име на филтър (изисква се да бъде зададено на „по подразбиране“) и колона с правило. Наборите от правила трябва да бъдат „опреснени“, като се изпълни заявка като SET GLOBAL server_audit_reload_filters=ON;
Потребителите могат също да съхраняват имена на филтри, приложими за определен потребител, и да проверяват самия плъгин, така че ако възникне промяна в конфигурацията на приставката за одит, тя се регистрира в събитието AUDIT_CONFIG (съгласно MariaDB, информацията може също да бъде добавена към нов регистрационен файл за одит, за да регистрирате текущите настройки).
Освен това таблицата server_audit_users вече може да се използва в server_audit2.so. плъгин за съхраняване на информация, свързана с потребителя.
За да сте сигурни, че вашата инсталация на MariaDB има този плъгин, потърсете server_audit2.so в директорията, дефинирана в системната променлива plugin_dir или просто потърсете @@plugin_dir, ако не знаете директорията и не искате да прекарате време в разглеждане на променливи в my.cnf.
Заключение
Одитът е необходим за много разпоредби за сигурност и е полезен също, ако искате да знаете какво се е случило във вашата база данни и кога и кой е бил отговорен за това.
MariaDB Audit Plugin и неговият корпоративен вариант е отличен начин за одит на вашите бази данни, без да използвате външен инструмент, и също така е съвместим с MySQL и Percona Server. Ако искате да избегнете ръчното конфигуриране, можете да използвате ClusterControl, за да активирате приставката за одит по лесен начин от потребителския интерфейс.