- データベース管理者のための主要20c新機能の学習
- データベース管理者のための主要20c新機能の学習
- セキュリティ・ソリューション
- セキュリティ
- 共通統合監査ポリシーのためのSYSLOG宛先
- 演習: 共通統合監査ポリシーのためのSYSLOG宛先
演習: 共通統合監査ポリシーのためのSYSLOG宛先
この演習では、共通統合監査ポリシーのすべての監査レコードを1つの宛先に統合できるようにする方法を示します。構成に使用される新しい初期化パラメータはUNIXプラットフォームでのみサポートされ、Windowsでは使用できません。
- 新しい演習を開始する前に、演習の環境の推奨事項を参照してください。
- 共通統合監査ポリシーが1つの宛先に統合されるように
SYSLOG
宛先を構成する前に、CDB20
に対して/home/oracle/labs/M104781GC10/setup_SYSLOG_audit.sh
シェル・スクリプトを実行します。このシェル・スクリプトでは、共通ユーザーC##TEST
を作成し、通常その共通ユーザーにCREATE SESSION
権限とCREATE TABLE
権限を付与します。$ cd /home/oracle/labs/M104781GC10 $ /home/oracle/labs/M104781GC10/setup_SYSLOG_audit.sh SQL*Plus: Release 20.0.0.0.0 - Production on Fri Mar 20 04:38:30 2020 Version 20.2.0.0.0 Copyright (c) 1982, 2020, Oracle. All rights reserved. Connected to: Oracle Database 20c Enterprise Edition Release 20.0.0.0.0 - Production Version 20.2.0.0.0 SQL> shutdown immediate Database closed. Database dismounted. ORACLE instance shut down. SQL> exit Disconnected from Oracle Database 20c Enterprise Edition Release 20.0.0.0.0 - Production Version 20.2.0.0.0 LSNRCTL for Linux: Version 20.0.0.0.0 - Production on 20-MAR-2020 04:38:57 Copyright (c) 1991, 2019, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.150.76.66)(PORT=1521))) The command completed successfully /usr/bin/ar cr /u01/app/oracle/product/20.2.0/dbhome_1/rdbms/lib/libknlopt.a /u01/app/oracle/product/20.2.0/dbhome_1/rdbms/lib/kzaiang.o chmod 755 /u01/app/oracle/product/20.2.0/dbhome_1/bin - Linking Oracle rm -f /u01/app/oracle/product/20.2.0/dbhome_1/rdbms/lib/oracle ... LSNRCTL for Linux: Version 20.0.0.0.0 - Production on 20-MAR-2020 04:39:09 Copyright (c) 1991, 2019, Oracle. All rights reserved. Starting /u01/app/oracle/product/20.2.0/dbhome_1/bin/tnslsnr: please wait... TNSLSNR for Linux: Version 20.0.0.0.0 - Production System parameter file is /u01/app/oracle/homes/OraDB20Home1/network/admin/listener.ora Log messages written to /u01/app/oracle/diag/tnslsnr/edcdr8p1/listener/alert/log.xml Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.150.76.66)(PORT=1521))) Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.150.76.66)(PORT=1521))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 20.0.0.0.0 - Production Start Date 20-MAR-2020 04:39:09 Uptime 0 days 0 hr. 0 min. 0 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /u01/app/oracle/homes/OraDB20Home1/network/admin/listener.ora Listener Log File /u01/app/oracle/diag/tnslsnr/edcdr8p1/listener/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.150.76.66)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) The listener supports no services The command completed successfully SQL*Plus: Release 20.0.0.0.0 - Production on Fri Mar 20 04:39:09 2020 Version 20.2.0.0.0 Copyright (c) 1982, 2020, Oracle. All rights reserved. Connected to an idle instance. SQL> STARTUP ... SQL*Plus: Release 20.0.0.0.0 - Production on Tue Dec 24 02:34:44 2019 Version 20.2.0.0.0 Copyright (c) 1982, 2019, Oracle. All rights reserved. Last Successful login time: Tue Dec 24 2019 02:31:07 +00:00 Connected to: Oracle Database 20c Enterprise Edition Release 20.0.0.0.0 - Production Version 20.2.0.0.0 SQL> CREATE USER c##test IDENTIFIED BY password CONTAINER=ALL; User created. SQL> GRANT CREATE SESSION, CREATE TABLE TO c##test CONTAINER=ALL; Grant succeeded. SQL> EXIT $
CDB20
のCDBルートで共通およびローカルの監査ポリシーを作成し、PDB20
のPDBレベルでローカル監査ポリシーを作成します。- まず、
CDB20
のCDBルートで共通およびローカルの監査ポリシーを作成します。$ sqlplus / AS SYSDBA Connected. SQL> CREATE AUDIT POLICY pol_common ACTIONS create table CONTAINER=ALL; Audit policy created. SQL> AUDIT POLICY pol_common; Audit succeeded. SQL> CREATE AUDIT POLICY pol_root ACTIONS insert; Audit policy created. SQL> AUDIT POLICY pol_root; Audit succeeded. SQL> COL policy_name FORMAT A18 SQL> COL audit_option FORMAT A18 SQL> SELECT policy_name, audit_option, common FROM AUDIT_UNIFIED_POLICIES WHERE policy_name like 'POL%'; POLICY_NAME AUDIT_OPTION COM ------------------ ------------------ --- POL_COMMON CREATE TABLE YES POL_ROOT INSERT NO SQL>
PDB20
のPDBレベルでローカル監査ポリシーを作成します。SQL> CONNECT system@PDB20 Enter password: password Connected. SQL> CREATE AUDIT POLICY pol_pdb20 ACTIONS select; Audit policy created. SQL> AUDIT POLICY pol_pdb20; Audit succeeded. SQL>
- ポリシー名と、そのアクションおよび共通性を表示します。
SQL> COL policy_name FORMAT A18 SQL> COL audit_option FORMAT A18 SQL> SELECT policy_name, audit_option, common FROM AUDIT_UNIFIED_POLICIES WHERE policy_name like 'POL%'; POLICY_NAME AUDIT_OPTION COM ------------------ ------------------ --- POL_COMMON CREATE TABLE YES POL_PDB20 SELECT NO SQL>
- まず、
- 共通統合監査ポリシーが1つの宛先に統合されるように
SYSLOG
宛先を構成します。facility_clause
は、監査証跡レコードを書き込む機能を指定します。有効な選択肢はUSER
およびLOCAL
です。LOCAL
と入力する場合は、必要に応じて0–7を後ろに付け、SYSLOG
レコードのローカル・カスタム機能を指定します。priority_clause
は、レコードを分類する警告のタイプを指定します。有効な選択肢は、NOTICE
、INFO
、DEBUG
、WARNING
、ERR
、CRIT
、ALERT
およびEMERG
です。SQL> CONNECT / AS SYSDBA Connected. SQL> ALTER SYSTEM SET UNIFIED_AUDIT_COMMON_SYSTEMLOG='local0.info' SCOPE=SPFILE; System altered. SQL>
- ローカル統合監査ポリシーが1つの宛先に統合されるように
SYSLOG
宛先を構成します。SQL> CONNECT sys@PDB20 AS SYSDBA Enter password: password Connected. SQL> ALTER SYSTEM SET UNIFIED_AUDIT_COMMON_SYSTEMLOG='local1.warning' SCOPE=SPFILE; ALTER SYSTEM SET UNIFIED_AUDIT_COMMON_SYSTEMLOG='local1.warning' SCOPE=SPFILE * ERROR at line 1: ORA-65040: operation not allowed from within a pluggable database SQL> CONNECT / AS SYSDBA Connected. SQL> ALTER SYSTEM SET UNIFIED_AUDIT_SYSTEMLOG='local1.warning' SCOPE=SPFILE; System altered. SQL>
UNIFIED_AUDIT_COMMON_SYSTEMLOG
がCDBレベルのinit.oraパラメータであることに注目します。 - 初期化パラメータ
UNIFIED_AUDIT_COMMON_SYSTEMLOG
がSPFILE
スコープで設定されているため、データベース・インスタンスを再起動します。SQL> SHUTDOWN IMMEDIATE Database closed. Database dismounted. ORACLE instance shut down. SQL> STARTUP ORACLE instance started. Total System Global Area 1426061008 bytes Fixed Size 9565904 bytes Variable Size 889192448 bytes Database Buffers 520093696 bytes Redo Buffers 7208960 bytes Database mounted. Database opened. SQL> ALTER PLUGGABLE DATABASE pdb20 OPEN; Pluggable database altered. SQL>
- SYSLOGシステムによって監査アクションが記録される前に、監査レコードを格納するためのOSディレクトリをSYSLOGファイルに定義します。別のターミナル・セッションを開きます。
- rootとしてログインします。
$ sudo su #
/etc/rsyslog.conf
構成ファイルを編集し、RULES
セクションで、SYSTEMLOGのCDBで定義されている様々な値と同じ数の行を追加して、関連するOSディレクトリを指定します。# vi /etc/rsyslog.conf ... #### RULES #### ... # Save boot messages also to boot.log local7.* /var/log/boot.log # Unified Audit Rules local0.info /var/log/root_common_audit_records.log local1.warning /var/log/root_audit_records.log ... #
- SYSLOGデーモンを再起動します。
# cd /etc/init.d # service rsyslog restart Redirecting to /bin/systemctl restart rsyslog.service #
- rootとしてログインします。
oracle
UNIXセッションで、共通ユーザーC##TEST
としてCDBルートにログオンし、CREATE TABLE操作を実行した後、作成された表に対してINSERT操作を実行します。SQL> CONNECT c##test SQL*Plus: Release 20.0.0.0.0 - Production on Fri Mar 20 05:44:04 2020 Version 20.2.0.0.0 Copyright (c) 1982, 2020, Oracle. All rights reserved. Enter password: password Connected to: Oracle Database 20c Enterprise Edition Release 20.0.0.0.0 - Production Version 20.2.0.0.0 SQL> ALTER SESSION SET default_sharing = 'EXTENDED DATA'; Session altered. SQL> CREATE TABLE test (id NUMBER, label VARCHAR2(10)); Table created. SQL> INSERT INTO test VALUES (1,'A'); 1 row created.COMMIT; SQL> INSERT INTO test VALUES (2,'B'); 1 row created. SQL> COMMIT; Commit complete. SQL>
root
UNIXセッションに戻り、共通監査ポリシーPOL_COMMON
によってCREATE TABLEの監査レコードが生成されたため、syslogエントリが/var/log/root_common_audit_records.log
ファイルに作成されていることを確認します。# cat /var/log/root_common_audit_records.log Mar 20 08:51:55 your_server journal: Oracle Unified Audit[9653]: LENGTH: '214' TYPE:"4" DBID:"2739122757" SESID:"112109882" CLIENTID:"" ENTRYID:"1" STMTID:"8" DBUSER:"C##TEST" CURUSER:"C##TEST" ACTION:"1" RETCODE:"0" SCHEMA:"C##TEST" OBJNAME:"TEST" PDB_GUID:"9DF89CC354CB1655E0538EE0E40A712F" #
POL_COMMON
監査ポリシーではすべてのコンテナ内ですべてのCREATE TABLE文を監査するため、唯一のエントリは一般的に監査されるCREATE TABLEアクションに対応しています。INSERT文を監査する監査ポリシーPOL_ROOT
はCDBルートでローカルにのみ有効になっているため、INSERTアクションはこのログ・ファイルに記録されません。- ローカル・ルート監査ポリシー
POL_ROOT
によってINSERTの監査レコードが生成されたため、syslogエントリが/var/log/root_audit_records.log
ファイルに作成されていることを確認します。# cat /var/log/root_audit_records.log Mar 20 08:51:55 your_server journal: Oracle Unified Audit[9653]: LENGTH: '214' TYPE:"4" DBID:"2739122757" SESID:"112109882" CLIENTID:"" ENTRYID:"1" STMTID:"8" DBUSER:"C##TEST" CURUSER:"C##TEST" ACTION:"1" RETCODE:"0" SCHEMA:"C##TEST" OBJNAME:"TEST" PDB_GUID:"9DF89CC354CB1655E0538EE0E40A712F" Mar 20 08:51:58 your_server journal: Oracle Unified Audit[9653]: LENGTH: '214' TYPE:"4" DBID:"2739122757" SESID:"112109882" CLIENTID:"" ENTRYID:"2" STMTID:"9" DBUSER:"C##TEST" CURUSER:"C##TEST" ACTION:"2" RETCODE:"0" SCHEMA:"C##TEST" OBJNAME:"TEST" PDB_GUID:"9DF89CC354CB1655E0538EE0E40A712F" Mar 20 08:52:11 your_server journal: Oracle Unified Audit[9653]: LENGTH: '215' TYPE:"4" DBID:"2739122757" SESID:"112109882" CLIENTID:"" ENTRYID:"3" STMTID:"10" DBUSER:"C##TEST" CURUSER:"C##TEST" ACTION:"2" RETCODE:"0" SCHEMA:"C##TEST" OBJNAME:"TEST" PDB_GUID:"9DF89CC354CB1655E0538EE0E40A712F" #
最初のエントリは、一般的に、またCDBルートでローカルにも監査されるCREATE TABLEアクションに対応しています。INSERT文を監査する監査ポリシー
POL_ROOT
はCDBルートでローカルに有効になっているため、2番目と3番目のエントリはこのログ・ファイルに記録される2つのINSERTアクションに対応しています。 oracle
UNIXセッションに戻り、共通ユーザーC##TEST
としてPDBPDB20
にログオンし、CREATE TABLE操作を実行した後、作成された表に対してINSERT操作を実行します。SQL> CONNECT c##test@PDB20 Enter password: password Connected. SQL> CREATE TABLE testpdb20 (id NUMBER, label VARCHAR2(10)); Table created. SQL> INSERT INTO testpdb20 VALUES (1,'A'); 1 row created. SQL> INSERT INTO testpdb20 VALUES (2,'B'); 1 row created. SQL> COMMIT; Commit complete. SQL> EXIT $
root
UNIXセッションに戻り、syslogエントリが/var/log/root_common_audit_records.log
ファイルに作成されているかどうかを確認します。# cat /var/log/root_common_audit_records.log Mar 20 08:51:55 your_server journal: Oracle Unified Audit[9653]: LENGTH: '214' TYPE:"4" DBID:"2739122757" SESID:"112109882" CLIENTID:"" ENTRYID:"1" STMTID:"8" DBUSER:"C##TEST" CURUSER:"C##TEST" ACTION:"1" RETCODE:"0" SCHEMA:"C##TEST" OBJNAME:"TEST" PDB_GUID:"9DF89CC354CB1655E0538EE0E40A712F" Mar 20 09:02:48 your_server journal: Oracle Unified Audit[16023]: LENGTH: '218' TYPE:"4" DBID:"79515510" SESID:"3581432176" CLIENTID:"" ENTRYID:"2" STMTID:"7" DBUSER:"C##TEST" CURUSER:"C##TEST" ACTION:"1" RETCODE:"0" SCHEMA:"C##TEST" OBJNAME:"TESTPDB20" PDB_GUID:"A12EDF03A4B47886E053424C960AD028" #
共通監査ポリシー
POL_COMMON
ではすべてのコンテナ内とPDB20
内でもすべてのCREATE TABLE文を監査するため、2番目のエントリは一般的に監査されるCREATE TABLEアクションに対応しています。INSERT文を監査する監査ポリシーPOL_ROOT
はCDBルートでローカルにのみ作成され、すべてのコンテナで一般的には作成されないため、INSERTアクションはこのログ・ファイルに記録されません。- syslogエントリが
/var/log/root_audit_records.log
ファイルに作成されているかどうかを確認します。# cat /var/log/root_audit_records.log ... Mar 20 08:51:55 your_server journal: Oracle Unified Audit[9653]: LENGTH: '214' TYPE:"4" DBID:"2739122757" SESID:"112109882" CLIENTID:"" ENTRYID:"1" STMTID:"8" DBUSER:"C##TEST" CURUSER:"C##TEST" ACTION:"1" RETCODE:"0" SCHEMA:"C##TEST" OBJNAME:"TEST" PDB_GUID:"9DF89CC354CB1655E0538EE0E40A712F" Mar 20 08:51:58 your_server journal: Oracle Unified Audit[9653]: LENGTH: '214' TYPE:"4" DBID:"2739122757" SESID:"112109882" CLIENTID:"" ENTRYID:"2" STMTID:"9" DBUSER:"C##TEST" CURUSER:"C##TEST" ACTION:"2" RETCODE:"0" SCHEMA:"C##TEST" OBJNAME:"TEST" PDB_GUID:"9DF89CC354CB1655E0538EE0E40A712F" Mar 20 08:52:11 your_server journal: Oracle Unified Audit[9653]: LENGTH: '215' TYPE:"4" DBID:"2739122757" SESID:"112109882" CLIENTID:"" ENTRYID:"3" STMTID:"10" DBUSER:"C##TEST" CURUSER:"C##TEST" ACTION:"2" RETCODE:"0" SCHEMA:"C##TEST" OBJNAME:"TEST" PDB_GUID:"9DF89CC354CB1655E0538EE0E40A712F" ... # exit exit $ exit
PDB20
のローカル監査ポリシーPOL_PDB20
ではINSERTアクションを監査しますが、SYSLOGではCDBレベルで実行されたアクションのみを記録するため、監査レコードはSYSLOGファイルに書き込まれません。
親トピック: 共通統合監査ポリシーのためのSYSLOG宛先