---
title: 'Як відстежувати SSH підключення до сервера за допомогою телеграм бота | Zomro'
description: 'Моніторинг SSH підключень до сервера необхідний, в першу чергу, для безпеки та контролю несанкціонованого доступу.'
image: 'https://dx86q6oq7ry0e.cloudfront.net/uploads/media/blog/a55%40server-panel.net/2023/03/28/screenshot_1.jpg'
---

![opened image]()

  * [Zomro](https://zomro.com/ua/)
  * [FAQ](https://zomro.com/ua/blog/faq/)
  * Як відстежувати SSH підключення до сервера за допомогою телеграм бота 



# Як відстежувати SSH підключення до сервера за допомогою телеграм бота

28-03-2023

Для того, щоб надіслати сповіщення про успішний вхід на сервер по SSH, необхідно відстежити момент такого входу. Скористаємося вбудованими засобами Linux, а саме, налаштуваннями глобального профілю, які знаходяться в папці /etc/profile. Цей профіль (а по суті, це початкові налаштування користувача) буде застосовуватися для всіх користувачів, які залогінені в систему і для яких запущена командна оболонка. Налаштування глобального профілю дуже гнучкі, але нас цікавить прописаний в ньому за замовчуванням запуск усіх bash файлів (*.sh) з папки /etc/profile.d Створимо в цій папці простий bash скрипт, роль якого запустити python скрипт, а вже цей python скрипт виконає вибірку даних по ssh з'єднанню, сформує інформаційну стрічку і надішле її в телеграм канал адміністратора сервера.

Приступимо до виконання.

1\. Якщо у Вас досі немає свого телеграм бота, створіть його, а також канал, в який будуть надходити повідомлення. Для цього скористайтеся п.1-2 з [Інструкції](https://zomro.com/rus/blog/faq/316-kak-sozdat-telegram-bota-dlja-monitoringa-udalennyh-hostov). Як адміністратор телеграм каналу, Ви можете також додавати в нього інших учасників для спільного моніторингу SSH підключень до серверів.

2\. В папці /usr/bin/ створимо файл python скрипта. Для цього виконаємо команду

> vim /usr/bin/ssh_notification.py

і розмістимо код скрипта

> # ---------- settings ---------  
>  # не надсилати повідомлення в телеграм, якщо IP включений в whitelist IP, наприклад, IP адміністратора.  
>  # надсилати сповіщення для всіх IP: wlip = []  
>  wlip = ['123.123.45.67','98.76.54.32']  
>  # користувачі для відстеження. Для всіх користувачів для відстеження: userstrack = []  
>  userstrack = ['root','admin']  
>  #-----------------------------  
>  import os  
>  import datetime  
>  import requests  
>  import socket  
>  def SendMsgToTelegramChanel_z(msg):  
>  token="TOKEN"  
>  chat_id = 'CHAT_ID'  
>  params = {'chat_id': chat_id,'text': msg}  
>  response = requests.get('https://api.telegram.org/bot'+token+'/sendMessage', params=params)
> 
> localip = socket.gethostbyname(socket.gethostname())  
>  ip = os.popen("echo $SSH_CLIENT | awk -F' ' '{print $1}'").read().strip()  
>  login = os.popen("whoami").read().strip()  
>  dtime = datetime.datetime.now().strftime("%d-%m-%Y %H:%M:%S")
> 
> if (ip not in wlip or not wlip) and (login in userstrack or not userstrack):  
>  SendMsgToTelegramChanel_z('SSH connect to ' + localip + '\nUser: ' + login + '\nFrom: ' + ip + '\n' + dtime)  
> 

В верхній частині скрипта є 2 необов'язкові налаштування:

\- В змінній wlip знаходиться whitelist список IP, при з'єднанні з сервером з яких не буде надсилатися сповіщення. Це може бути один або кілька IP адміністратора сервера. Якщо необхідно надсилати повідомлення про вхід на сервер незалежно від IP, встановіть значення змінної в [] (просто очистіть все всередині квадратних дужок)

> wlip = []

\- В змінній userstrack можна вказати один або кілька логінів, які необхідно відстежувати. Для надсилання сповіщень незалежно від імені користувача, очистіть все всередині дужок:

> userstrack = []

\- Також замініть TOKEN і CHAT_ID на відповідні значення, отримані при створенні телеграм бота і каналу.

3\. В папці /etc/profile.d/ створимо простий bash скрипт, який буде запускати створений раніше python скрипт. Для цього виконайте команду

> vim /etc/profile.d/ssh_notification.sh 

і розмістіть код скрипта:

> #!/bin/bash  
>  python3 /usr/bin/ssh_notification.py

Моніторинг SSH підключень до сервера з надсиланням сповіщень в телеграм, налаштовано. 

В результаті Ви зможете отримувати такі сповіщення:

![Як відстежувати SSH підключення до сервера за допомогою телеграм бота - 1](https://dx86q6oq7ry0e.cloudfront.net/uploads/media/blog/a55%40server-panel.net/2023/03/28/screenshot_1.jpg)

Схожі статті

[Ядра серверів Minecraft Java](https://zomro.com/ua/blog/faq/332-minecraft-java-server-cores) [Як встановити ISPmanager на Cloud VPS](https://zomro.com/ua/blog/faq/598-how-to-install-ispmanager-on-cloudvps) [Помилка 406 Not Acceptable](https://zomro.com/ua/blog/faq/491-error-406-not-acceptable) [Як підключитися до контейнера Docker за допомогою SFTP?](https://zomro.com/ua/blog/faq/306-how-to-connect-to-a-docker-container-via-sftp) [Список важних команд для роботи з Docker-compose](https://zomro.com/ua/blog/faq/304-spisok-vazhnyh-komand-dlja-raboty-s-docker-compose)

[ Виділені сервери від €88.80/міс ](/ua/dedicated-servers)
