【CentOS】侵入検知したらSlack通知する

■環境

CentOS 7.4
AIDE 0.15.1


AIDEという侵入検知ツールを導入し、検査結果をSlackに通知するようにします。

AIDEインストール

yum install -y aide

AIDE設定

vim /etc/aide.conf

95行目辺りより監視対象ディレクトリの設定があります。
設定値の記載方法は以下の通り。

/{DIR_PATH}/ {CHECK_METHOD} #監視対象に含める
!/{DIR_PATH}/ #監視対象から除外する

上記の『DIR_PATH』の部分に対象のディレクトリパスを記載し、
『CHECK_METHOD』に監視方法を記載します。

監視方法については本設定ファイルの95行目以前に記載があるので、そちらを参照してください。
とりあえずAIDE 0.15.1では「CONTENT_EX」にしておくのが無難そうです。

監視対象の設定が完了したら、AIDEのデータベースを初期化します。
※以下コマンド実行後、結構待ちます。

aide -i

自動監視設定

AIDEでスキャンを実行し、結果をSlack通知するスクリプトを作成します。
仮に、/opt/aide_scan.shという名前で作るとします。

vim /opt/aide_scan.sh

シェルスクリプトの中身は以下のようにします。

#!/bin/bash
set +e

##### Settings
## AIDE
LOGFILE="/var/log/aide/aide.log"
AIDEDIR="/var/lib/aide"
## Slack
URL="https://hooks.slack.com/services/AAAAAAAA/BBBBBBBB/CCCCCCCC"
TO="#aide"
EMOJI=":cop:"
NAME="AIDE-COP"

##### Run AIDE Scan
/usr/sbin/aide  -u > $LOGFILE
cp $AIDEDIR/aide.db.new.gz $AIDEDIR/aide.db.gz
x=$(grep "Looks okay" $LOGFILE | wc -l)
if [ $x -eq 1 ]; then
    MSG="OKだよ"
else
    MSG="侵入検知!詳細は[${LOGFILE}]を見てね"
fi

##### Send To Slack
payload="payload={\"channel\": \"${TO//\"/\\\"}\", \"username\": \"${NAME//\"/\\\"}\", \"text\": \"${MSG//\"/\\\"}\", \"icon_emoji\": \"${EMOJI}\"}"
curl -m 30 --data-urlencode "${payload}" $URL -A 'zabbix-slack-alertscript / https://github.com/ericoc/zabbix-slack-alertscript'

スクリプトの設定項目は以下の通りです。

項目 内容
LOGFILE AIDEの検査結果を出力するログファイルです。
AIDEDIR AIDE本体のディレクトリです。aide.confの設定に合わせてください。
URL Slackの『Incoming WebHooks』のURLです。詳細はコチラ
TO メッセージを送るSlackのチャンネル
EMOJI Slack上で表示される絵文字
NAME Slack上で表示される名前

作成したスクリプトを1日1回cronで回します。
以下はcronの設定例です。

0 10 * * * /bin/sh /opt/aide_scan.sh > /dev/null 2>&1

これで1日1回AIDEが侵入検知してくれるようになります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください