Как да изпратите съобщение до Telegram при всяко SSH влизане?

В тази статия ще разгледаме как да настроите вашата система да изпраща съобщение до Telegram всеки път, когато се извършва SSH влизане. Ще обясним процеса стъпка по стъпка, като се уверим, че всяка команда и скрипт са подробно обяснени.
Въведение
Изпращането на уведомление до Telegram при SSH влизане може да бъде изключително полезно за администратори на системи. Това позволява бързо да се уведомявате за всяка нова сесия, което повишава сигурността на вашата система. В тази статия ще използваме Bash скриптове и Telegram Bot API, за да постигнем тази цел.
Стъпка 1: Създаване на Telegram Bot
Първата стъпка е създаването на Telegram бот, който ще изпраща съобщенията. За това ще използваме @BotFather, който е официален бот за създаване и управление на ботове в Telegram.
- Отворете Telegram и потърсете за @BotFather.
- Започнете чат с @BotFather и изпратете командата
/start
. - За да създадете нов бот, изпратете командата
/newbot
. - Следвайте инструкциите, за да зададете име и потребителско име на вашия бот.
- След като ботът е създаден, ще получите токен за достъп. Запазете този токен, защото ще го използваме по-късно.
Стъпка 2: Получаване на вашия Telegram Chat ID
За да изпращаме съобщения до конкретен чат, трябва да знаем Chat ID. Можете да получите своя Chat ID, като изпратите съобщение до бота и използвате следния URL в браузъра:
https://api.telegram.org/bot<YOUR_BOT_TOKEN>/getUpdates
Заменете <YOUR_BOT_TOKEN>
с токена, който получихте от @BotFather. В резултата ще видите JSON обект, който съдържа информация за изпратеното съобщение, включително и вашия Chat ID.
Стъпка 3: Създаване на Bash скрипт за изпращане на съобщение
След като имаме нужните идентификатори, можем да създадем Bash скрипт, който ще изпраща съобщение до Telegram. Отворете терминал и създайте нов файл със следното съдържание:
#!/bin/bash
# Telegram Bot Token
BOT_TOKEN="YOUR_BOT_TOKEN"
# Telegram Chat ID
CHAT_ID="YOUR_CHAT_ID"
# Съобщение, което ще бъде изпратено
MESSAGE="Ново SSH влизане от потребител $(whoami) на $(hostname) в $(date)"
# Изпращане на съобщението до Telegram
curl -s -X POST https://api.telegram.org/bot$BOT_TOKEN/sendMessage -d chat_id=$CHAT_ID -d text="$MESSAGE"
Заменете YOUR_BOT_TOKEN
и YOUR_CHAT_ID
с реалните стойности, които получихте в предишните стъпки. Запазете файла с име notify_telegram.sh
и го направете изпълним:
chmod +x notify_telegram.sh
Стъпка 4: Настройка на SSH профила
Следващата стъпка е да конфигурираме SSH профила, така че нашият скрипт да се изпълнява при всяко влизане. Това може да се постигне чрез модифициране на файла /etc/ssh/sshrc
или /etc/profile
. В този пример ще използваме /etc/profile
.
Отворете файла /etc/profile
с текстов редактор:
sudo nano /etc/profile
Добавете следния ред в края на файла:
/home/your_user/notify_telegram.sh
Заменете /home/your_user/notify_telegram.sh
с пълния път до скрипта, който създадохте по-рано. Запазете и затворете файла.
Стъпка 5: Тестване на конфигурацията
За да сте сигурни, че всичко работи правилно, отворете нов терминал и влезте в системата чрез SSH. Ако всичко е настроено правилно, трябва да получите съобщение в Telegram за новото SSH влизане.
Създаване на терминална команда telegram-send
В програмирането е добра практика да се скрие изпълнението на ниско ниво. Така че нека да създадем терминална команда на linux telegram-send за да можем да изпращаме съобщения с тази проста команда от всякъде.
За да създадем терминална команда telegram-send
, която да използваме за изпращане на съобщения до Telegram, ще следваме тези стъпки:
- Ще създадем Bash скрипт, който ще използва Telegram Bot API за изпращане на съобщения.
- Ще добавим този скрипт в директорията
/usr/local/bin
, за да бъде достъпен като команда от терминала.
Стъпка 1: Създаване на Bash скрипт
Създайте нов файл с име telegram-send.sh
и добавете следното съдържание:
#!/bin/bash
# Проверка за наличие на необходимите аргументи
if [ "$#" -ne 2 ]; then
echo "Usage: telegram-send <BOT_TOKEN> <CHAT_ID> <MESSAGE>"
exit 1
fi
# Telegram Bot Token
BOT_TOKEN=$1
# Telegram Chat ID
CHAT_ID=$2
# Съобщение, което ще бъде изпратено
MESSAGE=$3
# Изпращане на съобщението до Telegram
curl -s -X POST https://api.telegram.org/bot$BOT_TOKEN/sendMessage -d chat_id=$CHAT_ID -d text="$MESSAGE"
Запазете файла и го направете изпълним:
chmod +x telegram-send.sh
Стъпка 2: Преместване на скрипта в /usr/local/bin
Преместете скрипта в директорията /usr/local/bin
и го преименувайте на telegram-send
:bash
sudo mv telegram-send.sh /usr/local/bin/telegram-send
Стъпка 3: Използване на командата
Сега можете да използвате командата telegram-send
от всякъде в терминала. Форматът на командата е следният:bash
telegram-send <BOT_TOKEN> <CHAT_ID> <MESSAGE>
Например:bash
telegram-send 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11 987654321 "Тестово съобщение до Telegram"
Сега имате лесен начин да изпращате съобщения до Telegram директно от терминала с помощта на командата telegram-send
. Тази команда може да бъде полезна за автоматизиране на различни задачи и изпращане на уведомления.
Създаване на алиас
Създаването на алиас за команда в Linux е лесно и удобно решение за често използвани команди. В случая ще създадем алиас за нашата команда telegram-send
, за да не се налага всеки път да въвеждаме токена и Chat ID.
Стъпка 1: Отворете вашия .bashrc
или .bash_profile
файл
В зависимост от вашата система, отворете файла .bashrc
или .bash_profile
, за да добавите алиаса. В този пример ще използваме .bashrc
.bash
nano ~/.bashrc
Стъпка 2: Добавете алиаса в края на файла
Добавете следния ред в края на файла:bash
alias telegram-send='telegram-send 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11 987654321'
Това ще създаде алиас telegram-send
, който при изпълнение ще използва предварително зададения бот токен и Chat ID.
Стъпка 3: Заредете промените
За да бъдат активирани промените, трябва да заредите отново .bashrc
файла:bash
source ~/.bashrc
Стъпка 4: Използване на алиаса
Сега можете да използвате алиаса telegram-send
, за да изпращате съобщения до Telegram:bash
telegram-send "Тестово съобщение до Telegram"
Заключение
В тази статия показахме как да настроите вашата система да изпраща съобщение до Telegram при всяко SSH влизане. Чрез създаване на Telegram бот, получаване на Chat ID и конфигуриране на Bash скрипт, постигнахме целта си. Това решение може да подобри сигурността на вашата система, като ви информира за всяка нова SSH сесия. Надяваме се, че тази статия ви е била полезна и че сте успели да настроите вашата система успешно.
Благодарим ви за прочитането на статията! Ако намерихте информацията за полезна, можете да дарите посредством бутоните по-долу:
Donate ☕️ Дарете с PayPalDonate 💳 Дарете с Revolut