如何設定 oracle 記錄 - n-partner · 2020-01-21 · 2 前言 本文件描述 n-reporter...

60
2020/01/21 如何設定 Oracle 記錄 V006

Upload: others

Post on 28-Mar-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

2020/01/21

如何設定 Oracle 記錄

V006

版權聲明

N-Partner Technologies Co.版權所有。未經 N-Partner Technologies Co.書面許可,不得以任何形式仿製、拷

貝、謄抄或轉譯本手冊的任何內容。由於產品一直在更新中, N-Partner Technologies Co. 保留不告知變動的權利。

商標

本手冊內所提到的任何的公司產品、名稱及註冊商標,均屬其合法註冊公司所有。

目錄

前言………………………………………………. 2

1. Linux .......................................................... 3

1.1 Oracle 11g ...................................................... 3 1.1.1 編輯 Oracle 11g Audit 設定 ................................. 3 1.1.2 設定 Rsyslog 轉發 Oracle log ............................. 7 1.2 Oracle 12c ...................................................... 8 1.2.1 編輯 Oracle 12c Audit 設定 ................................. 8 1.2.2 設定 Rsyslog 轉發 Oracle log ........................... 12 1.3 Oracle 18c .................................................... 13 1.3.1 編輯 Oracle 18c Audit 設定 ............................... 13 1.3.2 設定 Rsyslog 轉發 Oracle log ........................... 16 1.4 Oracle 19c .................................................... 17 1.4.1 編輯 Oracle 19c Audit 設定 ............................... 17 1.4.2 設定 Rsyslog 轉發 Oracle log ........................... 21

2. AIX ............................................................ 22

2.1 Oracle ........................................................... 22 2.2 Syslog .......................................................... 24 2.2.1 Syslog-NG............................................................ 24 2.2.2 Rsyslog ................................................................ 25

3. Windows .................................................. 26

3.1 NXLog .......................................................... 26 3.1.1 NXLog 架構 ......................................................... 26 3.1.2 NXLog 安裝 ......................................................... 27 3.1.3 NXLog 設定檔 ..................................................... 28 3.1.4 NXLog 啟動服務 .................................................. 30 3.2 Windows ...................................................... 31 3.2.1 網域 ..................................................................... 31 3.2.1.1 組織單位 .................................................................... 31 3.2.1.2 群組原則 .................................................................... 34 3.2.2 工作群組 .............................................................. 39 3.2.3 稽核資料庫檔案夾 ............................................... 43 3.3 Oracle Database .......................................... 47 3.3.1 Oracle 12c Audit 設定 ......................................... 47 3.3.2 Oracle 19c Audit 設定 ......................................... 51

4. N-Reporter ............................................... 55

4.1 Linux / AIX.................................................... 56

4.2 Windows ...................................................... 57

連 絡 資 訊 .................................................. 58

2

前言

本文件描述 N-Reporter 使用者在 Linux / AIX 如何使用 Rsyslog 或 Syslog-NG 方式設定 Oracle audit

syslog。

在 Windows 如何使用 Open Source 工具 NXLog 方式設定 Oracle audit 事件記錄。

NXLog 工具將 Oracle audit 事件記錄轉成 syslog,再轉發到 N-Reporter 做正規化、稽核與分析。

3

1. Linux

1.1 Oracle 11g

1.1.1 編輯 Oracle 11g Audit 設定

(1) 建立 oracle log 資料夾和變更為 oracle 權限

# mkdir /var/log/oracle

# chown -R oracle:oinstall /var/log/oracle

# ll /var/log | grep oracle

(2) 登入 SQLPlus

$ sqlplus / AS SYSDBA

(3) 顯示審計參數

SQL> show parameter audit;

4

(4) 修改審計記錄到作業系統

SQL> alter system set audit_trail='OS' scope=spfile;

(5) 修改審計記錄到 /var/log/oracle 資料夾

SQL> alter system set audit_file_dest='/var/log/oracle/' scope=spfile;

(6) 停止 Oracle 資料庫服務

SQL> shutdown immediate

(7) 啟動 Oracle 資料庫服務

SQL> startup

5

(8) 顯示審計參數

SQL> show parameter audit;

