johnpoint

johnpoint

(。・∀・)ノ゙嗨
github

vps ログインプッシュ

国内のほとんどのクラウドサーバーには、ssh ログインのプロンプト機能が付属しています。この機能は便利だと思いますが、多くのカスタムシステムイメージを持たないクラウドサーバープロバイダーでは、リモートログインの通知機能がありません。そのため、Telegram にログイン情報をプッシュするためのスクリプトを作成しました。

ファイル名 00-ssh-login-alarm-telegram.sh(実際にはカスタマイズ可能)を /etc/profile.d ディレクトリに配置します。

#!/bin/bash

# Telegram botのトークンを入力してください
token=
# 自分のTelegramのIDを入力してください
id=

# VPSのIPアドレス
vpsip=$(curl -s ip.sb -4)
# ログイン時間
logintime=$(TZ=UTC-8 date '+%Y-%m-%d %H:%M:%S')
# リモートログインのIPアドレス
loginip=$(who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g')
# IPの所属するASN組織名
loginfrom=$(curl -s https://api.ip.sb/geoip/${loginip} | jq .asn_organization)
curl -s "https://api.telegram.org/bot${token}/sendMessage?chat_id=${id}" --data-binary "&text=NewLogin:%0AVPS: ${vpsip}%0ATime: ${logintime}%0ALogin from:%0A${loginip}%0A${loginfrom}" > /dev/null

このスクリプトでは、JSON の解析に jq を使用しているため、パッケージマネージャーで事前にインストールする必要があります。

使用例:

NewLogin:
VPS: ***.***.***.***
Time: 2020-09-13 12:41:24
Login from:
***.***.***.***
"asn_organization"

このスクリプトは ip.sb の API を使用しています

2021-10-20 更新#

スクリプトはいくつかのバージョンで更新されており、現在のスクリプトでは以前に欠けていたいくつかの機能が実装されています。

  • ログインユーザー名の表示
  • ログインユーザーの TTY のブロックを解除
#!/bin/bash

# Telegram botのトークンを入力してください
token=
# 自分のTelegramのIDを入力してください
id=

localip=$(who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g')

echo 'localip=$(curl -s ip.sb -4)' > tg.sh
echo 'user=$(whoami)' >> tg.sh
echo 'logintime=$(TZ=UTC-8 date "+%Y-%m-%d %H:%M:%S")' >> tg.sh
echo 'loginip='${localip} >> tg.sh
echo 'loginfrom=$(curl -s https://api.ip.sb/geoip/${loginip} | jq -r .asn_organization)' >> tg.sh
echo 'curl -s "https://api.telegram.org/bot'${token}'/sendMessage?chat_id='${id}'" --data-binary "&text=NewLogin:%0AVPS:${user}@${localip}%0ATime: ${logintime}%0ALogin from:%0A${loginip}%0A${loginfrom}" > /dev/null && rm tg.sh' >> tg.sh

bash tg.sh &
読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。