5 リカバリ・アプライアンスの操作の保護

次のステップでは、rootrasysなどの強力なユーザーがアクセス可能な範囲を狭めることと、メンテナンス・アクションの監査を改善することにより、リカバリ・アプライアンスを堅牢にします。この手順は多くのインストールおよびアプリケーションでは省略可能ですが、様々な規制要件への準拠のために、セキュアなユーザーを確立し使用する必要があります。

たとえば、サンプル・コマンドには、bobsueおよびjimという3つの架空のユーザーがあります。

  1. 名前付きユーザーを作成し、管理権限を持つユーザー・タイプadminを使用してdb_userを割り当てます。

    db_userユーザー・タイプadminは、構成および日常のリカバリ・アプライアンス管理操作のためのrasysの使用に置き換わるものです。このアカウントでは、割り当てられた権限内で特定のSQLPlusコマンドを発行できます。

    racli add db_user --user_type=admin --user_name=bob
    racli add db_user --user_type=admin --user_name=sue

    この例では、bobおよびsue--user_type=adminが管理権限として指定されています。

    ノート:

    db_userユーザー・タイプadminには権限の制限があり、SQLPlusでsysdbaとして使用できません。

  2. リカバリ・アプライアンスsshユーザーを作成します。

    admin_userアカウントは、操作の観点からリカバリ・アプライアンスを管理する新しい名前付きユーザーのロールです。以前rootアクセスが必要だったリカバリ・アプライアンスでオペレーティング・システム・レベルの操作が許可されていますが、admin_userrootではありません。

    racli add admin_user --user_name=bob
    racli add admin_user --user_name=jim
    racli add admin_user --user_name=sue

    この例では、bobsueおよびjimに、管理権限を持つadmin_userが付与されます。

  3. rootおよびoraclesshアクセスを無効にします。

    racli disable ssh
  4. rootoracleおよびraadminrootアクセスを無効にします。

    racli disable root_access
  5. rasysアクセスを無効にします。

    ノート:

    rasysアクセスを無効にする前に、db_userユーザー・タイプのadminアカウントおよびadmin_userアカウントがあることを確認してください。
    racli disable rasys_user
  6. sysリモート・アクセスを無効にします。

    racli disable sys_remote_access
  7. 時間サービスを検証します。

    CHRONYサーバーの変更に関する項を参照してください。

  8. リカバリ・アプライアンスが準拠していることを検証します。

    racli run check --check_name=check_ra_compliance

    前述のコマンドでは、TRUEが返されます。check_ra_complianceでは、次のことが検証されます。

    • rootおよびoraclesshアクセスがすべてのノードで無効になっている。

    • rasysアクセスが無効になっている。

    • sysのリモート・アクセスが無効になっている。

    • タイム・サービスが有効になっている。

    • リカバリ・アプライアンス用の2人以上のadmin_usersが確立されている。

    • adminである2人以上のdb_usersが確立されている。

    前述の項目のいずれかを満たしていない場合は、リカバリ・アプライアンスにまだ1つ以上のセキュリティ・ギャップが存在するため、check_ra_complianceは失敗します。

前述のステップが完了すると、次のようになります。

  • 管理ユーザーの初期セットが構成されています。
  • 管理ユーザーによるアクションの監査証跡が可能です。
  • 様々なコマンドは、適切な権限を持つユーザーに制限されています。
  • 一部のコマンドは、他の承認を最終的に実行する必要がある定数操作に制限されます。

リカバリ・アプライアンス・システム・ログのリモート処理

リカバリ・アプライアンスの効率的な管理の一環として、ステータスのモニタリングおよび確認のためにシステム・ログ・ファイルを1つ以上のリモート・サーバーに自動的にエクスポートすると便利です。

リカバリ・アプライアンスの次のようなログ・ファイルのうち、どれを送信するかを構成できます:

  • /var/log/audit/audit.log
  • /var/log/messages
  • /var/log/oracle/deploy/dbmcli.lst.root.0
  • /var/log/aide/aide.log
  • /etc/passwd
  • /var/log/yum.log
  • /var/log/clamav/clamscan.log
  • /var/log/secure
  • /opt/oracle.RecoveryAppliance/log/ra_export.log
  • /opt/oracle.RecoveryAppliance/log/em_backup.log
  • /opt/oracle.RecoveryAppliance/log/ra_fs_cleanup.log
  • /opt/oracle.RecoveryAppliance/log/emctl.log
  • /opt/oracle.RecoveryAppliance/log/racli_update_parameter.log
  • /opt/oracle.RecoveryAppliance/log/racli_alter_parameter.log
  • /opt/oracle.RecoveryAppliance/log/racli_list_parameter.log

リモート受信側の設定ファイルを作成するには

