- データベース管理者のための主要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としてログインします。
oracleUNIXセッションで、共通ユーザー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>rootUNIXセッションに戻り、共通監査ポリシー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アクションに対応しています。 oracleUNIXセッションに戻り、共通ユーザー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 $rootUNIXセッションに戻り、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 $ exitPDB20のローカル監査ポリシーPOL_PDB20ではINSERTアクションを監査しますが、SYSLOGではCDBレベルで実行されたアクションのみを記録するため、監査レコードはSYSLOGファイルに書き込まれません。
親トピック: 共通統合監査ポリシーのためのSYSLOG宛先