Quantcast
Channel: Bashタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 2722

ssh ログインしている人をslack に晒す

$
0
0

やりたいこと

雪犬は、素人のためセキュリティが非常に弱い!
誰かに入られてもわからない!
サーバー怖い!

という事で、sshログインしているかどうかを確認したい。

なので、ただソースコピペしてパパーっとやりたい人向け。
★改行したい、ダブルクォート挟むなどの場合は、別のソースを探してください。

出来なかった事

  • リアルタイムでのログイン確認
  • 実行コマンド内の改行?空白?を改行としてそのまま送信

やること

  • スクリプト: ssh ログインの確認, slack にbotとして送信
  • CRON: X分, X時間毎に実行させる

ssh ログインの確認

こちらの方のソースを使わせていただいております。
詳細はサイトをご確認ください。

コマンド whowでssh がログインしているユーザを確認出来る。
変数msgへコマンドを代入し、それを送信している、というスクリプト。

slack.sh
#!/bin/bashset-eumsg=`w`SLACK_WEBHOOK_URL="https://hooks.slack.com/services/XXXXXXXXXXXXXXXXXXXXX"

post_slack(){channel="#bot"user="my_bot"emoji="ghost"message=${msg}# list: good / dangercolor=""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時間毎に実行する

参考 cronサイト

# リストの確認
$ crontab -l
# 編集
$ crontab -e

crontab -eを実行したら、vi と同じになるので、以下のように追記

# 3分毎に実行
*/3 * * * * /home/user/slack.sh
# 1h毎に実行
0 */1 * * * /home/user/slack.sh

最後に

お疲れさまでした。
別のソースで、改行やダブルクォート対応ソースあったのですが、知識なさすぎて・・・実行出来なかったので><

本来はリアルタイムで通知したかったんですが、どうやったらリアルタイムで持ってこれるかわからず!!
ログの更新がされたら〜とかっていう事なのかも???

知識なくてわかりませんが、とりま現状はこの運用で。

ではではではではー、雪犬-snowdog-でした★


Viewing all articles
Browse latest Browse all 2722

Trending Articles