Контроль підключених користувачів на сервер

Відправлення в телеграм про авторизацію на сервері

Під час перегляду логів мого сервера, я помітив спроби незаконного доступу до мого VPS-сервера. Особливо вражаючим було те, що хтось намагався зламати пароль до користувачів, і виявивши це, мені стало цікаво, як вести моніторинг за цими подіями, не входячи постійно на сервер для перевірки логів.
Оскільки я вже працював із телеграм-ботами та каналами, і Telegram був моїм улюбленим та зручним месенджером, мені прийшла ідея: чому б не відправляти сповіщення в Telegram, коли користувач підключається до сервера?

Після дослідження можливостей та звертання до журналів підключень я виявив, що така можливість існує. Для цього можна внести зміни у файл /etc/profile та додати кілька рядків в кінці:


BOT_TOKEN="token"
CHAT_ID="chat_id"

MESSAGE="Користувач $(whoami) увійшов на $(hostname) $(date) з $(echo $SSH_CLIENT | awk '{ print $1}')"

curl -s -X POST https://api.telegram.org/bot$BOT_TOKEN/sendMessage -d chat_id=$CHAT_ID -d text="$MESSAGE" &>/dev/null
  

Тут "token" - це токен вашого телеграм-бота, який можна отримати через BotFather

а "chat_id" - це унікальний ідентифікатор чату кожного користувача в Telegram.

Після внесення цих змін ви зможете отримувати повідомлення в Telegram кожного разу, коли хтось авторизується на вашому сервері.
Приклад який буде приходити в телеграм можете побачити нижче