Отправка сообщения в Telegram при логине в ssh

Материал из rrv-wiki
Перейти к навигации Перейти к поиску


Для отправки сообщения кто и откуда зашел по ssh можно сделать следующее:

Создаем скрипт /usr/local/bin/ssh_login_msg_to_telegram.sh

#!/bin/bash

# id пользователя (тут случайный не правильный id)
USERID="5700000000"
# token для доступа к HTTP API получаем при создании бота через BotFather (тут случайный не правильный ключ):
KEY="1877000000:AAEfG0000000000000000aaaaaaaaaaaR2VtA" 

URL="https://api.telegram.org/bot$KEY/sendMessage"

TEXT="SSH: \\\"$PAM_USER\\\" залогинился на $HOSTNAME в $(date '+%Y.%m.%d %H:%M:%S')" 

REQUEST='{"chat_id":"'${USERID}'","disable_web_page_preview":"1","text":"'${TEXT}'"}'
/usr/bin/curl --silent -i -H "Content-Type: application/json" -X POST -d "${REQUEST}" ${URL} >/dev/null

Даем права скрипту:

sudo chmod 750 /usr/local/bin/ssh_login_msg_to_telegram.sh
sudo chown root:root /usr/local/bin/ssh_login_msg_to_telegram.sh

В файл /etc/pam.d/sshd после строк начинающихся с:

session    optional

добавляем строку:

session optional pam_exec.so type=open_session seteuid /usr/local/bin/ssh_login_msg_to_telegram.sh

Идея взята тут