Zum Hauptinhalt springen
  1. Posts/

Telegram Servermanager

·598 Wörter·3 min· loading · loading ·
Inhaltsverzeichnis
thetorminal/telegram-servermanager

Run commands on a linux server with a telegram bot

Python
12
0

Beschreibung
#

Dieses Projekt gibt Ihnen die Möglichkeit, Shell-Befehle auf einem Linux-Host von einem Telegramm-Bot aus auszuführen.
Funktionen:

  • /run: Shell-Befehle ausführen
  • /status: Status eines Dienstes prüfen
  • /wake: Wecken von Clients in Ihrem Netzwerk mit WakeOnLan
  • Wählen Sie zwischen whitelist oder blacklist für die Befehle, die Sie ausführen möchten. Sie können der Liste im Setup Befehle hinzufügen.
  • Protokollierung: Überprüfen Sie das bot_activity.log, um zu sehen, ob jemand etwas Böses versucht.

Benutze diesen Bot vorsichtig! Gib keine gefährlichen Befehle an ihn weiter.

Beispiele
#

/run:

tg-run

/wake (WakeOnLan):

tgbot-wol

whitelist:

tgbot-whitelist

Logging:

tgbot-log

Getestet mit:

  • Debian 12 Server
  • Python3: python-telegram-bot==21.10, cryptography==44.0.1
  • Telegram

Erste Schritte
#

Abhängigkeiten
#

  • Linux-Server mit Root-Shell-Zugang
  • Python3 auf dem Server installiert
  • Telegram bot

Installieren
#

Telegram:
#

Holen Sie sich ein Telegram-Bot-Token:

  • Sie benötigen einen Telegram-Bot. Senden Sie dazu den Befehl /newbot an BotFather. Sichern Sie Ihren Token.

  • Füge die verwendeten Befehle mit /setcommands zu deinem Bot hinzu:

    run - einen Befehl auf Ihrem Server ausführen
    wake - weckt einen Client mit WakeOnLan auf
    status - Status eines Dienstes abfragen
    

Holen Sie sich Ihre Telegram-Benutzer_id:

  • Senden Sie die Nachricht /start an userinfobot, um Ihre Benutzerkennung zu erhalten. Sichern Sie Ihre user_id.

Auf Ihrem Linux-Server:
#

  • Sicherheitshinweis: Erstellen Sie einen neuen Benutzer mit geringen Rechten, um den Bot auszuführen (Beispiel: „tgbot“).
    Sie können ihn als root ausführen, aber ich empfehle dringend, einen Benutzer mit geringen Rechten zu verwenden!
    sudo adduser tgbot
    
  • Installiere die Abhängigkeiten:
    # Debian/Ubuntu
    sudo apt install python3 python3-pip python3-venv wakeonlan
    
  • Klone das Repository, erstelle ein Verzeichnis für das Log und ändere die Berechtigungen für deinen Benutzer mit niedrigen Rechten
    git clone https://github.com/thetorminal/telegram-servermanager.git
    # Geben Sie Ihrem neuen Benutzer die Rechte für die Skripte und melden Sie sich als tgbot an
    chown -R tgbot:tgbot telegram-servermanager && su - tgbot
    cd telegram-servermanager
    
  • Erstellen Sie eine neue python3-Venv und aktivieren Sie diese
    mkdir venv
    python3 -m venv venv
    Quelle venv/bin/activate
    
  • Installieren Sie die python3 Anforderungen
    pip install -r requirements.txt
    
  • Führen Sie setup.py aus, um die Einrichtung zu starten. Sie werden nach Ihrem bot-token und Ihrer user_id gefragt.
    Wählen Sie, ob Sie die Blacklist verwenden und weitere Befehle hinzufügen wollen.
    Wählen Sie Clients, die mit WakeOnLan geweckt werden können und Dienste, deren Status überprüft werden kann.
    python3 setup.py  
    
  • Nachdem das Setup abgeschlossen ist, kann man den Bot mit telegram_servermanager.py starten
    python3 telegram_servermanager.py  
    

Telegram-Bot:
#

  • Nach dem Start von telegram_servermanager.py sollte dein Bot `Willkommen! Benutze /run um einen Shell-Befehl auf Deinem Server auszuführen.
  • Jetzt können Sie Befehle mit /run ausführen, WakeOnLan mit /wake benutzen und den Status Ihrer konfigurierten Dienste mit /status überprüfen!

Protokollierung:
#

  • Sie können Ihr Log mit tail -f bot_activity.log im telegram-servermanger Verzeichnis einsehen.

Führen Sie den Servermanger als Dienst aus
#

Erstellen Sie die Datei /etc/systemd/system/tg-servermanager.service mit folgender Eingabe. Ersetzen Sie /path/to durch den Pfad, in dem sich das Verzeichnis telegram_servermanager befindet.

[Einheit]
Beschreibung=Telegram Servermanager
Nach=Netzwerk.Ziel
[Dienst]
ExecStart=/path/to/telegram-servermanager/venv/bin/python /path/to/telegram-servermanager/telegram_servermanager.py
WorkingDirectory=/pfad/zu/telegram-servermanager/
Neustart=immer
Benutzer=tgbot
Gruppe=tgbot
[Installieren]
WantedBy=multi-user.target

Jetzt können Sie den Dienst über systemctl wie jeden anderen benutzen!

systemctl start tg-servermanager.service

Fehlersuche
#

Wenn Sie Probleme haben, überprüfen Sie bitte:

  • ob Ihr Telegram-Bot-Token und Ihre user_id korrekt sind
  • Stellen Sie sicher, dass die Berechtigungen für die Skripte korrekt sind.
  • führen Sie die Datei setup.py erneut aus
  • überprüfen Sie die Log-Datei in Ihrem telegram-servermanager Verzeichnis (bot_activity.log)

To-Do
#

  • Sicherheit: eine sicherere Lösung für die Ausführung von sudo-Befehlen finden, vielleicht mit einem Wrapper-Skript mit kontrollierten Rechten
  • Benutzer können eigene Befehle für den Bot im Setup zur Whitelist hinzufügen
  • Befehle zur Verwaltung von Docker-Containern hinzufügen?

Danksagungen
#

torminal
Autor
torminal
IT enthusiast

Verwandte Artikel

About
79 Wörter·1 min· loading · loading