コマンドracli add remote_syslogは、渡された引数から/etc/rsyslog.d/に構成ファイルを作成します:

racli add remote_syslog --dest=<desturl> --port=<destPort> --config_name=<yourConfig>
  • --dest=<desturl>は、このリカバリ・アプライアンスのシステム・ログを受信する(リモート)宛先のIPアドレスを定義します。
  • --port=<destPort>は、このリカバリ・アプライアンスのシステム・ログを受信する(リモート)宛先のポートを定義します。
  • --config_name=<yourConfig>は、fleet01_remote_centralなど、組織にとって意味のある名前を定義します。
racli add remote_syslog --dest=100.104.102.184 --port=514 --config_name=fleet1_test02:
 
Created log /opt/oracle.RecoveryAppliance/log/racli_add_remote_syslog.log
Mon Apr 11 09:17:41 2022: Start: Configure Sys Log to 100.104.102.184
Mon Apr 11 09:17:41 2022:   Start: On Local Node zdlra10adm01
Mon Apr 11 09:17:41 2022:       Start: Restart rsyslog
Mon Apr 11 09:17:41 2022:       End: Restart rsyslog
Mon Apr 11 09:17:41 2022:   End: On Local Node zdlra10adm01
Mon Apr 11 09:17:42 2022:   Start: On Remote Node zdlra10adm02
Mon Apr 11 09:17:43 2022:   End: On Remote Node zdlra10adm02
Mon Apr 11 09:17:43 2022: End: Configure Sys Log to 100.104.102.184

リモート受信側を表示するには

コマンドracli list remote_syslogは、/etc/rsyslog.d/ディレクトリにあるすべての構成ファイルまたは特定のファイルを表示します。

racli list remote_syslog --config_name=fleet1_test01: 

syslog_fleet1_test01:
    NAME = fleet1_test01
    CONFIG_FILE = /etc/rsyslog.d/fleet1_test01.conf

リモート受信側を削除するには

コマンドracli remove remote_syslogは、/etc/rsyslog.d/ディレクトリから名前付き構成ファイルを削除します。

racli remove remote_syslog --config_name='fleet1_test01'

Created log /opt/oracle.RecoveryAppliance/log/racli_remove_remote_syslog.logMon Apr
1109:17:582022: Start: Remove Sys Log
fleet1_test01
Mon Apr 1109:17:582022:   Start: On Local Node zdlra10adm01
Mon Apr 1109:17:582022:       Removed: Sys Log fleet1_test01.conf
Mon Apr 1109:17:582022:       Removed: Metadata of syslog_fleet1_test01
Mon Apr 1109:17:582022:       Start: Restart rsyslog
Mon Apr 1109:17:582022:       End: Restart rsyslog
Mon Apr 1109:17:582022:   End: On Local Node zdlra10adm01
Mon Apr 1109:17:582022:   Start: On Remote Node zdlra10adm02
Mon Apr 1109:18:002022:   End: On Remote Node zdlra10adm02
Mon Apr 1109:18:002022: End: Remove Sys Log fleet1_test01

Syslogサーバーまたはフリート・マネージャを構成するには

リカバリ・アプライアンスのログ・ファイルを受信するように、外部および個別のsyslogまたはフリート・サーバーを構成する必要があります。

  • configファイルは、1つの宛先のみを受け入れることができます。

  • configファイルの場所: /etc/rsyslog.d/

  • ログの場所セット: /var/odo/hostsyslogs/

  • ログ・ファイルのネーミング規則: %PROGRAMNAME%_%HOSTNAME%_%$YEAR%-%$MONTH%-%$DAY%-%$HOUR%.log

/etc/rsyslog.dの下にある.confファイルの例

