【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が侵入検知してくれるようになります。