VDR auf einem vServer im Internet betreiben

  • NIemals !!! Hör ich euch schon rufen aber lest erst mal weiter.


    Ich nehme hier regelmäßig einen Stream eines exotischen Anbieters (IP only) auf. Da das meist mitten in der Nacht ist und mein eigentlicher und uralter Sat-VDR im Schlafzimmer steht, habe ich bisher immer per ffmpeg in Verbindung mit einer at-Programmierung auf meinem vServer gearbeitet und die Filme am nächsten Tag von dort runtergeladen. Den vServer habe ich für einige kleinere Projekte gemietet und hat noch Kapazitäten frei.


    Jetzt habe ich entdeckt, dass es für den Sender auch EPG gibt und frage mich nun, ob man den VDR nicht für diesen Sender (und zwei andere) einfach direkt auf dem vServer installieren kann. Ich will NICHT von diesem VDR streamen und ich will ihn auch nicht fernbedienen, auch nicht über vdradmin u.ä.


    Reicht es also, wenn ich in der svdrphosts.conf den Zugriff auf localhost 127.0.0.1 beschränkt lasse oder werden hier evtl. weitere Ports geöffnet, wo Angreiffer leichtes Spiel hätten?


    Mein Plan:

    Ich installiere vdr + dummydevice + iptv + epgsearch sowie irgendwas mit xmltv um den EPG zu holen. Mit letzterem habe ich noch null Erfahrung. Es wird weder streamdev noch vdradmin installiert.


    An einem alten PC zuhause werde ich an einer Parallelinstallation die Timerprogrammierung und die Erstellung der Suchtimer für das epgsearch-Plugin vorbereiten und dann via SSH-Konsole per cut&paste auf den Mietserver übertragen.


    Ebenfalls per SSH würde ich dann die Aufzeichnungen auf meinen lokalen Rechner herunterladen, evtl. sogar automatisiert als Upload auf mein NAS.


    Welche Sicherheitsaspekte gilt es noch zu bedenken bzw. gibt es Ausschlussgründe, das so zu machen?


    Wie verhindere ich zuverlässig, dass der vVDR den externen Stream abruft obwohl kein Timer gesetzt ist? Funktioniert das Out-of-the-box oder muss ich da einen Dummy-Kanal anlegen? Wegen der Fair-Use-Policy des Anbieters wäre ein permanenter Dauer-Stream wohl ein Kündigungsgrund.


    Bei meiner bisherigen ffmpeg-Lösung bricht die Aufnahme manchmal zu früh ab, wegen Fehlern. Innerhalb der at-Programmierung setze ich den Befehl zum Aufnehmen deshalb jetzt 3x hintereinander mit hochgezählten Dateinamen. Würde ein VDR mit iptv-plugin analog zu meinem bisherigen Sat-VDR erkennen, wenn eine Aufzeichnung zu früh beendet wurde und startet automatisch eine neue Aufnahme für die Restlaufzeit?


    Auf dem vServer läuft Ubuntu 18.04 LTS 64bit

    Debian Squeeze mit vdr 1.7.18 e-tobi/multipatch, Kernel 2.6.32-5-amd64, AMD Phenom-CPU, 4 GB RAM, Technotrend S2-6400, Digital Devices Cine S2 V6, 2 TByte HDD für Videodaten.

  • Wenn der VDR keine Ausgabe konfiguriert hat wüsste ich nicht wohin er Live-TV wiedergeben sollte.

    Folglich sollte eigentlich der IPTV-Stream nicht laufen wenn keine Aufnahme läuft.


    Bei offenen Ports habe ich vor X Jahren sogar mal einen Patch für den VDR erstellt, der dafür sorgt, dass der VDR nur auf "localhost" den Port öffnet wenn lediglich für 127.0.0.1 Zugriff erlaubt ist. Der ist schon länger Bestandteil vom VDR. Externe Plugins, die Ports öffnen, handhaben das aber unter Umständen noch nicht so.


    Oder anders gesagt: In der "Standardkonfiguration" öffnet ein aktueller VDR (2.4) normalerweise garkeine Ports nach außen. Allerdings weiß ich nicht wie sich das verhält mit den neuen Ports wegen diesem "Streaming" das Klaus eingebaut hat. Nutze ich selber nicht und werde ich auch nicht nutzen. Ich hoffe einfach mal, dass die Ports da auch erstmal zu sind.

  • Bei mir beobachte ich, dass bei Aufnahmen von IPTV der Stream weiter läuft, wenn die Aufnahme beendet wird. Nach Live-Wiedergabe wird der Stream korrekt beendet.


    vdr-User-# 755 to_h264 chk_r

  • Nabend,


    Bisschen off topic, aber ich teile mal meine Erfahrungen:


    Also ich habe ein ähnliches Setup realisiert, aber nicht (mehr) mit VDR (oder auch nicht tvh) sondern direkt mit einer Plex Instanz und da XeTeVe auf dem Server. Mein Plex-Client greift auf den Server zu und ich kann die Aufnahmen schön anschauen auf dem TV daheim. EPG und co macht alles Plex für mich, wobei die meisten Stream-Anbieter die ich mir angeschaut habe auch ein relativ sauberes XMLTV mitliefern.


    Hintergrund warum ich nicht *nicht mehr* VDR genommen habe - ich hatte mit IPTV immer eine Audio Versatz von 0.5-2 Sekunden, egal was ich am buffering der Plugins gedreht habe... irgendwann mochte ich nicht mehr. Nach einigen Monaten des Austestens mit 2 IPTV Anbietern und tvh als gateway habe ich mich dann für einen entschieden und das direkt mit Plex gemacht.


    VG,

    Alex

  • Jondalar Das bedeutet mit tvheadend hat es funktioniert?

    Gerade für eine solche Anwendung wäre tvheadend möglicherweise durchaus im Vorteil

    • Kann selber mit IPTV umgehen
    • Hat selber ein brauchbares Webinterface für die Remote-Konfiguration

    Mit Plex bin ich selber nie warm geworden. Und sei es nur weil ich Open-Source eigentlich immer bevorzuge. Kodi macht schon einen guten Job.

  • Das bedeutet mit tvheadend hat es funktioniert?

    Hi,


    ja klar, das ging sehr gut. Gerade mit dem XMLTV Paket dazu war das EPG eins A für die NL Sender. Das kommt jetzt mit Plex von Gracenote - und ich muss mich um nix kümmern, aber die meisten IPTV Anbieter liefern ja auch einen XMLTV feed bzw. mit webgrab++ konnte ich das selbst abgreifen. Für tv hatte ich einen Download und dann als Modul in tvh eingebunden.


    Ein einfaches Modul zum Download von einer xmltv.gz Datei siehe hier im Code:


    Damit hatte ich dann auch täglich ein frisches File runtergeladen und das EPG 14 Tage im Voraus.


    Hoffe das hilft,


    J*

  • Reicht es also, wenn ich in der svdrphosts.conf den Zugriff auf localhost 127.0.0.1 beschränkt lasse oder werden hier evtl. weitere Ports geöffnet, wo Angreiffer leichtes Spiel hätten?


    Wie verhindere ich zuverlässig, dass der vVDR den externen Stream abruft obwohl kein Timer gesetzt ist? Funktioniert das Out-of-the-box oder muss ich da einen Dummy-Kanal anlegen? Wegen der Fair-Use-Policy des Anbieters wäre ein permanenter Dauer-Stream wohl ein Kündigungsgrund.

    Zur Sicherheit: Ich will mich da nicht aus dem Fenster lehnen mit den geöffneten Ports, aber was spricht dagegen, einfach sowas wie ufw zu verwenden und einfach alles außer SSH zu sperren?


    Das mit dem stoppen des Streams ist so eine andere Sache. Ich hatte damit ewig Probleme, weil nach einer Aufnahme der Stream weiterlief. Zwischenzeitlich dachte ich, ich hätte das mit dem suspendoutput plugin in den Griff bekommen, aber das hat auch nicht dauerhaft/zuverlässig funktioniert.

    Am besten nimmst du wohl einen dummykanal, der immer läuft und gibst der Aufnahme eine höhere Prio. Dann sollte der nur zur Aufnahme laufen. Aber am besten ordentlich testen oO


    Einen IPTV stream kannst du aber auch einfacher mitschneiden... ;)

  • Allerdings weiß ich nicht wie sich das verhält mit den neuen Ports wegen diesem "Streaming" das Klaus eingebaut hat.

    Ich hab das länger nicht verfolgt aber unter http://www.tvdr.de/features.htm finde ich keinen Hinweis auf Streaming im vdr core.

    Debian Squeeze mit vdr 1.7.18 e-tobi/multipatch, Kernel 2.6.32-5-amd64, AMD Phenom-CPU, 4 GB RAM, Technotrend S2-6400, Digital Devices Cine S2 V6, 2 TByte HDD für Videodaten.

  • Vielen Dank, für all die schönen Tipps. Zwischenzeitlich hatte ich einen Geistesblitz und habe das ganz anders gelöst. Ist nicht ganz so bequem aber halbautomatisch reicht mir auch und das ohne einen VDR auf einem Mietserver zu installieren.


    Ich habe auf meinem lokalen VDR einen Dummykanal mit EPG eingerichtet und mir nun für das epgsearch-plugin ein Skript geschrieben, das bei manueller Auswahl über das EPG von mir per Fernbedienung gestartet wird. Das Skript zieht von der Startzeit noch X Minuten Vorlauf ab und löst dann per ssh auf dem vServer ein "echo /bin/bash recscript.sh .... | at <startzeit>" aus. Und das recscript auf dem vServer baut dann nach erreichen der at-zeit den Aufnahmenbefehl aus den übergebenen Parametern zusammen. Über eine Schleife teste ich, ob nach der Aufzeichnung die übergebene Stoppzeit bereits erreicht ist oder ob der Stream wegen Fehlern vorzeitig unterbrochen wurde; falls letzteres, wird die Aufzeichnung erneut gestartet mit einem erhöhten Index im Dateinamen.


    Anschließend lasse ich die Metadaten (Titel, Episode, Startzeit, Sender und eine Auflistung des/der Dateinamen(s)) noch in ein gleichnamiges txt-file schreiben und schicke das per Mail an mich selbst, um mich daran zu erinnern einen Download vorzunehmen.


    Läuft nach den ersten Tests wunderbar.


    Ein paar Feineinstellungen sind noch erforderlich.

    Aus Titel und Episode filtere ich aktuell: ()&$' Sollte ich da noch mehr rausfiltern, damit das Skript nicht kaputt geht? Doppelte " sind nicht kritisch, da ich die entsprechenden Parameter per '$titel' übergebe.

    Debian Squeeze mit vdr 1.7.18 e-tobi/multipatch, Kernel 2.6.32-5-amd64, AMD Phenom-CPU, 4 GB RAM, Technotrend S2-6400, Digital Devices Cine S2 V6, 2 TByte HDD für Videodaten.

  • Bei mir beobachte ich, dass bei Aufnahmen von IPTV der Stream weiter läuft, wenn die Aufnahme beendet wird. Nach Live-Wiedergabe wird der Stream korrekt beendet.


    Normalerweise sollte das suspendoutput Plugin dafür sorgen das der Tuner nach der Aufnahme wieder freigegeben wird. Leider funktioniert das bei mir mit IPTV auch nicht. Ich habe leider auch noch keine Lösung für das Problem.


    VDR mit IPTV blockiert bei Aufnahme 2 IPTV Tuner und gibt nur einen wieder frei


    https://github.com/rofafor/vdr-plugin-iptv/issues/7


    Gruß dile