---
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/rus/)
  * [FAQ](https://zomro.com/rus/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 ---------  
>  # dont send message to telegram if IP includes in whitelist IP, for example, admin IP.  
>  # send notificatiob for all IPs: wlip = []  
>  wlip = ['123.123.45.67','98.76.54.32']  
>  # users to track. For all users to track: 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)

Похожие статьи

[Использование команды host в Linux](https://zomro.com/rus/blog/faq/396-using-the-host-command-in-linux) [Как установить и настроить MySQL на Windows Server](https://zomro.com/rus/blog/faq/364-how-to-install-and-configure-mysql-on-windows-server) [Как предоставить доступ к Windows Server по IP или диапазону IP](https://zomro.com/rus/blog/faq/337-kak-ogranichit-dostup-k-windows-server-po-ip) [Настройка DNS-сервера BIND9 на Linux для внутренней сети](https://zomro.com/rus/blog/faq/714-setting-up-a-bind9-dns-server-on-linux-for-an-internal-network) [Сброс пароля админа в DLE](https://zomro.com/rus/blog/faq/445-sbros-parolya-admina-v-dle)

[ Выделенные серверы от €88.80/мес ](/rus/dedicated-servers)