(9) 停止 Oracle 監聽服務

$ lsnrctl stop

(10) 啟動 Oracle 監聽服務

$ lsnrctl start

6

(11) 重新載入 listener.ora 設定

$ lsnrctl reload

7

1.1.2 設定 Rsyslog 轉發 Oracle log

(1) 編輯 Rsyslog 設定檔

# vim /etc/rsyslog.conf

(2) 加載 imfile 輸入模組

$ModLoad imfile # provides support for file logging

(3) 新增將 Oracle Log 轉發到 N-Reporter

# Send oracle log to N-Reporter

input(type="imfile" File="/var/log/oracle/orcl*.aud" Tag="oracle" Severity="info" Facility="local0" Ruleset="nreporter")

ruleset(name="nreporter"){action(type="omfwd" Target="192.168.1.184" Port="514" Protocol="udp")}

紅色文字部位請輸入 N-Reporter 系統 IP address

Target="192.168.1.184"

紅色文字請輸入 Oracle 日誌路徑檔案

File="/var/log/oracle/orcl*.aud"

(3) 重啟 Rsyslog 服務和確認 Rsyslog 服務正常

# systemctl restart rsyslog && systemctl status rsyslog

8

1.2 Oracle 12c

1.2.1 編輯 Oracle 12c Audit 設定

(1) 建立 oracle log 資料夾和變更為 oracle 權限

# mkdir /var/log/oracle

# chown -R oracle:oinstall /var/log/oracle

# ll /var/log | grep oracle

(2) 登入 SQLPlus

$ sqlplus / AS SYSDBA

(3) 顯示審計參數

SQL> show parameter audit_trail

9

(4) 修改審計記錄到作業系統

SQL> alter system set audit_trail='OS' scope=spfile;

(5) 修改審計記錄到 /var/log/oracle 資料夾

SQL> alter system set audit_file_dest='/var/log/oracle/' scope=spfile;

(6) 停止 Oracle 資料庫服務

SQL> shutdown immediate

(7) 啟動 Oracle 資料庫服務

SQL> startup

10

(8) 顯示審計參數

SQL> show parameter audit

(9) 停止 Oracle 監聽服務

$ lsnrctl stop

(10) 啟動 Oracle 監聽服務

$ lsnrctl start

11

(11) 重新載入 listener.ora 設定

$ lsnrctl reload

12

1.2.2 設定 Rsyslog 轉發 Oracle log

(1) 編輯 Rsyslog 設定檔

# vim /etc/rsyslog.conf

(2) 加載 imfile 輸入模組

$ModLoad imfile # provides support for file logging

(3) 新增將 Oracle Log 轉發到 N-Reporter

# Send oracle log to N-Reporter

input(type="imfile" File="/var/log/oracle/orcl*.aud" Tag="oracle" Severity="info" Facility="local0" Ruleset="nreporter")

ruleset(name="nreporter"){action(type="omfwd" Target="192.168.1.184" Port="514" Protocol="udp")}

紅色文字部位請輸入 N-Reporter 系統 IP address

Target="192.168.1.184"

紅色文字請輸入 Oracle 日誌路徑檔案

File="/var/log/oracle/orcl*.aud"

(3) 重啟 Rsyslog 服務和確認 Rsyslog 服務正常

# systemctl restart rsyslog && systemctl status rsyslog

13

1.3 Oracle 18c

1.3.1 編輯 Oracle 18c Audit 設定

(1) 建立 oracle log 資料夾和變更為 oracle 權限

# mkdir /var/log/oracle

# chown -R oracle:oinstall /var/log/oracle

# ll /var/log | grep oracle

(2) 登入 SQLPlus

$ sqlplus / AS SYSDBA

(3) 顯示審計參數

SQL> show parameter audit;

(4) 修改審計記錄到作業系統

SQL> alter system set audit_trail='OS' scope=spfile;

14

(5) 修改審計記錄到 /var/log/oracle 資料夾

SQL> alter system set audit_file_dest='/var/log/oracle/' scope=spfile;

(6) 停止 Oracle 資料庫服務

SQL> shutdown immediate

(7) 啟動 Oracle 資料庫服務

