やりたいこと
雪犬は、素人のためセキュリティが非常に弱い!
誰かに入られてもわからない!
サーバー怖い!
という事で、sshログインしているかどうかを確認したい。
なので、ただソースコピペしてパパーっとやりたい人向け。
★改行したい、ダブルクォート挟むなどの場合は、別のソースを探してください。
出来なかった事
- リアルタイムでのログイン確認
- 実行コマンド内の改行?空白?を改行としてそのまま送信
やること
- スクリプト: ssh ログインの確認, slack にbotとして送信
- CRON: X分, X時間毎に実行させる
ssh ログインの確認
こちら の方のソースを使わせていただいております。
詳細はサイトをご確認ください。
コマンド who
w
でssh がログインしているユーザを確認出来る。
変数msg
へコマンドを代入し、それを送信している、というスクリプト。
slack.sh
#!/bin/bash
set -eu
msg=`w`
SLACK_WEBHOOK_URL="https://hooks.slack.com/services/XXXXXXXXXXXXXXXXXXXXX"
post_slack() {
channel="#bot"
user="my_bot"
emoji="ghost"
message=${msg}
# list: good / danger
color=""
file=$(mktemp)
trap "rm ${file}" EXIT
cat << EOJ > $file
{
"link_names": 1,
"channel": "${channel}",
"username": "${user}",
"icon_emoji": ":${emoji}:",
"attachments": [
{
"color": "${color}",
"text": "${message}"
}
]
}
EOJ
curl -s -S -X POST -d @$file ${SLACK_WEBHOOK_URL}
}
post_slack
X分、X時間毎に実行する
# リストの確認
$ crontab -l
# 編集
$ crontab -e
crontab -e
を実行したら、vi と同じになるので、以下のように追記
# 3分毎に実行
*/3 * * * * /home/user/slack.sh
# 1h毎に実行
0 */1 * * * /home/user/slack.sh
最後に
お疲れさまでした。
別のソースで、改行やダブルクォート対応ソースあったのですが、知識なさすぎて・・・実行出来なかったので><
本来はリアルタイムで通知したかったんですが、どうやったらリアルタイムで持ってこれるかわからず!!
ログの更新がされたら〜とかっていう事なのかも???
知識なくてわかりませんが、とりま現状はこの運用で。
ではではではではー、雪犬-snowdog-でした★