0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Linux設定】入力されたコマンドをログとして取得し、ファイル保存(rsyslog)

Last updated at Posted at 2025-04-27

ゴール

Linuxサーバー(EC2内)に接続して入力されたコマンドを監査用のログとして残す

前提

 ・EC2起動済み(Linux)
 ・SSH接続可能

Linux設定

bashrc設定

bashrcとは?
bashを起動したときに読み込まれる設定ファイル
(正確には、bash_profileから読み込まれるファイル)

まず、Linuxでコマンドをログとして記録する設定ファイルのAuditを設定します。

vim /etc/bashrc

ファイルの最後に下記を追加します。

export PROMPT_COMMAND='RETRN_VAL=$?; logger -p local1.notice -t bash_audit "[$USER][$(pwd)] $(history 1 | sed "s/^[ ]*[0-9]\+[ ]*//")"'

上記はコマンドが実行されるたび(PROMPT_COMMAND)に実行コマンド&ユーザー名&実行ディレクトリの情報をrsyslogに送る設定となります。

logger -p local1.notice とは?

loggerはsyslogでログを送る用のコマンド
local1 ~ local7まではユーザーが定義する用のログカテゴリとなっています。
今回はlocal1を、bashのコマンド履歴用のログカテゴリとして使用します。

image.png
↑追記して保存(:wq)

rsyslog設定

rsyslogに関する設定は 「bash_audit.conf」

vim /etc/rsyslog.d/bash_audit.conf
rsyslog.d/bash_audit.conf
local1.*    /var/log/bash_audit.log

↑を追記して保存

which rsyslog
sudo yum install -y rsyslog
sudo systemctl restart rsyslog
sudo systemctl status rsyslog

whichコマンドでrsyslogサービスの存在を確認(ない場合はインストール)
rsyslogサービスを再起動

image.png
↑「active」になっていれば成功

確認

ログファイルを確認して、確認してみる

cat /var/log/bash_audit.log

image.png
↑出力されている

ログを日付ごとに分けたい

これだとすべての日付のログが同じファイルに混在しており、保守性が低い
ログの日付ごとにファイルを分けるようにrsyslog設定を変える

vim /etc/rsyslog.d/bash_audit.conf

↓を記載

/etc/rsyslog.d/bash_audit.conf
template(name="DailyLogFile" type="string" string="/var/log/bash_audit/%$YEAR%-%$MONTH%-%$DAY%.log")

if $syslogfacility-text == 'local1' then {
    action(type="omfile" dynaFile="DailyLogFile")
    stop
}

actionはrsyslogの何かを実行するブロック
type="omfile"はログを指定したテンプレートで出力するのを指定する
%$YEAR%-%$MONTH%-%$DAY%.log ⇒ yyyyMMdd形式(%~%はLinuxの環境変数)

また、/var/log/bash_auditディレクトリ作成&パーミッション設定を行う

sudo mkdir -p /var/log/bash_audit
sudo chown root:adm /var/log/bash_audit
sudo chmod 770 /var/log/bash_audit

ログ用フォルダ作成&rootユーザーを所有者にして書き込み権限を付与

rsyslogを再起動&ログファイル確認

sudo systemctl restart rsyslog
cd /var/log/bash_audit
ls

image.png
↑できてる

image.png
↑中身も出力されている

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?