Отправка сообщения в Telegram об успешном входе в Linux по SSH

28 Ноя

Для того, чтобы отправлялись сообщения к вам в телеграмм об успешных авторизациях по ssh, необходимо создать бота и добавить BASH скрипт в /etc/profile.d/ вашего сервера.

Инструкция:

1. Создаем бота в телеграм:
идем к @BotFather авторизируемся у него и создаем нового бота командой /newbot обязательно со словом bot в конце имени бота.

После создания бота вам придет сообщение с токеном (который нужно соханить), пример:
Use this token to access the HTTP API:
376475661:FeFewf2m4FFjFOEJolH3HePGNMgBcrdGE

2. Создаем или скачиваем данный bash сценарий

# save it as /etc/profile.d/ssh-telegram.sh
# use sed to parse JSON from ipinfo.io
# you can get your user_id by writing to @get_id_bot
USERID=""
KEY=""
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" ] && [ -z "$TMUX" ]; then
	IP=$(echo $SSH_CLIENT | awk '{print $1}')
	PORT=$(echo $SSH_CLIENT | awk '{print $3}')
	HOSTNAME=$(hostname -f)
	IPADDR=$(hostname -I | awk '{print $1}')
	curl http://ipinfo.io/$IP -s -o $TMPFILE
        CITY=$(cat $TMPFILE | sed -n 's/^  "city":[[:space:]]*//p' | sed 's/"//g')
        REGION=$(cat $TMPFILE | sed -n 's/^  "region":[[:space:]]*//p' | sed 's/"//g')
        COUNTRY=$(cat $TMPFILE | sed -n 's/^  "country":[[:space:]]*//p' | sed 's/"//g')
        ORG=$(cat $TMPFILE | sed -n 's/^  "org":[[:space:]]*//p' | sed 's/"//g')
	TEXT="$DATE_EXEC: ${USER} logged in to $HOSTNAME ($IPADDR) from $IP - $ORG - $CITY, $REGION, $COUNTRY port $PORT"
	curl -s --max-time $TIMEOUT -d "chat_id=$USERID&disable_web_page_preview=1&text=$TEXT" $URL > /dev/null
	rm $TMPFILE
fi

В этом сценарие указываем в 5 строке:
KEY= наш полученный ранее токен (ключ), пример:

KEY="376475661:FeFewf2m4FFjFOEJolH3HePGNMgBcrdGE"

Далее, получаем user_id, — это ваш CHAT ID, на который бот будет отправлять вам отчеты об успешных входах.
Проще всего узнать ваш CHAT ID обратившись к боту @get_id_bot — даем ему команды
/start
/my_id
после чего получаем от него наш id (пример):

Hello Vladimir
Your Chat ID = 34567824
User Name = username

в 4 строчке нашего сценария вбиваем:

USERID="34567824"

где 34567824 — должен быть Вашим id !

Сохраняем сценарий сюда /etc/profile.d/ssh-telegram.sh
Все! бот готов! При входе кого-либо по ssh на ваш сервер — вы будете получать уведомления!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *