Có nhiều cách khác nhau để giữ an toàn cho dữ liệu của bạn. Các thực hành như kiểm soát truy cập cơ sở dữ liệu, bảo mật cấu hình, nâng cấp hệ thống của bạn, v.v. là một phần của bảo mật cơ sở dữ liệu. Thậm chí, có thể bạn gặp vấn đề về bảo mật và không nhận ra (cho đến khi quá muộn), đó là lý do tại sao việc giám sát là yếu tố then chốt để đảm bảo rằng nếu có điều gì đó không mong muốn xảy ra, bạn sẽ có thể nắm bắt được. Điều này không chỉ bao gồm hệ thống của bạn mà còn bao gồm cơ sở dữ liệu của bạn.
Kiểm toán là một cách để biết điều gì đang xảy ra trong cơ sở dữ liệu của bạn và nó cũng được yêu cầu đối với nhiều quy định hoặc tiêu chuẩn bảo mật (ví dụ:PCI - Ngành thẻ thanh toán).
Máy chủ MariaDB, một trong những máy chủ cơ sở dữ liệu nguồn mở phổ biến nhất, có Trình cắm kiểm tra riêng (cũng hoạt động trên MySQL), để trợ giúp thực hiện nhiệm vụ kiểm tra này. Trong blog này, bạn sẽ thấy cách cài đặt và sử dụng Plugin kiểm tra MariaDB hữu ích này.
Chúng tôi cũng sẽ giới thiệu phiên bản nâng cao hơn của MariaDB của plugin cho MariaDB Enterprise Audit, được bao gồm trong các bản cài đặt Enterprise 10.6, 10.5 và 10.4. Nhưng hãy nói thêm về điều đó sau.
Trình cắm Kiểm tra MariaDB là gì?
Trình cắm Kiểm tra được phát triển bởi MariaDB để đáp ứng các yêu cầu ghi lại quyền truy cập của người dùng để tuân thủ các quy định kiểm toán.
Đối với mỗi phiên máy khách, nó ghi lại, trong tệp nhật ký (hoặc nhật ký hệ thống), ai đã kết nối với máy chủ, truy vấn nào được thực thi, bảng nào đã được truy cập và các biến máy chủ đã thay đổi.
Nó hoạt động với MariaDB, MySQL và Percona Server. MariaDB bắt đầu bao gồm Plugin kiểm tra theo mặc định từ các phiên bản 10.0.10 và 5.5.37 và nó có thể được cài đặt trong bất kỳ phiên bản nào từ MariaDB 5.5.20.
Cài đặt Trình cắm Kiểm tra MariaDB
Tệp plugin (server_audit.so) được cài đặt theo mặc định trong quá trình cài đặt MariaDB trong thư mục plugin / 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
Vì vậy, bạn chỉ cần thêm nó vào phiên bản 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 |
+--------------+--------+-------+-----------------+---------+
Và bật nó bằng lệnh SET GLOBAL:
MariaDB [(none)]> SET GLOBAL server_audit_logging=ON;
Query OK, 0 rows affected (0.000 sec)
Hoặc đặt nó liên tục trong tệp cấu hình my.cnf để bắt đầu kiểm tra:
[MYSQLD]
server_audit_logging=ON
Một cách khác để thêm nó vào phiên bản MariaDB là thêm tham số plugin_load_add vào tệp cấu hình my.cnf:
[mariadb]
plugin_load_add = server_audit
Bạn cũng nên thêm FORCE_PLUS_PERMANENT để tránh gỡ cài đặt nó:
[mariadb]
plugin_load_add = server_audit
server_audit=FORCE_PLUS_PERMANENT
Bây giờ bạn đã cài đặt Trình cắm kiểm tra MariaDB, hãy xem cách định cấu hình nó.
Cấu hình plugin kiểm tra MariaDB
Để kiểm tra cấu hình hiện tại, bạn có thể xem giá trị của biến toàn cục “server_audit%” bằng cách chạy lệnh sau:
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)
Bạn có thể sửa đổi các biến này bằng cách sử dụng lệnh SET GLOBAL hoặc làm cho nó liên tục trong tệp cấu hình my.cnf trong phần [mysqld].
Hãy mô tả một số biến quan trọng nhất:
- server_audit_logging :Cho phép ghi nhật ký kiểm tra.
- server_audit_events :Chỉ định các sự kiện mà bạn muốn ghi lại. Theo mặc định, giá trị trống, có nghĩa là tất cả các sự kiện đều được ghi lại. Các tùy chọn là CONNECTION, QUERY và TABLE.
- server_audit_excl_users, server_audit_incl_users :Các biến này chỉ định hoạt động nào của người dùng nên được loại trừ hoặc đưa vào tệp nhật ký kiểm tra. Theo mặc định, tất cả hoạt động của người dùng đều được ghi lại.
- server_audit_output_type :Theo mặc định, kết quả kiểm tra được gửi đến một tệp. Tùy chọn khác là nhật ký hệ thống, nghĩa là tất cả các mục nhập đều được chuyển đến cơ sở nhật ký hệ thống.
- server_audit_syslog_facility, server_audit_syslog_priasty :Chỉ định cơ sở nhật ký hệ thống và mức độ ưu tiên của các sự kiện sẽ đến nhật ký hệ thống.
Sau khi định cấu hình nó, bạn có thể xem các sự kiện kiểm tra trong tệp nhật ký được chỉ định (hoặc nhật ký hệ thống). Hãy xem nó trông như thế nào.
Nhật ký trình cắm kiểm tra MariaDB
Để xem các sự kiện được đăng ký bởi Plugin nhật ký kiểm tra, bạn có thể kiểm tra tệp nhật ký được chỉ định (theo mặc định là 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
Như bạn có thể thấy trong nhật ký ở trên, bạn sẽ có các sự kiện về kết nối cơ sở dữ liệu và các truy vấn đang chạy ở đó, tùy thuộc vào cấu hình server_audit_events.
Sử dụng Trình cắm Kiểm tra MariaDB trong ClusterControl
Để tránh cấu hình thủ công, bạn có thể bật Trình cắm Kiểm tra từ Giao diện người dùng ClusterControl. Đối với điều này, bạn chỉ cần vào ClusterControl -> Chọn MariaDB Cluster -> Security -> Audit Log:
Và bạn sẽ bật plugin mà không cần cài đặt hay cấu hình thủ công.
Sử dụng ClusterControl, bạn cũng có thể tận dụng các tính năng khác nhau, không chỉ bảo mật mà còn theo dõi, quản lý và sao lưu, trong số các tính năng hữu ích khác.
Giới thiệu Trình cắm Kiểm tra Doanh nghiệp MariaDB, server_audit2
MariaDB tiếp tục phát triển và bao gồm các cải tiến về plugin. Được bao gồm trong các cài đặt Máy chủ doanh nghiệp MariaDB 10.6, 10.5 và 10.4, plugin mới nhất của họ cho Kiểm tra doanh nghiệp MariaDB là server_audit2.so. Tóm lại, nó cho phép người dùng lưu trữ thông tin cần thiết cho các cuộc đánh giá tuân thủ.
Plugin giới thiệu các bảng hệ thống cho các mẫu bộ lọc và người dùng, một bộ lọc mặc định và một số bộ lọc cấp tài khoản cho mỗi người dùng. Bộ lọc mặc định mới cho phép mọi người xác định các quy tắc kiểm tra cho bất kỳ người dùng nào mà không có bộ lọc xác định. Bảng bao gồm tên bộ lọc (bắt buộc phải được đặt thành "mặc định") và cột quy tắc. Các bộ quy tắc cần được "làm mới" bằng cách chạy truy vấn như SET GLOBAL server_audit_reload_filters =ON;
Người dùng cũng có thể lưu trữ các tên bộ lọc áp dụng cho một người dùng nhất định và kiểm tra chính plugin, vì vậy nếu xảy ra thay đổi trong cấu hình của plugin kiểm tra, nó sẽ được đăng nhập vào sự kiện AUDIT_CONFIG (theo MariaDB, thông tin cũng có thể được thêm vào tệp nhật ký kiểm tra mới để ghi các cài đặt hiện tại).
Ngoài ra, bảng server_audit_users hiện có thể được sử dụng trong server_audit2.so. plugin để lưu trữ thông tin liên quan đến người dùng.
Để đảm bảo rằng cài đặt MariaDB của bạn có plugin này, hãy tìm kiếm server_audit2.so trong thư mục được xác định trong biến hệ thống plugin_dir hoặc chỉ cần truy vấn @@ plugin_dir nếu bạn không biết thư mục và không muốn dành thời gian xem qua các biến trong my.cnf.
Kết luận
Kiểm tra là bắt buộc đối với nhiều quy định bảo mật và nó cũng rất hữu ích nếu bạn muốn biết điều gì đã xảy ra trong cơ sở dữ liệu của mình, khi nào và ai chịu trách nhiệm về điều đó.
MariaDB Audit Plugin và phiên bản dành cho doanh nghiệp là một cách tuyệt vời để kiểm tra cơ sở dữ liệu của bạn mà không cần sử dụng bất kỳ công cụ bên ngoài nào và nó cũng tương thích với MySQL và Percona Server. Nếu bạn muốn tránh cấu hình nó theo cách thủ công, bạn có thể sử dụng ClusterControl để bật Trình cắm kiểm tra một cách dễ dàng từ giao diện người dùng.