SQL> startup

(8) 顯示審計參數

SQL> show parameter audit;

15

(9) 停止 Oracle 監聽服務

$ lsnrctl stop

(10) 啟動 Oracle 監聽服務

$ lsnrctl start

(11) 重新載入 listener.ora 設定

$ lsnrctl reload

16

1.3.2 設定 Rsyslog 轉發 Oracle log

(1) 編輯 Rsyslog 設定檔

# vim /etc/rsyslog.conf

(2) 加載 imfile 輸入模組

$ModLoad imfile # provides support for file logging

(3) 新增將 Oracle Log 轉發到 N-Reporter

# Send oracle log to N-Reporter

input(type="imfile" File="/var/log/oracle/cdb1*.aud" Tag="oracle" Severity="info" Facility="local0"

Ruleset="nreporter")

ruleset(name="nreporter"){action(type="omfwd" Target="192.168.1.184" Port="514" Protocol="udp")}

紅色文字部位請輸入 N-Reporter 系統 IP address

Target="192.168.1.184"

紅色文字請輸入 Oracle 日誌路徑檔案

File="/var/log/oracle/cdb1*.aud"

(3) 重啟 Rsyslog 服務和確認 Rsyslog 服務正常

# systemctl restart rsyslog && systemctl status rsyslog

17

1.4 Oracle 19c

1.4.1 編輯 Oracle 19c Audit 設定

(1) 建立 oracle log 資料夾和變更為 oracle 權限

# mkdir /var/log/oracle

# chown -R oracle:oinstall /var/log/oracle

# ll /var/log | grep oracle

(2) 登入 SQLPlus

$ sqlplus / AS SYSDBA

(3) 顯示審計參數

SQL> show parameter audit;

18

(4) 修改審計記錄到作業系統

SQL> alter system set audit_trail='OS' scope=spfile;

(5) 修改審計記錄到 /var/log/oracle 資料夾

SQL> alter system set audit_file_dest='/var/log/oracle/' scope=spfile;

(6) 停止 Oracle 資料庫服務

SQL> shutdown immediate

(7) 啟動 Oracle 資料庫服務

SQL> startup

19

(8) 顯示審計參數

SQL> show parameter audit;

(9) 停止 Oracle 監聽服務

$ lsnrctl stop

(10) 啟動 Oracle 監聽服務

$ lsnrctl start

20

(11) 重新載入 listener.ora 設定

$ lsnrctl reload

21

1.4.2 設定 Rsyslog 轉發 Oracle log

(1) 編輯 Rsyslog 設定檔

# vim /etc/rsyslog.conf

(2) 加載 imfile 輸入模組

$ModLoad imfile # provides support for file logging

(3) 新增將 Oracle Log 轉發到 N-Reporter

# Send oracle log to N-Reporter

input(type="imfile" File="/var/log/oracle/ORCLCDB*.aud" Tag="oracle" Severity="info" Facility="local0"

Ruleset="nreporter")

ruleset(name="nreporter"){action(type="omfwd" Target="192.168.1.184" Port="514" Protocol="udp")}

紅色文字部位請輸入 N-Reporter 系統 IP address

Target="192.168.1.184"

紅色文字請輸入 Oracle 日誌路徑檔案

File="/var/log/oracle/ORCLCDB*.aud"

(3) 重啟 Rsyslog 服務和確認 Rsyslog 服務正常

# systemctl restart rsyslog && systemctl status rsyslog

22

2. AIX

2.1 Oracle

(1) 建立 oracle log 資料夾和變更為 oracle 權限

# mkdir /var/adm/oracle

# chown -R oracle:oinstall /var/adm/oracle

# ls -l /var/adm | grep oracle

(2) 登入 SQLPlus

$ sqlplus / as sysdba

(3) 顯示審計參數

SQL> show parameter audit

(4) 顯示資料庫審計

SQL> show parameter audit_trail

(5) 顯示審計檔案路徑

SQL> show parameter audit_file_dest

(6) 顯示審計等級

SQL> show parameter audit_syslog_level

(7) 顯示 sysdba 特權用戶審計

SQL> show parameter audit_syslog_operations

(8) 修改審計記錄到作業系統

