Skip to main content

Telegram Login Failure Message

Anpassungen bitte vornehmen bei Chat ID sowie der API Key!

Das Script kann unter /root abgelegt werden

#!/bin/sh

# Telegram Bot Token und Chat-ID
TELEGRAM_BOT_TOKEN="65XXXXX924:AAFbcxjfehef-Ac_2EXXXXXXXXX"
CHAT_ID="12345678901"

# Protokolldatei, die überwacht werden soll
LOG_FILE="/var/log/auth.log"  # Passe dies an, falls deine Protokolldatei anders ist

# Temporäre Datei, um die letzte überprüfte Zeile zu speichern
LAST_CHECKED_FILE="/tmp/last_checked_line"

# Letzte überprüfte Zeilennummer abrufen
if [ -f "$LAST_CHECKED_FILE" ]; then
    LAST_CHECKED=$(cat "$LAST_CHECKED_FILE")
else
    LAST_CHECKED=0
fi

# Überprüfen auf spezifische Protokolleinträge
NEW_LINES=$(tail -n +$((LAST_CHECKED + 1)) "$LOG_FILE")


# D E B U G
# Debugging-Ausgabe: Zeilen, die überprüft werden
echo "Überprüfe folgende neue Zeilen:"
echo "$NEW_LINES"
# D E B U G     E N D E
# Filtern nach den gewünschten Schlüsselwörtern
MATCHED_LINES=$(echo "$NEW_LINES" | grep -e "webConfigurator authentication error" -e "sshd")

# Debugging-Ausgabe: Gefundene Übereinstimmungen
echo "Gefundene Übereinstimmungen:"
echo "$MATCHED_LINES"

if [ ! -z "$MATCHED_LINES" ]; then
    # Nachricht an Telegram senden
    MESSAGE="*Warnung: Protokolleintrag erkannt:*$(echo "$MATCHED_LINES" | sed 's/^/• /')"
    RESPONSE=$(curl -s -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage" \
        -d "chat_id=$CHAT_ID" \
        -d "text=$MESSAGE" \
        -d "parse_mode=Markdown")

    # Überprüfen, ob die Nachricht erfolgreich gesendet wurde
    if echo "$RESPONSE" | grep -q '"ok":true'; then
        echo "Benachrichtigung erfolgreich gesendet."
    else
        echo "Fehler beim Senden der Benachrichtigung."
        echo "Antwort von Telegram: $RESPONSE"
    fi
fi

# Letzte überprüfte Zeilennummer aktualisieren
wc -l < "$LOG_FILE" > "$LAST_CHECKED_FILE"

Per SSH denn Cron installieren: pkg install pfSense-pkg-Cron

Cron über die pfSense GUI konfigurieren und das Script hinterlegen.