Skip to content

sonnytricky/media-stack

Repository files navigation

📦 Medienstack – Sicherer Torrent-Download über VPN

Version License Issues

Ein vollständiges Setup für sicheres Torrenting hinter VPN, inklusive ClamAV, YARA, AppArmor, Fail2Ban, Watchtower, Leak-Checks, Firewall, NFS-Mount, System-Härtung und automatischer Reinigung infizierter Downloads.


⚙️ Voraussetzungen

  • Debian/Ubuntu-basiertes System (getestet mit Debian 13)
    • Proxmox VM (fals eine VM in Proxmox verwendet wird, soll zuerst HOST-Seitig IPv6 deaktiviert werden und die Firewall mit wie unten ergänzt werden)
  • Root-Zugriff (sudo)
  • Internetverbindung
  • SSH-Zugriff (für Fernwartung empfohlen)
  • WireGuard-Konfigurationsdatei für Gluetun (→ wg0.conf)
  • SMTP-Zugangsdaten (z. B. Gmail) für E-Mail-Benachrichtigungen

Proxmox VM Firewall-regel:

Feld Wert Bedeutung
Richtung IN Eingehende Verbindungen werden geprüft
Aktion DROP Verbindungen werden verworfen
Interface (leer) Gilt für alle Netzwerkschnittstellen
Quelle (leer) Gilt für alle Quellen (also ::/0 bei IPv6)
Ziel (leer) Gilt für alle Ziele (dieses System)
Protokoll IPv6 Betrifft nur IPv6-Traffic
Quell-Port / Ziel-Port (leer) Nicht eingeschränkt auf Ports
Makro (leer) Keine vordefinierte Regel (korrekt hier)
Aktivieren ✅ Ja Regel ist aktiv

📁 Verzeichnisstruktur

Das Repository wird nach /opt/ geklont und enthält folgende Struktur:

/opt/media-stack/
├── skript/                   # Setup- & Sicherheits-Skripte
├── watchdog/                 # VPN-Watchdog
├── config/gluetun/wireguard/ → wg0.conf
├── .env                      # Konfigurationdatei
└── install.sh                # Hauptinstallationsskript

🛠️ Vorbereitung

  1. Repository klonen nach /opt:

    cd /opt/
    sudo git clone https://github.com/sonnytricky/media-stack.git
  2. WireGuard-Konfiguration ablegen:

    Benenne die /opt/media-stack/config/gluetun/wireguard/wg0.example.conf in wg0.conf um und füll es mit deinen Daten aus

    mv /opt/media-stack/config/gluetun/wireguard/wg0.example.conf /opt/media-stack/config/gluetun/wireguard/wg0.conf
  3. .env Datei konfigurieren:

    Benenne /opt/media-stack/.env.example zu /opt/media-stack/.env um und füll es mit deinen Daten aus

    mv /opt/media-stack/.env.example /opt/media-stack/.env
  4. Berechtigungen anpassen:

    sudo chrown deinBenutzername:deineGruppe .env
    sudo chmod 600 .env
    sudo chown deinBenutzername:deineGruppe wg0.conf
    sudo chmod 600 wg0.conf 

🚀 Installation starten

Dieses Setup muss mit Root-Rechten ausgeführt werden, dies wird im Skript überprüft und bricht sonst ab.

sudo ./install.sh

Das Skript erledigt u.a.:

  • Paketinstallation (ClamAV, Rootkit-Scanner, YARA, AppArmor, etc.)
  • Verzeichnisstruktur anlegen
  • Firewall & Kernel-Härtung
  • Sicherheits-Skripte installieren
  • Systemd einrichten
  • Docker Compose erzeugen
  • Leak-Check & Watchdog aktivieren

🐳 Docker-Stack starten

Nach dem Setup kannst du den Medienstack starten:

cd /opt/media-stack
docker compose up -d

🔐 Enthaltene Sicherheitsmaßnahmen

Maßnahme Beschreibung
VPN + Firewall Internetzugriff nur durch Gluetun-VPN
IPv6 blockiert Kein IPv6-Leak möglich
Firewall.sh Enthält iptables schützt via systemd
ClamAV + YARA Malware-Scanner mit Community-Regeln
Fail2Ban Schutz gegen Brute-Force-Angriffe
AppArmor Aktivierung & Durchsetzung von Profilen
Rootkit-Scanner Schützt gegen Rookits
Systemd Automatischer Download-Scan & Reinigung
Watchtower Automatisierte Container-Updates mit Mail
VPN-Watchdog Beendet Stack bei VPN-Verlust

🔄 Regelmäßige Wartung

Aufgabe Frequenz Methode
Signaturen-Update täglich 3 Uhr clamav-unofficial-sigs
Leak-Check täglich 6 Uhr leak-check.sh
Quarantäne-Scan stündlich scan_quarantine.sh
Download-Reinigung alle 30 Minuten sanitize_downloads.sh
VPN-Watchdog immer aktiv watchdog.sh

🧪 Testen

Nach der Installation:

sudo reboot

Dann prüfen:

curl -s https://ifconfig.me

Wenn keine IP erscheint oder 100.64.x.x, ist der VPN aktiv.

Weitere Tests:

Befehl Erwartung
ping -c1 1.1.1.1 ❌ keine Antwort
curl ifconfig.me ❌ schlägt fehl
docker exec gluetun curl ifconfig.me ✅ zeigt VPN-IP
docker exec sonarr curl ifconfig.me ❌ schlägt fehl
media-stack-checkliste.md durchführen ✅ 100% abgeschlossen
Neustart der VM ✅ Firewall bleibt aktiv

❌ Fehlerbehebung

  • Setup bricht ab mit Fehlende Datei → Prüfe, ob .env oder wg0.conf korrekt vorliegen
  • E-Mail geht nicht raus? → Prüfe msmtp.log: /var/log/msmtp.log
  • VPN-Container offline? → Schaue in docker logs vpn
  • msmtp: Protokollinformation kann nicht in /var/log/msmtp.log geschrieben werden: kann nicht geöffnet werden: Keine Berechtigung → Schaue in sudo nano /etc/apparmor.d/usr.bin.msmtp suche nach der Zeile /var/log/msmtp wk, und ändere sie auf /var/log/msmtp.log rwk, -> danach sudo apparmor_parser -r /etc/apparmor.d/usr.bin.msmtp jetzt sollten die Logs geschrieben werden können.

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages