Быстро настроим отправку уведомлений в Телеграм о входе любого пользователя по ssh

Не важно, как часто приходится пользоваться консолью удаленных серверов, эта опция не помешает. Удобно знать, когда был осуществлен вход, и сам ли ты входил 🙂

У себя я настроил отправку уведомления на сервере с Ubuntu 16.04, на других системах не проверял.

Для начала установим jq, чтобы скрипт отправлял местоположение в сообщении:

apt install jq

Теперь сам скрипт. Его нужно сохранить в /etc/profile.d/
Открываем любимым редактором:

nano /etc/profile.d/ssh-to-telegram.sh

Скрипт выглядит следующим образом:

USERID="-1001555555505"
KEY="514238555:AAGeYjt955555cRrZQ5555rhc5FTCfAaINU"
TIMEOUT="10"
URL="https://api.telegram.org/bot$KEY/sendMessage"
DATE_EXEC="$(date "+%d %b %Y %H:%M")"
TMPFILE='/tmp/ipinfo-$DATE_EXEC.txt'
if [ -n "$SSH_CLIENT" ]; then
	IP=$(awk '{print $1}' <<< $SSH_CLIENT)
	PORT=$(awk '{print $3}' <<< $SSH_CLIENT)
	HOSTNAME=$(hostname -f)
	IPADDR=$(hostname -I | awk '{print $1}')
	curl http://ipinfo.io/$IP -s -o $TMPFILE
	CITY=$(jq -r '.city' < $TMPFILE)
	REGION=$(cat $TMPFILE | jq '.region' | sed 's/"//g')
	COUNTRY=$(cat $TMPFILE | jq '.country' | sed 's/"//g')
	ORG=$(cat $TMPFILE | jq '.org' | sed 's/"//g')
	TEXT="$DATE_EXEC: Вход пользователя ${USER} по ssh на $HOSTNAME ($IPADDR) из $IP - $ORG - $CITY, $REGION, $COUNTRY через порт $PORT"
	curl -s --max-time $TIMEOUT -d "chat_id=$USERID&disable_web_page_preview=1&text=$TEXT" $URL > /dev/null
	rm $TMPFILE
fi

Где USERID=»-1001555555505» это id чата для отправки сообщения

И KEY=»514238555:AAGeYjt955555cRrZQ5555rhc5FTCfAaINU» это токен вашего бота.

Как получить userid и токен я писал в этой записи:

Уведомления от Domoticz в Telegram

Теперь после каждой успешной аутентификации по ssh мы получим уведомление:

 


Скрипт нашел тут:

https://gist.github.com/matriphe/9a51169508f266d97313#file-ssh-telegram-sh

0 0 голос
Рейтинг статьи

Подписаться
Уведомить о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

6 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Михаил
Михаил
5 месяцев назад

У меня что-то не работает, все делаю по шагам..

Карина
Карина
4 месяцев назад
Ответить на  kvv

Я правильно поняла, что скрипт нужно положить в /etc/profile.d/ ?
При подключении новой сессии ssh, выдает ошибку:
-bash: /etc/profile.d/ssh_alert_bot.sh: строка 5: синтаксическая ошибка рядом с неожиданным маркером «;&»
-bash: /etc/profile.d/ssh_alert_bot.sh: строка 5: `if [ -n «$SSH_CLIENT» ] &amp;&amp; [ -z «$TMUX» ]; then’

мвава
мвава
4 месяцев назад

не у меня тоже ничего не работает, не понимаю почему…
в телеге тихо…