IBM i システム監査対応:ユーザーがサイン・オンした履歴を調べられませんか?
Question
システム監査の関係で、ユーザーがシステムにサイン・オンした日時を知りたいのですが調べる方法はないでしょうか。
Answer
サイン・オン/サイン・オフ の履歴は監査ジャーナルで確認することができます。
ただし、OSの機能である監査ジャーナルの設定が必要です。
設定は以下の通りです。- 監査ログを記録するためのレシーバーの作成
CRTJRNRCV JRNRCV(jrnlib/レシーバー名)
※レシーバー名およびライブラリー名の指定は、わかりやすい名前にします - レシーバーに紐づける監査ジャーナルの作成
CRTJRN JRN(QSYS/QAUDJRN) JRNRCV(jrnlib/レシーバー名) DLTRCV(*NO)
※ジャーナル名は固定です。
※レシーバーが自動削除されないようにここではDLTRCV(*NO)を指定しています。 - システム値 QAUDCTL
WRKSYSVAL SYSVAL(QAUDCTL) にて *AUDLVL が設定されている。 - システム値 QAUDLVL
WRKSYSVAL SYSVAL(QAUDLVL) にて *JOBDTA が設定されている。
(*JOBDTAはジョブの開始 終了、他のジ ョブの保留、解放、停止、続行、変更の情報を収集します。)
ユーザーのログイン情報はジャーナル・コードのT、ジャーナル項目のJSにて確認できます。
項目タイプ :S:ジョブ開始/E:ジョブ終了、その他
ジョブタイプ:I:対話式/B:バッチ、その他
その他にも、ユーザープロファイルやリモートアドレス(IPアドレス) を確認できます。
詳細は以下の公開ドキュメントをご参照ください。
JS (ジョブ変更) ジャーナル項目
https://www.ibm.com/docs/ja/i/7.5.0?topic=entries-js-job-change-journal
監査ジャーナルの情報はDSPJRNコマンドにて確認および取得ができます。
出力されたファイルをQUERYで確認しても良いですし、データ転送にてExcelファイル形式でダウンロードしてフィルター機能を駆使しても見やすいかと思います。
コマンド例:
DSPJRN JRN(QAUDJRN) RCVRNG(jrnlib/レシーバー名)
JRNCDE((T)) ENTTYP(JS)
OUTPUT(*OUTFILE)
OUTFILFMT(*TYPE5)
OUTFILE(出力先LIB名/出力先FILE名)
下記画像はDSPJRNで出力した情報をQUERYで表示したものです。
ユーザーTSUKIが25/10/20 10:54ごろに対話型ジョブ(I)にてサイン・オン(S:ジョブの開始) /サイン・オフ(E:ジョブの終了)していることが分かります。
事前に上記3,4のようにシステム値が設定されていないと、その当時のサイン・オン/サイン・オフの情報が監査ジャーナルに記録されないので注意してください。
監査ジャーナルの場合、ログを長く持たせておく必要があるかと思います。レシーバーを自動削除する設定にすると直近の情報しか残りませんので、レシーバーの管理にも注意が必要です。
OSの機能なので使いこなすにはある程度のスキルが必要ですが、有償のツール等を使うのも一つの手法となります。
by . 槻樹
