Скрипт для отправки сообщения об открытии/закрытии ssh сессии на сервере через telegram бота.
#!/bin/bash
TOKEN="token:token"
ID="chat_id"
HOSTNAME=$(hostname -f)
DATE="$(date +"%d.%b.%Y -- %H:%M")"
MESSAGE="<b>$PAM_USER</b> did '<b>$PAM_TYPE</b>' at <b>$DATE</b> on $HOSTNAME from <span class=\"tg-spoiler\">$PAM_RHOST</span>!"
URL="https://api.telegram.org/bot$TOKEN/sendMessage"
curl -s -X POST $URL -d chat_id=$ID -d text="$MESSAGE" -d parse_mode='HTML' 2>&1 /dev/null
exit 0Для срабатывания требует добавления строчки в /etc/pam.d/sshd:
session required pam_exec.so /etc/pam_scripts/notify-on-login.sh-
TOKEN- переменная для записи токена телеграм-бота (выдается при создании бота через BotFather) -
ID- переменная для указания ID чата администратора бота. Нужно для сохранения приватности ваших уведомлений - сообщения от бота будут идти исключительно вам.Для получения ID чата с вашим ботом сразу после создания бота запустите чат с ним и напишите туда несколько сообщений. После этого перейдите по ссылке
https://api.telegram.org/bot<token>/getUpdates. В json выдаче вы найдете список сообщений в чатах бота (там, очевидно, будете только вы), в объектах которых вы и найдете ID чата
Уведомления в боте будут выглядеть следующим образом: