Kasusnya adalah jika ada yang login ke SSH server kita akan diberitahu oleh bot telegram. Ya buat jaga-jaga saja ceritanya. Karena server saya ada di DigitalOcean, maka saya kasih label DigitalOcean di script ini biar tahu dari sana lah..
Cara, copy saja file atau script dibawah ini ke folder
/etc/profile.d
O iya, script ini butuh paket jq gunanya untung partsing data JSON
Saya pake ubuntu, maka tinggal diinstall aja dengan perintah
sudo apt-get install jq
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# simpan file ke /etc/profile.d/ | |
USERID="ID USER atau GROUP" #contoh 213567634 | |
KEY="TOKENBOT" #contoh 123456789:AASDFASDW21casgW4hjtRLp4GH5wMnWlpT7Eg | |
TIMEOUT="10" | |
URL="https://api.telegram.org/bot$KEY/sendMessage" | |
DATE_EXEC="$(date "+%d %b %Y %H:%M")" | |
TMPFILE='/tmp/ipinfo-$DATE_EXEC.txt' | |
if [ -n "$SSH_CLIENT" ]; then | |
IP=$(echo $SSH_CLIENT | awk '{print $1}') | |
PORT=$(echo $SSH_CLIENT | awk '{print $3}') | |
HOSTNAME=$(hostname -f) | |
IPADDR=$(hostname -I | awk '{print $1}') | |
curl http://ipinfo.io/$IP -s -o $TMPFILE | |
CITY=$(cat $TMPFILE | jq '.city' | sed 's/"//g') | |
REGION=$(cat $TMPFILE | jq '.region' | sed 's/"//g') | |
COUNTRY=$(cat $TMPFILE | jq '.country' | sed 's/"//g') | |
ORG=$(cat $TMPFILE | jq '.org' | sed 's/"//g') | |
TEXT="SSH Login! <b>DigitalOcean</b> <code>$DATE_EXEC</code>: <b>${USER}</b> logged in to <code>$HOSTNAME</code> (<code>$IPADDR</code>) from <code>$IP</code> - $ORG - $CITY, $REGION, $COUNTRY <i>on port</i> $PORT" | |
curl -s --max-time $TIMEOUT -d "chat_id=$USERID&parse_mode=HTML&disable_web_page_preview=1&text=$TEXT" $URL > /dev/null | |
rm $TMPFILE | |
fi |
Tidak ada komentar :
Posting Komentar