При успешной попытке входа на сервер по ssh выполняется указанный скрипт.
# /etc/pam.d/sshd
...
# log auth
#session optional pam_exec.so /usr/bin/logger -T --rfc3164 -n 127.0.0.1 -P 1111 "my server_name: auth"
session optional pam_exec.so /usr/local/bin/send_to_telegram_pam.sh
Для использования pam_exec нужен пакет ```
apt install libpam-modules
Скрипт по отправке сообщения может быть таким
#!/bin/bash
MESSAGE="$(hostname): $(journalctl -eu ssh -g Accepted --no-pager| tail -n1|grep -o for.*)"
function tg {
CHAT_ID="..."
BOT_TOKEN="..."
curl -s --data-urlencode "text=$MESSAGE" "https://api.telegram.org/bot$BOT_TOKEN/sendMessage?chat_id=$CHAT_ID&disable_web_page_preview=true" > /dev/null
}
function gotify {
token="..."
title=$(hostname)
curl "https://какой-то.домен:4443/message?token=$token" \
-F "title=${title}_auth" \
-F "message=$MESSAGE" \
-F "priority=5"
}
# пробуем отправить в свой сервис, при неудаче отправляем в телегу
gotify || tg
Пример сообщения:
server_name: for root from 1.2.3.4 port 57496 ssh2: ED25519 SHA256:wwww/fdgfd....