19 сентября 2020
Телеграм уведомления об ssh–авторизации на сервере через своего бота

Создание бота через BotFather — процесс очень простой. Да и, наверняка, бот у вас уже есть.
В двух словах: Создали бота. Записали на бумажку ключ бота: bot12345678:ABCDefDHIjkLMnoPqrstuVW Создали канал/группу. Обозвали его/её как-нибудь публично, типа My_Super_channel. Добавили бота в канал.
Узнаем ID канала/группы:
1
|
curl "https://api.telegram.org/bot12345678:ABCDefDHIjkLMnoPqrstuVW/sendMessage?chat_id=@My_Super_channel&text=test123"
|
Ищем в ответе значение chat»:{«id»:–9876543210… (в этот момент, кстати, должно упасть сообщение test123 в вашу телегу. Если упало, значит всё отлично). Если надо, делаем канал/группу приватными.
Создаем файл
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
#!/usr/bin/env bash
KEY="111111111:AAELEbbbbbbbbbbbbbbbbbbbbbbbbbbblno"
URL="https://api.telegram.org/bot$KEY/sendMessage"
TARGET="222222222" #в нашем случае это -9876543210, именно с минусом.
DATE1="$(date "+%H:%M:%S")"
DATE2="$(date "+%d %B %Y")"
GEO="$(curl ipinfo.io/$PAM_RHOST)"
TEXT="🔥 *$PAM_USER* залогинился на *$HOSTNAME*
Время: $DATE1
Дата: $DATE2
Адрес: $PAM_RHOST
Service: $PAM_SERVICE
TTY: $PAM_TTY
GEO: ${GEO}"
PAYLOAD="chat_id=$TARGET&text=$TEXT&parse_mode=Markdown&disable_web_page_preview=true"
curl -s --max-time 10 --retry 5 --retry-delay 2 --retry-max-time 10 -d "$PAYLOAD" $URL > /dev/null 2>&1 &
|
Теперь, в файл /etc/pam.d/sshd добавляем строчку:
1
|
session optional pam_exec.so type=open_session seteuid /usr/local/bin/ssh2tg.sh
|