mysql audit 機制應用技術

Post on 17-Feb-2017

32 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

MySQL Audit 機制應用技術

2/21

大綱Audit Log 安裝與設定Audit Log 機制Audit Log DB 與備份環境建置Audit log 入庫程式操作說明應用與效益附件

3/21

Audit Log Plugin 安裝與設定安裝指令 方法一

• mysql>INSTALL PLUGIN audit_log SONAME 'audit_log.so';

方法二 : my.cnf• [mysqld] plugin-load=audit_log.so• 需重啟 MySQL設定 Audit format 與 rotate sizes

在 my.cnf• [mysqld]

audit_log_format = NEW audit_log_rotate_on_size = 102400

• 需重啟 MySQL

4/21

Audit Log Plugin 安裝與設定確認 Audit log 參數設定

參數設定請參考附件-參數說明

5/21

Audit Log rotate當 audit log size 超過設定的audit_log_rotate_on_size (100 KB) ,將 rotate產生 xml 檔

6/21

Audit Log 機制Audit log files (XML)

DB name :audit_information Audit row

data files

1. Audit log rotate

2. Parsing and converting

3. Importing data to DB

MySQL DB Server

4. Move audit log files to archive

Backup Server

7/21

Audit Log DB 環境建置建立 audit_information db ,提供儲存 audit log內容 執行 audit_info.sql

儲存 rotate的 xml檔內容

紀錄已處理的 xml檔

8/21

Audit Log DB 環境建置檢查 OS 是否有安裝 perl-XML-Simple 套件

9/21

Audit Log 備份環境建置DB 伺服器與遠端備份伺服器建立 ssh 認證,讓備份端信任來自 Online 端的連線及資料傳送 DB 伺服器 (10.144.150.159) 備份伺服器 (10.144.150.158)

將 pub key傳送到備份伺服器,建立通道

DB伺服器端建立 ssh key

10/21

Audit Log 入庫程式名稱 audit_log_parsing.pl程式參數設定

DB name主機 IP連接埠DB連線帳號DB連線密碼

MySQL 安裝路徑MySQL Data Dir備份伺服器 IPAudit Log備份路徑

執行程式當下所在路徑欄位資料間的分隔符號欄位資料的前後字元

11/21

Audit Log 入庫步驟 1 :將 data dir 的 audit log xml 檔轉換為row data

insert%|%201%|%%|%%|%127.0.0.1%|%%|%Query%|%%|%%|%%|%%|%1656_2015-08-10T07:46:05%|%%|%^INSERT INTO audit_information.AUDIT_PARSED (COMMAND_CLASS, CONNECTIONID, DB_NAME, HOST_NAME, IP_ADDRESS, MYSQL_VERSION, COMMAND_NAME, OS_LOGIN, OS_VERSION, PRIV_USER, PROXY_USER, RECORD_ID, SERVER_ID, SQL_TEXT, STARTUP_OPTIONS, COMMAND_STATUS, STATUS_CODE, DATE_TIMESTAMP, USER_NAME, LOG_VERSION) values ('show_databases', '65', '', '', '127.0.0.1', '', 'Query', '', '', '', '', '429_2015-08-06T08:01:46', '', 'show databases', '', '0', '0', '2015-08-10T03:51:04 UTC', 'mysqldba[mysqldba] @ [127.0.0.1]', '')^%|%%|%0%|%0%|%2015-08-10T07:46:05 UTC%|%mysqldba[mysqldba] @ [127.0.0.1]%|%

Row data 格式

12/21

Audit Log 入庫步驟 2 :將產出的 row data 匯入 DB audit_information Audit log 內容匯入表格 audit_parsed 紀錄匯入成功的 audit log xml 於表格 audit_history

13/21

Audit Log 入庫步驟 3 : Audit log 備份管理 將 Audit log (*.xml) 與 raw data(*.txt) 搬移至備份伺服器上。

14/21

Audit Log 入庫步驟 4 :執行紀錄與障礙查找

15/21

應用與效益查核特定帳號是否執行過 insert 之 SQL 語句

16/21

應用與效益定期 rotate audit log ,並搬移至備份伺服器上,避免檔案過大影響資料庫效能。資料庫異動的軌跡全紀錄在資料表中,便於以關鍵字進行過濾查詢。由於資料表採用 ARCHIVE storage engine ,可防止 DBA 竄改稽核紀錄內容。

17/21

附件

18/21

參數說明audit_log_buffer_size Default 值 : 1048576 bytes 單位 :  bytes

audit_log_file 檔名 : audit.log 可自訂檔案路徑

audit_log_flush 值 =1 時 , the audit log plugin closes and reopens its

log file to flush it. If audit_log_rotate_on_size is greater than 0, setting

audit_log_flush has no effect.

19/21

參數說明audit_log_policy ALL: Log all events NONE:Log nothing LOGINS:Log only login events QUERIES:Log only query events

audit_log_strategy ASYNCHRONOUS:Log asynchronously, wait for space in

output buffer PERFORMANCE:Log asynchronously, drop request if

insufficient space in output buffer SEMISYNCHRONOUS:Log synchronously, permit

caching by operating system 建議值 =ASYNCHRONOUS

20/21

參數說明audit_log_rotate_on_size 預設值為 0 ,不 rotate 可設定 rotate 值,單位 Byte ,但要 4096 倍數

audit_log_format 預設為 OLD 若要調整為 NEW ,需更改 my.cnf 的參數

audit_log_format=NEW ,再重啟 MySQL

報告完畢 敬請指正

top related