SQL> alter system set audit_trail='OS' scope=spfile;

(9) 修改審計記錄到 /var/adm/oracle 資料夾

SQL> alter system set audit_file_dest='/var/adm/oracle/' scope=spfile;

23

(10) 啟用 sysdba 特權用戶審計

SQL> alter system set audit_sys_operations=true scope=spfile;

(11) 修改審計記錄 facility: local0 info 訊息

SQL> alter system set audit_syslog_level='local0.info' scope=spfile;

(12) 停止 Oracle 資料庫服務

SQL> shutdown immediate

(13) 啟動 Oracle 資料庫服務

SQL> startup

(14) 顯示審計參數

SQL> show parameter audit

(15) 停止 Oracle 監聽服務

$ lsnrctl stop

(16) 啟動 Oracle 監聽服務

$ lsnrctl start

(17) 重新載入 listener.ora 設定

$ lsnrctl reload

24

2.2 Syslog

以下分別為 Syslog-NG 和 Rsyslog 設定方式。

2.2.1 Syslog-NG

(1) 編輯 syslog 設定檔

# vi /etc/syslog.conf

(2) 將 Oracle log 轉發到 N-Reporter

# Send Oracle log to N-Reporter

local0.* @192.168.1.184

紅色文字部位請輸入 N-Reporter 系統 IP address

local0.* @192.168.1.184

(3) 停止 syslogd 服務和啟動 syslogd 服務

# stopsrc -s syslogd && startsrc -s syslogd

(4) 確認 syslogd 服務情形

# ps -ef | grep syslogd

25

2.2.2 Rsyslog

(1) 編輯 Rsyslog 設定檔

# vi /etc/rsyslog.conf

(2) 將 Oracle log 轉發到 N-Reporter

# Send Oracle log to N-Reporter

local0.* @192.168.1.184

紅色文字部位請輸入 N-Reporter 系統 IP address

local0.* @192.168.1.184

(3) 停止 Rsyslog 服務和啟動 Rsyslog 服務

# stopsrc -s rsyslogd && startsrc -s rsyslogd

(4) 確認 rsyslogd 服務情形

# ps -ef | grep rsyslogd

26

3. Windows

3.1 NXLog

3.1.1 NXLog 架構

NXLog 的 plugin 架構允許任何類型的輸入讀取資料,解析和轉換訊息的格式,然後將其發送到任何類型的輸出。可

以同時使用不同的輸入,處理和輸出模組來滿足事件記錄。

https://nxlog.co/documentation/nxlog-user-guide#modules-im

27

3.1.2 NXLog 安裝

(1) 下載 NXLog

前往網址 https://nxlog.co/products/nxlog-community-edition/download

下載網址最新版 nxlog-ce-x.x.xxxx.msi,範例: nxlog-ce-2.10.2150.msi

(2) 安裝 NXLog

點擊 [nxlog-ce-2.10.2150.msi] -> 按 [Install] 到 [Finish]

(3) 下載並覆蓋 NXLog 設定檔

下載 NXLog Oracle 設定檔 https://www.npartnertech.com/download/tech/nxlog_Oracle.conf -> 開啟

[Windows PowerShell] -> 輸入 Copy-Item nxlog_Oracle.conf 'C:\Program Files (x86)\nxlog\conf\nxlog.conf' 覆

蓋 NXLog 設定檔

28

3.1.3 NXLog 設定檔

## Please set the ROOT to the folder your nxlog was installed into, otherwise it will not start.

define NCloud 192.168.1.184

define ROOT C:\Program Files (x86)\nxlog

Moduledir %ROOT%\modules

CacheDir %ROOT%\data

Pidfile %ROOT%\data\nxlog.pid

SpoolDir %ROOT%\data

LogFile %ROOT%\data\nxlog.log

Moduledir %ROOT%\modules

CacheDir %ROOT%\data

Pidfile %ROOT%\data\nxlog.pid

SpoolDir %ROOT%\data

## Load the modules needed by the outputs

<Extension syslog>

Module xm_syslog

</Extension>

## For Oracle event log file use the following:

<Input in_eventlog>

Module im_msvistalog

ReadFromLast TRUE

