#!/bin/bash # === 1. Root-Rechte prüfen === if [ "$EUID" -ne 0 ]; then echo "🚫 Bitte führe dieses Skript mit Root-Rechten aus (sudo ./install_fail2ban_discord.sh)" exit 1 fi echo "✅ Root-Rechte erkannt" # === 2. Webhook-Link abfragen === read -rp "Bitte gib deinen Discord Webhook-Link ein: " DISCORD_WEBHOOK if [[ -z "$DISCORD_WEBHOOK" ]]; then echo "🚫 Kein Webhook angegeben. Abbruch." exit 1 fi # === 3. IPInfo Token abfragen === read -rp "Bitte gib deinen ipinfo.io Token ein (für Geo-IP-Daten): " IPINFO_TOKEN if [[ -z "$IPINFO_TOKEN" ]]; then echo "🚫 Kein ipinfo Token angegeben. Abbruch." exit 1 fi # === 4. Testnachricht an Webhook senden === echo "📨 Sende Testnachricht an Discord Webhook..." curl -H "Content-Type: application/json" \ -X POST \ -d '{"content": "✅ Testnachricht: Fail2Ban Discord Alert erfolgreich eingerichtet!"}' \ "$DISCORD_WEBHOOK" # === 5. Webhook und Token in .env schreiben === echo "🔧 Trage Webhook und ipinfo Token in .env-Datei ein..." cat < .env DISCORD_WEBHOOK_URL=$DISCORD_WEBHOOK IPINFO_TOKEN=$IPINFO_TOKEN EOF # === 6. Python virtualenv erstellen und Abhängigkeiten installieren === echo "🐍 Erstelle Python-Umgebung..." python3 -m venv venv source venv/bin/activate pip install --upgrade pip pip install -r requirements.txt deactivate # === 7. Systemd Service erstellen === SERVICE_PATH="/etc/systemd/system/fail2ban_discord_alert.service" echo "🛠️ Erstelle systemd service unter $SERVICE_PATH ..." cat < "$SERVICE_PATH" [Unit] Description=Fail2Ban Discord Webhook Monitor After=network.target [Service] Type=simple WorkingDirectory=$(pwd) ExecStart=$(pwd)/venv/bin/python3 $(pwd)/fail2ban_discord.py Restart=on-failure [Install] WantedBy=multi-user.target EOF # === 8. Service aktivieren und starten === echo "🔄 Aktiviere und starte fail2ban_discord_alert.service..." systemctl daemon-reexec systemctl daemon-reload systemctl enable fail2ban_discord_alert.service systemctl start fail2ban_discord_alert.service # === 9. Status anzeigen === echo "📋 Status des Dienstes:" systemctl status fail2ban_discord_alert.service --no-pager echo "✅ Installation abgeschlossen."