##########REMOTE SYSLOG#################
 
  $ModLoad imfile
 
    ####################
    $InputFilePollInterval 180
    $InputFileName /var/log/aide/aide.log
    $InputFileTag aide:
    $InputFileStateFile stat-aide
    $InputFileSeverity Info
    $InputRunFileMonitor
 
    if $programname == 'aide' then @@100.104.102.184:514
    if $programname == 'aide' then stop
 
    ####################
    $InputFilePollInterval 180
    $InputFileName /var/log/audit/audit.log
    $InputFileTag audit:
    $InputFileStateFile stat-audit
    $InputFileSeverity Info
    $InputRunFileMonitor
 
    if $programname == 'audit' then @@100.104.102.184:514
    if $programname == 'audit' then stop
 
    ####################
    $InputFilePollInterval 180
    $InputFileName /var/log/clamav/clamscan.log
    $InputFileTag clamav:
    $InputFileStateFile stat-clamav
    $InputFileSeverity Info
    $InputRunFileMonitor
 
    if $programname == 'clamav' then @@100.104.102.184:514
    if $programname == 'clamav' then stop
 
    ####################
    $InputFilePollInterval 180
    $InputFileName /var/log/oracle/deploy/dbmcli.lst.root.0
    $InputFileTag dbmcli:
    $InputFileStateFile stat-dbmcli
    $InputFileSeverity Info
    $InputRunFileMonitor
 
    if $programname == 'dbmcli' then @@100.104.102.184:514
    if $programname == 'dbmcli' then stop
 
    ####################
    $InputFilePollInterval 180
    $InputFileName /opt/oracle.RecoveryAppliance/log/em_backup.log
    $InputFileTag em-backup:
    $InputFileStateFile stat-em-backup
    $InputFileSeverity Info
    $InputRunFileMonitor
 
    if $programname == 'em-backup' then @@100.104.102.184:514
    if $programname == 'em-backup' then stop
 
    ####################
    $InputFilePollInterval 180
    $InputFileName /opt/oracle.RecoveryAppliance/log/emctl.log
    $InputFileTag emctl:
    $InputFileStateFile stat-emctl
    $InputFileSeverity Info
    $InputRunFileMonitor
 
    if $programname == 'emctl' then @@100.104.102.184:514
    if $programname == 'emctl' then stop
 
    ####################
    $InputFilePollInterval 180
    $InputFileName /var/log/messages
    $InputFileTag messages:
    $InputFileStateFile stat-messages
    $InputFileSeverity Info
    $InputRunFileMonitor
 
    if $programname == 'messages' then @@100.104.102.184:514
    if $programname == 'messages' then stop
 
    ####################
    $InputFilePollInterval 180
    $InputFileName /etc/passwd
    $InputFileTag passwd:
    $InputFileStateFile stat-passwd
    $InputFileSeverity Info
    $InputRunFileMonitor
 
    if $programname == 'passwd' then @@100.104.102.184:514
    if $programname == 'passwd' then stop
 
    ####################
    $InputFilePollInterval 180
    $InputFileName /opt/oracle.RecoveryAppliance/log/ra_export.log
    $InputFileTag ra-export:
    $InputFileStateFile stat-ra-export
    $InputFileSeverity Info
    $InputRunFileMonitor
 
    if $programname == 'ra-export' then @@100.104.102.184:514
    if $programname == 'ra-export' then stop
 
    ####################
    $InputFilePollInterval 180
    $InputFileName /opt/oracle.RecoveryAppliance/log/ra_fs_cleanup.log
    $InputFileTag ra-fs-cleanup:
    $InputFileStateFile stat-ra-fs-cleanup
    $InputFileSeverity Info
    $InputRunFileMonitor
 
    if $programname == 'ra-fs-cleanup' then @@100.104.102.184:514
    if $programname == 'ra-fs-cleanup' then stop
 
    ####################
    $InputFilePollInterval 180
    $InputFileName /opt/oracle.RecoveryAppliance/log/racli_alter_parameter.log
    $InputFileTag racli-alter-parameter:
    $InputFileStateFile stat-racli-alter-parameter
    $InputFileSeverity Info
    $InputRunFileMonitor
 
    if $programname == 'racli-alter-parameter' then @@100.104.102.184:514
    if $programname == 'racli-alter-parameter' then stop
 
    ####################
    $InputFilePollInterval 180
    $InputFileName /opt/oracle.RecoveryAppliance/log/racli_list_parameter.log
    $InputFileTag racli-list-parameter:
    $InputFileStateFile stat-racli-list-parameter
    $InputFileSeverity Info
    $InputRunFileMonitor
 
    if $programname == 'racli-list-parameter' then @@100.104.102.184:514
    if $programname == 'racli-list-parameter' then stop
 
    ####################
    $InputFilePollInterval 180
    $InputFileName /opt/oracle.RecoveryAppliance/log/racli_update_parameter.log
    $InputFileTag racli-update-parameter:
    $InputFileStateFile stat-racli-update-parameter
    $InputFileSeverity Info
    $InputRunFileMonitor
 
    if $programname == 'racli-update-parameter' then @@100.104.102.184:514
    if $programname == 'racli-update-parameter' then stop
 
    ####################
    $InputFilePollInterval 180
    $InputFileName /var/log/secure
    $InputFileTag secure:
    $InputFileStateFile stat-secure
    $InputFileSeverity Info
    $InputRunFileMonitor
 
    if $programname == 'secure' then @@100.104.102.184:514
    if $programname == 'secure' then stop
 
    ####################
    $InputFilePollInterval 180
    $InputFileName /var/log/yum.log
    $InputFileTag yum:
    $InputFileStateFile stat-yum
    $InputFileSeverity Info
    $InputRunFileMonitor
 
    if $programname == 'yum' then @@100.104.102.184:514
    if $programname == 'yum' then stop
 
########################################