SavePos TRUE

Query <QueryList> \

<Query Id="0"> \

<Select Path="Security">*[System[(EventID=4656 or EventID=4658 or EventID=4660 or

EventID=4663 or EventID=4985 or EventID=4670)]]</Select> \

<Select Path="Application">*[System[(Provider[@Name='Oracle.orcl'])]]</Select> \

</Query> \

</QueryList>

</Input>

<Output out_eventlog>

Module om_udp

Host %NCloud%

Port 514

Exec $Message = string($SourceName) + ": " + string($EventID) + ": " + $Message;

Exec if ($EventType == 'ERROR' or $EventType == 'AUDIT_FAILURE') { $SyslogSeverityValue = 3; } \

else if ($EventType == 'WARNING') { $SyslogSeverityValue = 4; } \

else if ($EventType == 'INFO' or $EventType == 'AUDIT_SUCCESS') { $SyslogSeverityValue = 5; }

Exec to_syslog_bsd();

</Output>

<Route eventlog>

Path in_eventlog => out_eventlog

</Route>

29

藍色文字部位請輸入 N-Reporter 系統 IP address:

define NCloud 192.168.1.184

藍色文字部位請輸入 Oracle 執行個體名稱:

<Select Path="Application">*[System[(Provider[@Name='Oracle.orcl'])]]</Select> \

30

3.1.4 NXLog 啟動服務

開啟 [Windows PowerShell] -> 輸入 Restart-Service nxlog 啟動 nxlog 服務和 Get-Service nxlog 查看 nxlog 服務

狀態 -> Get-Content 'C:\Program Files (x86)\nxlog\data\nxlog.log' 確認沒有錯誤訊息。

31

3.2 Windows

以下分別為網域和工作群組設定方式。

3.2.1 網域

3.2.1.1 組織單位

(1) 開啟 [Active Directory 使用者和電腦]

(2) 在 [網域名稱] 按滑鼠右鍵 -> 選擇 [新增] -> 點選 [組織單位]

32

(3) 輸入組織單位名稱: Servers -> 按下 [確定]

(4) 選擇 [Computers] 組織單位 -> 在 [電腦名稱(Win2019)] 上按滑鼠右鍵 -> 點選 [移動]

33

(5) 選擇 [Servers] 組織單位 -> 按下 [確定]

(6) 點選 [Servers] 組織單位,確認 [Win2019] 伺服器已移動

34

3.2.1.2 群組原則

(1) 開啟 [群組原則管理]

(2) 在 [Servers] 組織單位上按滑鼠右鍵 -> 點選 [在這個網域中建立 GPO 並連結到…]

35

(3) 輸入群組原則物件名稱: N-Partner Policy -> 按下 [確定]

(4) 在 [N-Partner Policy] 群組原則物件按滑鼠右鍵 -> 點選 [編輯]

36

(5) 展開 [電腦設定] -> [原則] -> [Windows 設定] -> [安全性設定] -> [本機原則] -> [稽核原則] -> 點選 [稽核物件存取]

項目 -> 勾選 [定義這些原則設定]: & [成功] & [失敗] -> 按下 [確定]

37

(6) 開啟 Windows PowerShell

開啟 [Windows PowerShell]

(7) 在 AD 網域伺服器,更新 Oracle 伺服器群組原則

PS C:\> Invoke-GPUpdate -Computer Win2019 -RandomDelayInMinutes 0 -Force

紅色文字部位請輸入 Oracle 伺服器名稱

Invoke-GPUpdate -Computer Win2019 -RandomDelayInMinutes 0 -Force

(8) 在 AD 網域伺服器,產生 Oracle 伺服器群組原則報表

PS C:\> Get-GPResultantSetofPolicy -Computer Win2019 -Path C:\tmp\Win2019.html -ReportType html

紅色文字部位請輸入 Oracle 伺服器名稱和資料夾路徑檔案名稱

Get-GPResultantSetofPolicy -Computer Win2019 -Path C:\tmp\Win2019.html -ReportType html

38

(9) 開啟報表,確認 Oracle 伺服器,套用 N-Partner Policy 群組原則

39

3.2.2 工作群組

