Уведомление о входе на сервер в Telegram
Через PAM (рекомендованный вариант)
- Ставим curl. Он нужен для работы скрипта ниже.
- Скачиваем скрипт отсюда и сохраняем его по пути
/usr/local/bin/bash_telegram_notify
- Даем права на выполнение:
chmod +x /usr/local/bin/bash_telegram_notify
- Создаем ещё один скрипт по пути
/usr/local/bin/login_notify.sh
, заходим в него и пишем следующее
#!/bin/bash
if [ "${PAM_TYPE}" = "open_session" ]; then
MESSAGE="($HOSTNAME) Session opened
Username: $PAM_USER, Service: $PAM_SERVICE
IP: $PAM_RHOST
Login time: $(date +'%Y.%m.%d %H:%M:%S')"
bash_telegram_notify -t botтокен_бота -u id_юзеров,через_запятую "$MESSAGE" > /dev/null &
fi
- Даём права на выполнение:
chmod +x /usr/local/bin/login_notify.sh
- Заходим в
/etc/pam.d/sshd
и в самый конец добавляем строчку:
session optional pam_exec.so /usr/local/bin/login_notify.sh
Через sshrc
- Ставим curl. Он нужен для работы скрипта ниже.
- Скачиваем скрипт отсюда и сохраняем его по пути
/usr/local/bin/bash_telegram_notify
- Даем права на выполнение:
chmod +x /usr/local/bin/bash_telegram_notify
- Заходим в
/etc/ssh/sshrc
и пишем туда следующее:
#!/bin/bash
USER_IP=$(echo $SSH_CLIENT | awk '{ print $1 }')
MESSAGE="<b>(имя_сервака)Logged in session</b>
<i>Username:</i> <code>$(whoami)</code> at <code>$SSH_TTY</code>
<i>IP:</i> <code>$USER_IP</code>
<i>Login time:</i> <code>$(date +'%Y.%m.%d %H:%M:%S')</code>
"
bash_telegram_notify -t botтокен_бота -u id_юзеров,через_запятую "$MESSAGE" > /dev/null &