Уведомление о логине в Telegram

Скрипт будет присылать вам уведомление в Telegram каждый раз как кто-то заходит на сервер по SSH. Для его работы нужно установить пакет jq: sudo apt-get install jq

Файл должен иметь расширение .sh. Разместить его нужно в каталоге /etc/profile.d/

USERID="-107159715...2"                                   # Channel ID
KEY="514235123:AAG...some text...234rhfc4FBVfAaINU"       # Bot API key
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=$(awk '{print $1}' <<< $SSH_CLIENT)
    PORT=$(awk '{print $3}' <<< $SSH_CLIENT)
    HOSTNAME=$(hostname -f)
    IPADDR=$(hostname -I | awk '{print $1}')
    curl http://ipinfo.io/$IP -s -o $TMPFILE
    CITY=$(jq -r '.city' < $TMPFILE)
    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="$DATE_EXEC: Вход пользователя ${USER} по SSH на $HOSTNAME ($IPADDR) из $IP - $ORG - $CITY, $REGION, $COUNTRY через порт $PORT"
    curl -s --max-time $TIMEOUT -d "chat_id=$USERID&disable_web_page_preview=1&text=$TEXT" $URL > /dev/null
    rm $TMPFILE
fi