---
title: 'Jak śledzić połączenia SSH z serwerem za pomocą bota Telegram. | Zomro'
description: 'Monitorowanie połączeń SSH z serwerem jest konieczne przede wszystkim dla bezpieczeństwa i kontroli nieautoryzowanego dostępu.'
image: 'https://dx86q6oq7ry0e.cloudfront.net/uploads/media/blog/a55%40server-panel.net/2023/03/28/screenshot_1.jpg'
---

![opened image]()

  * [Zomro](https://zomro.com/pl/)
  * [FAQ](https://zomro.com/pl/blog/faq/)
  * Jak śledzić połączenia SSH z serwerem za pomocą bota Telegram. 



# Jak śledzić połączenia SSH z serwerem za pomocą bota Telegram.

28-03-2023

Aby wysłać powiadomienie o pomyślnym logowaniu na serwerze przez SSH, należy śledzić moment takiego logowania. Skorzystamy z wbudowanych narzędzi Linuxa, a mianowicie z ustawień globalnego profilu, które znajdują się w folderze /etc/profile. Ten profil (a w zasadzie, to początkowe ustawienia użytkownika) będzie stosowany dla wszystkich użytkowników, którzy są zalogowani w systemie i dla których uruchomiona jest powłoka. Ustawienia globalnego profilu są bardzo elastyczne, ale interesuje nas domyślne uruchamianie wszystkich plików bash (*.sh) z folderu /etc/profile.d. Stworzymy w tym folderze prosty skrypt bash, którego rolą będzie uruchomienie skryptu python, a ten skrypt python wykona zapytanie danych przez połączenie ssh, sformułuje informacyjną wiadomość i wyśle ją do kanału telegramowego administratora serwera.

Przystąpmy do realizacji.

1\. Jeśli do tej pory nie masz swojego bota telegramowego, stwórz go, a także kanał, na który będą przychodzić wiadomości. W tym celu skorzystaj z punktów 1-2 z [Instrukcji](https://zomro.com/rus/blog/faq/316-kak-sozdat-telegram-bota-dlja-monitoringa-udalennyh-hostov). Jako administrator kanału telegramowego możesz również dodawać do niego innych uczestników do wspólnego monitorowania połączeń SSH z serwerami.

2\. W folderze /usr/bin/ stwórz plik skryptu python. W tym celu wykonaj polecenie

> vim /usr/bin/ssh_notification.py

i umieść kod skryptu

> # ---------- ustawienia ---------  
>  # nie wysyłaj wiadomości do telegramu, jeśli IP znajduje się na liście dozwolonych IP, na przykład, IP administratora.  
>  # wysyłaj powiadomienia dla wszystkich IP: wlip = []  
>  wlip = ['123.123.45.67','98.76.54.32']  
>  # użytkownicy do śledzenia. Aby śledzić wszystkich użytkowników: 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)  
> 

W górnej części skryptu znajdują się 2 opcjonalne ustawienia:

\- W zmiennej wlip znajduje się lista dozwolonych IP, przy połączeniu z serwerem z których nie będzie wysyłane powiadomienie. Może to być jeden lub kilka IP administratora serwera. Jeśli chcesz wysyłać wiadomości o logowaniu na serwer niezależnie od IP, ustaw wartość zmiennej na [] (po prostu wyczyść wszystko wewnątrz nawiasów kwadratowych)

> wlip = []

\- W zmiennej userstrack możesz wskazać jeden lub kilka loginów, które należy śledzić. Aby wysyłać powiadomienia niezależnie od nazwy użytkownika, wyczyść wszystko wewnątrz nawiasów:

> userstrack = []

\- Również zamień TOKEN i CHAT_ID na odpowiednie wartości, które otrzymasz przy tworzeniu bota telegramowego i kanału.

3\. W folderze /etc/profile.d/ stwórz prosty skrypt bash, który będzie uruchamiał wcześniej stworzony skrypt python. W tym celu wykonaj polecenie

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

i umieść kod skryptu:

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

Monitorowanie połączeń SSH z serwerem z wysyłaniem powiadomień do telegramu zostało skonfigurowane. 

W rezultacie będziesz mógł otrzymywać takie powiadomienia:

![Jak śledzić połączenia SSH z serwerem za pomocą bota Telegram. - 1](https://dx86q6oq7ry0e.cloudfront.net/uploads/media/blog/a55%40server-panel.net/2023/03/28/screenshot_1.jpg)

Similar articles:

[Jak zainstalować SOCKS5 w Dockerze](https://zomro.com/pl/blog/faq/282-kak-ustanovit-socks5-v-docker) [Instalacja serwera terminali w Windows Server 2012, 2016, 2019](https://zomro.com/pl/blog/faq/267-ustanovka-servera-terminalov-v-windows-server-2012-2016-2019) [Czyszczenie starych logów i plików tymczasowych na serwerach Linux](https://zomro.com/pl/blog/faq/371-cleaning-up-old-logs-and-temporary-files-on-linux-servers) [Dostęp przez FTP do folderu strony na serwerze z panelem Hestia](https://zomro.com/pl/blog/faq/224-dostup-po-ftp-k-papke-sajta-na-servere-s-panelju-hestia) [Instalacja PostgreSQL i pgadmin4 na panelu HestiaCP](https://zomro.com/pl/blog/faq/326-ustanovka-postgresql-i-pgadmin4-na-panel-hestiacp)

[ Serwery dedykowane od €88.80/mies ](/pl/dedicated-servers)
