CentOs7 swatchを利用してログインを検知する
sshでログインやsudoの実行をwebhookを利用してrocket.chatで検知したかったので、その環境構築手順です。
Centos7バージョン
# cat /etc/centos-release
CentOS Linux release 7.7.1908 (Core)
rocket.chat webhook作成
管理画面よりサービス連携をクリック
右上にある「新しいサービス連携」をクリック
「着信WebHook」をクリック
有効:はい
名前:任意の名前
接続チャンネル:通知を着信するチャンネル
を入力
入力が終われば、ベージ下部にある「変更を保存」をクリック
以上で、最低限の設定は終了
CentOS7設定
centos7にログ監視ツールであるswatchをインストールします
## 必要パッケージのインストール
yum -y install perl-File-Tail
## swatchインストール
yum -y install swatch
通知用のシェルを作成します。作成後に権限も設定しておきます
## ssh用
touch /usr/local/bin/chat_ssh_alart.sh
chmod 750 /usr/local/bin/chat_ssh_alart.sh
## sudo用
touch /usr/local/bin/chat_sudo_alart.sh
chmod 750 /usr/local/bin/chat_sudo_alart.sh
それぞれのシェルを下記の通りに編集します。
chat_ssh_alart.sh
#!/bin/sh
WEBHOOK_URL="rocket chatで生成されたURL"
TEXT=$*
data=`cat << EOF
{"text":"新たなログインを検知","attachments":[
{
"type": "centos login",
"comment_count": "新たなログイン",
"insert_date": "",
"text": "$TEXT",
"status": ""
}]}
EOF`
curl -X POST -H 'Content-Type: application/json' --data "$data" $WEBHOOK_URL
rocket chatで生成されたURLとは WebHook サービス連携 画面で確認できる。Webhook URLに表示されるURLです。
chat_sudo_alart.sh
#!/bin/sh
WEBHOOK_URL="rocket chatで生成されたURL"
TEXT=$*
data=`cat << EOF
{"text":"sudo実行","attachments":[
{
"type": "centos login",
"insert_date": "",
"text": "$TEXT",
"status": ""
}]}
EOF`
curl -X POST -H 'Content-Type: application/json' --data "$data" $WEBHOOK_URL
次に /etc/swatch/conf/secure.conf を下記のように編集して、実行されるシェルを記述します
## SSHログイン
watchfor /Accepted/
echo
exec "\/usr\/local\/bin\/chat_ssh_alart.sh $_ > /dev/null 2>&1"
### sudo実行
watchfor /.*COMMAND.*/
echo
exec "\/usr\/local\/bin\/chat_sudo_alart.sh $* > /dev/null 2>&1"
swatch起動
監視対象のログを指定して、swatchを起動します
swatch -c /etc/swatch/conf/secure.conf -t /var/log/secure &
試しにsshでログインしてみます。
ちゃんとrocket.cat側で通知が確認できました。
-
前の記事
Nuxt.js yarn start時に外部IPから接続できるように設定する 2019.12.02
-
次の記事
CentOs8に MeteorをインストールしてHello Worldまでしてみる 2019.12.02
コメントを書く