(1) 點選 -> 輸入 群組原則 -> 點選 [編輯群組原則]

40

(2) 展開 [電腦設定] -> [Windows 設定] -> [安全性設定] -> [本機原則] -> [稽核原則] -> 點選 [稽核物件存取] 項目 ->

勾選 稽核這些嘗試: [成功] & [失敗] -> 按下[確定]

41

(3) 開啟 [Windows PowerShell]

(4) 更新組原則

PS C:\> gpupdate /force

42

(5) 查看群組原則套用情形

PS C: \> auditpol /get /category:*

43

3.2.3 稽核資料庫檔案夾

稽核 Oracle 資料庫檔案夾記錄檔案動作。

(1) 開啟 [檔案總管]

(2) 選擇 Oracle 資料庫資料夾 (範例: C:\oracle\oradata\ORCL\orclpdb) -> 點選 [共用] 頁面 -> 按下 [進階安全性]

44

(3) 點選 [稽核] 頁面 -> 按下 [新增]

(4) 點選主題: [選取一個主體]

45

(5) 輸入物件名稱: Everyone -> 點選 [檢查名稱] -> 按下 [確定]

(6) 選擇類型: [全部] -> 勾選基本權限: [完全控制] -> 按下 [確定]

46

(7) 按 [確定]

47

3.3 Oracle Database

3.3.1 Oracle 12c Audit 設定

(1) 開啟 [SQL Plus]

(2) 輸入 使用者名稱: 和 密碼:

(3) 顯示審計參數

SQL> show parameter audit;

48

(4) 修改審計記錄到作業系統和離開 [SQL Plus]

SQL> alter system set AUDIT_TRAIL=os scope=spfile;

SQL> exit

49

(5) 重啟 Oracle 資料庫服務和 查看 Oracle 資料庫服務狀態

PS C:\> Restart-Service OracleServiceORCL

PS C:\> Get-Service OracleServiceORCL

50

(6) 重啟 Oracle 監聽服務和查看 Oracle 監聽服務狀態

PS C:\> Restart-Service OracleOraDB12Home1TNSListener

PS C:\> Get-Service OracleOraDB12Home1TNSListener

(7) 登入 [SQL Plus] 查看審計參數

SQL> show parameter audit;

51

3.3.2 Oracle 19c Audit 設定

(1) 開啟 [SQL Plus]

(2) 輸入 user-name: 和 password:

(3) 顯示審計參數

SQL> show parameter audit;

52

(4) 修改審計記錄到作業系統和離開 [SQL Plus]

SQL> alter system set AUDIT_TRAIL=os scope=spfile;

SQL> exit

53

(5) 重啟 Oracle 資料庫服務和查看 Oracle 資料庫服務狀態

PS C:\> Restart-Service OracleServiceORCL

PS C:\> Get-Service OracleServiceORCL

54

(6) 重啟 Oracle 監聽服務和查看 Oracle 監聽服務狀態

PS C:\> Restart-Service OracleOraDB19Home1TNSListener

PS C:\> Get-Service OracleOraDB19Home1TNSListener

(7) 登入 [SQL Plus] 查看審計參數

SQL > show parameter audit;

55

4. N-Reporter

(1) 新增 Oracle Database 設備

選擇 [設備管理] -> [設備樹狀圖] -> 按下 [新增]

56

4.1 Linux / AIX

(2) 設定 Oracle Database 設備的資料格式

輸入名稱 和 IP -> 勾選設備種類: [Syslog] -> 選擇資料格式: [Oracle] -> 選擇設備 Icon: [icon-host] -> 點選接收狀

態: [啟用] -> 按下 [確定]

57

4.2 Windows

(2) 設定 Oracle Database 設備的資料格式

輸入名稱 和 IP -> 勾選設備種類: [Syslog] -> 選擇資料格式: [Windows] -> 選擇設備 Icon: [icon-host] -> 點選接收狀

態: [啟用] -> 按下 [確定]

58

連 絡 資 訊

TEL: +886-4-23752865

FAX: +886-4-23757458

技 術 問 題 請 洽:

Email: [email protected]

Skype: [email protected]

業 務 相 關 請 洽:

Email: [email protected]