Перейти к содержанию

Уведомление о входе на сервер в Telegram

Через PAM (рекомендованный вариант)

  1. Ставим curl. Он нужен для работы скрипта ниже.
  2. Скачиваем скрипт отсюда и сохраняем его по пути /usr/local/bin/bash_telegram_notify
  3. Даем права на выполнение: chmod +x /usr/local/bin/bash_telegram_notify
  4. Создаем ещё один скрипт по пути /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
  1. Даём права на выполнение: chmod +x /usr/local/bin/login_notify.sh
  2. Заходим в /etc/pam.d/sshd и в самый конец добавляем строчку:
    session optional pam_exec.so /usr/local/bin/login_notify.sh
    

Через sshrc

  1. Ставим curl. Он нужен для работы скрипта ниже.
  2. Скачиваем скрипт отсюда и сохраняем его по пути /usr/local/bin/bash_telegram_notify
  3. Даем права на выполнение: chmod +x /usr/local/bin/bash_telegram_notify
  4. Заходим в /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 &