Kategorie:Cardserver
OSCAM
Versionsstand:
svn 4042
Was kann das Programm?
Das Wichtigste zuvor: OSCam ist Open Source
OSCam steht für Open Source Conditional Access Modul und ist eine non-profit Gemeinschaftsarbeit zahlreicher Entwickler aus dem In- und Ausland. Die Entwicklungsarbeit ist öffentlich. Der Fortschritt kann über die Oscam-Timeline http://streamboard.gmc.to:8001/timeline anhand der changesets und tickets verfolgt werden. Die Entwicklungsschritte werden in sogenannten svn's in aufsteigender Nummerierung festgehalten und stehen für eine entsprechende Compilierung zur Verfügung (siehe unter Plattformen).
"work in progress" bedingt aber auch, dass in dieser Dokumentation natürlich immer nur Momentaufnahmen der Entwicklung berücksichtigt werden können, bei deren Bearbeitung die Mithilfe der user gefragt ist!
Begonnen hat die Entwicklung von OSCam als reiner Card-Server. Später ist auch die Client-Seite hinzu gekommen. Damit soll schließlich gewährleistet werden, das möglichst alles "aus einer Hand" kommt.
Cardserver
Wie der Vorgänger MPCS ist OSCam in der Hauptsache ein protokoll- und plattformübergreifender Cardserver.
Client
Der Clientbereich wird in den Dateien mit den Parametern für dvbapi gesteuert. Ziel ist die komplette Abdeckung der Bereiche Server und Clients innerhalb eines Protokolls, ohne auf fremde Protokolle mit closed source zurückgreifen zu müssen. Dennoch wird auch weiterhin die Einbindung der gebräulichsten Protokolle solcher closed Sourcen fortgeführt, allerdings ohne eine Verantwortlichkeit dafür, was in diesen black boxes mit den Daten und Commands passiert.
Welche Plattformen werden unterstützt?
Linux
ARM Coolstream ARM Dockstar Openwrt ARM NSLU Openwrt ARM Slug OS intel Mac OS X i386/i686 Mips Fritzbox / TP-Link WRT1043NS Mipsel AZbox Mipsel Fritzbox Mipsel DD-WRT Mipsel TUXBOX PPC TUXBOX SH4 SH4 QboxHD SH4 STAPI sheevaplug X64
Ein aktualisiertes Verzeichnis wird hier bereit gehalten:
http://streamboard.gmc.to:8001/wiki/DeviceList
Windows
Cygwin
Die aktuellen Binaries werden hier geposted:
http://streamboard.gmc.to/wbb2/board.php?boardid=236
Mac OS X
Welche Protokolle werden unterstützt?
Bei den Protokollen gibt es UDP und TCP basierende.
- UDP bedeutet das es keine fixe Verbindung zwischen Client und Server gibt. Der Client/Server sendet seine Anfrage/Antwort in der Hoffnung das sie ankommt. Es wird keine Überprüfung gemacht ob alle Datenpakete ankommen.
- TCP bedeutet das eine fixe Verbindung über so genannte Sockets zwischen Client und Server aufgebaut wird. Bei dieser Verbindung wird sichergestellt das gesendete Daten beim Empfänger auch ankommen. Es hat dadurch etwas mehr overhead als UDP und ist etwas langsamer. Bei den für CS übertragenen Datenmengen ist dies jedoch irrelevant. Der große Vorteil von TCP ist das selbst bei qualitativ schechten Internetleitungen eine stabile Verbindung möglich ist.
camd 3.3x (TCP) camd 3.5x (UDP & TCP) Newcamd (TCP) mit AU-Support, Cascadib/remote server ECM support Radegast (?) Cccam (TCP) GBox (?) serial (HSIC, SSSP, BOMBA, DSR 9500) DVB API mit AU, Multituner, und PIP-Support
Welche Card Reader werden unterstützt?
Seriell
- Reader mit Mouse Protokoll 3,5 bzw. 6 Mhz Taktfrequenz
- interne Reader (z.B. Dreambox)
- Reader können auch über einen Serial-USB Adapter angeschlossen werden.
USB
- Reader mit FTDI Chipsatz
- Reader mit Prolific Chipsatz, kein Übertakten möglich
- Smargo Smartreader+
Welche Cards werden unterstützt?
Ein aktualisiertes Verzeichnis wird hier bereit gehalten:
http://streamboard.gmc.to:8001/wiki/CardsList
Konfigurationsdateien und deren Variablen
oscam.conf
Dies ist die Hauptfigurationsdatei für OSCam. Sie enhält globale Parameter z.B. für das Debuggen, Loggen, den Monitor, die Protokolle und das Anti-Cascading. Die einzelnen Sektionen sind für Sondereffekte bestimmt. Nur die Sektion [global] ist Pflichtbestandteil, alle übrigen Sektionen sind optional (also nur bei Bedarf) zu verwenden.
Globale Parameter
Folgende Parameter gibt es im global Abschnitt:
[global] serverip = cachedelay = logfile = disablelog = disableuserfile = usrfile = usrfileflag = cwlogdir = clienttimeout = fallbacktimeout = clientmaxidle = bindwait = netprio = resolvegethostbyname = resolvedelay = clientdyndns = failbantime = sleep = unlockparental = nice = serialreadertimeout = maxlogsize = waitforcards = preferlocalcards = readerestartseconds = saveinithistory = double_check = lb_mode = lb_save = lb_nbest_readers = lb_nfb_readers = lb_min_ecmcout = lb_max_ecmcount = lb_reopen_seconds =
Achtung: Ist ein Paremeter leer oder wird er nicht im Konfigurationsfile angeführt dann gelten die Default-Werte!
serverip
Bei einem Server mit mehreren Netzwerkkarten und daher mehreren unterschiedlichen IP Adressen kann es gewünscht sein das OSCam nur antwortet wenn die Anfrage auf einer betimmten IP Adresse kommt. Mit diesem Parameter kann man festlegen auf welche IP Adresse der OSCam Prozess "hört".
Beispiel:
serverip = 192.168.178.1
Default:
serverip =
OSCam hört auf ALLE IP Adressen.
cachedelay
Mindestzeit in Millisekunden, die ein Request brauchen muss. Hört sich zwar paradox an, betrifft aber das Problem, wenn die Antwort aus dem cache zu schnell an den Client übermittelt wird.
Beispiel:
cachedelay = 300
Default:
cachedelay = 0
logfile
Mit diesem Parameter wird Name und Pfad für das Logfile festgelegt.
logfile = filename|/dev/null|/dev/tty/syslog
Möglichkeiten:
logfile = /dev/null (Es wird kein Logfile erzeugt) logfile = /dev/tty (Bildschirmausgabe) logfile = syslog (Die Ausgabe wird an den syslogd übergeben) logfile = /var/log/oscam.log (linux i386) logfile = oscam.log (im Verzeichnis, in dem OSCam enthalten ist)
Beispiel:
logfile = /etc/oscam/logs/oscam.log
Default:
logfile = /var/log/oscam.log
disablelog
Schaltet Logfile
1 = Ausschalter ein, also kein Log - puh ;-) - 0 = Ausschalter aus, also ein Log
Beispiel:
disablelog = 1 es wird kein Log erstellt
Default:
disablelog = 0 es wird ein Log erstellt
disableuserfile
Jetzt wird es ganz wild: Auch wenn ein Logfile eingeschaltet ist (siehe logfile) kann hier das userfile ausgeschaltet werden.
Beispiel:
disableuserfile = 1 es wird kein userfile erzeugt = 0 es wird ein userfile erzeugt
Default:
disableuserfile = 0
usrfile
Festlegung des Namens eines Files für user logging.
Das user logging file hat folgendes Format
date time CWs per secon username IP address of client TCP/IP port CWs found CWs from cache CWs not found CWs ignored CWs timeout CWs tunneled login time in UNIX/POSIX format logout time in UNIX/POSIX format protocol
Beispiel:
usrfile = userfile
Default:
usrfile = 0
usrfileflag
Einstellung des Logging-Modus
0 = Es wird nur das Ein- und Ausloggen des Clients im Userfile geloggt 1 = Jedes Zappen eines Clients wird im Userfile geloggt Default-Wert ist 0
Beispiel:
usrfileflag = 1 Alles wird geloggt
Default:
usrfileflag = 0 Nur Login und Logout wird geloggt
cwlogdir
Hier kann ein Pfad für CW-Logging eingestellt werden
Beispiel:
cwlogdir = /var/log/cw.log
Default:
cwlogdir = [blank] kein Pfad für CW-Log
clienttimeout
Längste Zeitspanne in Sekunden, die ein Client auf einen Key warten muss.
Beispiel:
clienttimeout = 10 Nach 10 Sekunden erfolg ein timeout
Default:
clienttimeout = 5 Nach 5 Sekunden erfolgt ein timeout
fallbacktimeout
Bei mehreren Readern (Siehe Abschnitt [reader] in oscam.server) kann ein Reader bestimmt werden, auf den z.B. bei einer Störung der übrigen Reader der traffic zurück fällt.
Maximale Wartezeit des Cardservers in Sekunden auf primäre Reader, bevor der/die Fallback-Reader (falls vorhanden!) befragt werden. Beispiel:
fallbacktimeout = 1500
Default:
fallbacktimeout = 2500
clientmaxidle
Begrenzt die Leerlaufzeit eines Clienten in Sekunden bevor er vom Traffic getrennt wird.
Beispiel:
clientmaxidle = 200 Trennung nach 200 Sekunden
Default:
clientmaxidle = 120 Trennung nach 120 Sekunden
bindwait
Maximale Zeit in Sekunden, die der Cardreader beim Start wartet, bis er den jeweiligen Netzwerk-Port in Zugriff bekommt. Falls der OSCam innerhalb dieser Zeit den Port nicht binden kann, terminiert er mit "Bind Request failed". Ursachen dafür sind
- Doppelbelegung von Ports
- Ein vormals abgestürzter OSCam der die Ports nicht wieder freigegeben hat
- OSCam wurde mehrmals gleichzeitig gestartet
Beispiel:
bindwait = 20 Wartezeit 20 Sekunden
Default:
bindwait = 120 Wartezeit 120 Sekunden
netprio
Hier kann die Priorität des Cardservers im Netzwerk festgelegt werden
Beispiel:
netprio = 1 Prioritätsstufe 1
Default:
netprio = 0 Systembedingte Priorität
resolvegethostbyname
Art der DNS-Auflösung
0 = getadressinfo (default) 1 = gethostbyname
Beispiel:
resolvegethostbyname = 1 Host wird über den Namen aufgelöst
Default:
resolvegethostbyname = 0 adressinfo wird geholt
resolvedelay
Zeit in Sekunden, gibt die Pause bei der Namensauflösung an.
Beispiel:
resolvedelay = 20 Wartezeit 20 Sekunden
Default:
resolvedelay = 30 Wartezeit 30 Sekunden
clientdyndns
Ermöglicht die DNS-Auflösung für Clients. Bedingung: Es wurde bereits ein Hostname für die Clients definiert!
1 = DNS-Auflösung für Clients 0 = Keine DNS-Auflösung (default)
Beispiel:
clientdyndns = 1 DNS-Auflösung eingeschaltet
Default:
clientdyndns = 0 Keine DNS-Auflösung
failbantime
Zeitspanne in Minuten, nach der ein Client mit ungültigem Login-Versuch auf IP-Basis geblockt wird
Beispiel:
failbantime = 5 Client wird nach 5 Minuten geblockt.
Default:
failbantime = 0 failban ist ausgeschaltet (default)
sleep
Wartezeit für inaktive User in Minuten. Wert kann in der oscam.user überschrieben werden.
Beispiel:
sleep = 5 Wartezeit 5 Minuten
Default:
sleep = [blank] keine Wartezeit
unlockparental
Nur Seca Option zum Ausschalten der Jugendschutzfunktion für Seca Pin Code Anfragen bei adult movies
Beispiel:
unlockparental = 1 Jugendschutzfunktion ausgeschaltet
Default:
unlockparental = 0 Jugendschutzfunktion von Seca eingeschaltet
nice
Systempriorität. OSCam benötigt fast keine CPU-Leistung. Wenn aber CPU-Leistung benötigt wird, sollte diese sofort zur Verfügung stehen. Werte von 20 bis -20 sind möglich, wobei 20 gering und -20 sehr hoch ist. Wird der Parameter auskommentiert(#), wird diese Funktion nicht ausgerufen. Das ist wichtig z.B. für die dbox 2[1], wenn die Fehlermeldung "relocation error:setpriority" erscheint. Vgl. Prioritätsscheduling
Beispiel:
nice = -1
Default:
nice = 99
serialreadertimeout
Nur wenn Serialreader benutzt wird Timeout in Millisekunden für Serialreader
Beispiel:
serialreadertimeout = 1200 Timeout nach 1200 Millisekunden
Default:
serialreadertimeout = 1500 Timeout nach 1500 Millisekunden
maxlogsize
Hier kann die maximale Größe des Logfiles in KBytes festgelegt werde. Das ist besonders wichtig für Server mit nur geringem Speicherumfang (z.B. auf dbox2). Darum wird dringend empfohlen, bei solchen Servern diese Größe sorgfältig zu bestimmen. Nicht selten "platzt" ein System, weil die Logfiles unkontrolliert riesige Ausmaße angenommen haben!
Beispiel
maxlogsize = 20 Logfile geht bis zu 20 KBytes
Default:
maxlogsize = 10 Logfile geht bis zu 10 KBytes
waitforcards
Hier kann festgelegt werden, ob OSCam beim Start des Programms auf lokale Karten wartet, bevor die Netzwerkports geöffnet werden.
Beispiel:
waitforcards = 1 Warten
Default:
waitforcards = 0 Nicht Warten
preferlocalcards
Der Parameter legt fest, ob lokale Karten zuerst dekodiert werden sollen.
Beispiel:
preferlocalcards = 1 Lokale Karten bevorzugen
Default:
preferlocalcards = 0 Lokale Karten nicht bevorzugen
readerestartseconds
Festlegung einer Wartezeit in Sekunden zwischen Restarts von Readern.
Beispiel:
readerestartseconds = 10 Wartezeit 10 Sekunden = 0 keine Readerrestarts!
Default:
readerestartseconds = 5 Wartezeit 5 Sekunden
saveinithistory
Sicherung der Reader-Init-History. Wird benötigt um die Entitlements anzuzeigen.
Beispiel:
saveinithistory = 1 Sicherung nach /tmp/.oscam/reader<number>
Default:
saveinithistory = 0 Keine Sicherung
double_check
Nur wenn CW double check ausgewählt ist!
noch bearbeiten
Beispiel:
double_check =
Default:
double_check = 0
lb_mode
Loadbalance Mode
Wenn man zwei oder mehrere gleiche Karten hat (egal ob lokal oder als Proxie), kann man die Last auf diese Karten gleichmäßig verteilen (balancieren).
Beispiel:
lb_mode = 0 (deaktiviert) lb_mode = 1 (schnellster Reader zuerst) lb_mode = 2 (Reader der am längsten nicht geantwortet hat wird genommen) lb_mode = 3 (Reader mit der geringsten Auslastung wird verwendet)
Default:
lb_mode = 0
lb_save
Speichert die Loadbalance Statistik, damit sie auch nach einem Neustart erhalten bleibt. Um die CPU nicht zu sehr zu belasten, sollte hier ein Wert > 100 eingetragen werden.
Beispiel:
lb_save = 100 (Anzahl der ECM's nach der die Statistik gespeichert wird)
Default:
lb_save = 0 (Statistik wird nicht gespeichert)
lb_nbest_readers
Anzahl der Reader, die für die ECM anfragen.
Beispiel:
lb_nbest_readers = 2 (anfragen gehen immer an zwei Reader)
Default:
lb_nbest_readers = 1 (anfrage geht nur an einen Reader)
lb_nfb_readers
Anzahl der Fallback Reader für den Lastenausgleich.
Beispiel:
lb_nfb_readers = 2 (Zwei Fallbackreader)
Default:
lb_nfb_readers = 1
lb_min_ecmcout
Mindestanzahl der ECM's, die für die Auswertung genommen werden.
Beispiel:
lb_min_ecmcout =
Default:
lb_min_ecmcout = 5
lb_max_ecmcount
Maximale Anzahl der ECM's, bevor der Loadbalancer zurückgesetzt wird.
Beispiel:
lb_max_ecmcount =
Default:
lb_max_ecmcount = 500
lb_reopen_seconds
noch bearbeiten
Beispiel:
lb_reopen_seconds =
Default:
lb_reopen_seconds = 900
Monitor
Hier sind nur dann Eintragungen erforderlich, wenn ein Monitor benutzt wird!
[monitor] port = serverip = nocrypt = aulow = monlevel = hideclient = appendchaninfo =
port
UDP-Port für den Monitor
port = 0 Kein Monitor = Portnummer Monitor ausgewählt
Beispiel:
port = 24480 Monitor eingeschaltet mit Port 24480
serverip
Service mit einer bestimmten IP-Adresse verbinden
serverip = IP-Adresse = [blank] alle IP's (default)
nocrypt
Ungesicherte Monitorverbindungen.
Möglich
- eine oder mehrere IP-Einzeladressen
- eine oder mehrere IP-Bereiche
- eine Mischung von IP-Einzeladressen oder IP-Bereichen
Beispiel
nocrypt = 127.0.0.1,192.168.0.0-192.168.255.255 = Host 127.0.0.1 und IP-Bereich 192.168.0.0 bis 192.168.255.255
Default
nocrypt = [blank] Keine ungesicherte Monitorverbindung.
aulow
Zeitraum in Minuten, in dem keine EMM erscheinen, so dass der Client auf "Low" gesetzt wird.
Beispiel
aulow = 30 Nach 30 Minuten ohne EMM wird der Client auf "Low" gesetzt (default).
monlevel
Monitor-Level
0 = Kein Zugriff auf Monitor 1 = Nur Server und eigene Prozeduren 2 = Alle Prozeduren, aber nur ansehen (default) 3 = Alle Prozeduren, reload von oscam.user möglich 4 = Unbeschränkter Zugriff
Beispiel monlevel = 4 Kompletter Zugriff
Monlevel kann durch Eintragungen in oscam.user überschrieben werden!
hideclient_to
Zeitspanne in Sekunden für das Ausblenden von Clients, die keine Anfragen senden. Siehe auch Parameter httphideidleclienst in Abschnitt [webif].
hideclient_to = 1 Clienten werden ausgeblendet = 0 Keine Ausblendung von Clienten im Leerlauf
appendchaninfo
Fügt die Channel-Info aus der oscam.services der Log-Meldung hinzu. Bei Verwendung von Monitor und Webinterface ist dies eine sehr nützliche Routine!
appendchaninfo = 1 Die Channel-Info wird hinzugefügt = 0 Keine Channel-Info (default)
WebIf
Eintragungen sind nur dann erforderlich, wenn das Web-Interface (by Alno) als Modul ausgewählt wurde.
[webif] = httpport = httpcert = httpuser = httppwd = httpcss = httptpl = httprefresh = httpscript = httpallowed = httpdyndns = httpsavefullcfg = httpreadonly =
httpport
Port, auf dem das Webinterface hört.
httpport = 83 Webinterface hört auf http-port 83 = +83 Webinterface hört auf https-port 83 (SSL) 0 Webinterface ist ausgeschaltet (default)
httpcert
Datei für das SSL-Zertifikat
httpcert = oscam.cert (siehe dort!) = [blank] es wird die Datei oscam.pem (embedded) verwendet
httpuser
Name des Users für den Zugriffsschutz. Es wird zwar [blank] als Default-Wert angeboten. Davon wird aber dringend abgeraten; daher wird dieser Parameter hier als zwingend beschrieben.
httpuser = xyxyxy
httppwd
Passwort für den Zugriffsschutz. Es gilt das gleiche wie für httpuser.
httppwd = 123456
Die Parameter user und pwd werden beim Verbindungsaufbau zum Webinterface in einem Kontrollfenster abgefragt. Fehlen sie oder sind sie fehlerhaft, erfolgt die Meldung Forbidden und der Verbindungsaufbau wird abgebrochen!
httpcss
Für das Webinterface stehen verschiedene Styles in unterschiedlicher farblicher und graphischer Darstellung zur Verfügung. Der User kann die für ihn interessanten Style-Dateien (.css) speichern und je nach "Stimmung" verwenden. Hier wird der Pfad zu den Style-Dateien festgelegt.
Beispiel
httpcss = /etc/oscam/harvest_round_Firefox.css = [blank] es wird der embedded Style verwendet (default)
httptpl
Pfad für externe Templates
httptpl = = [blank] Keine externen Templates
httprefresh
Zeitspanne in Sekunden, innerhalb derer das Programm den Status des Webinterfaces aktualisiert
httprefresh = 7 Status wird nach 7 Sekunden aktualisiert = [blank] Es findes keine Aktualisierung statt
httphideidleclients
Dieser Parameter ermöglicht es, einen Clienten nach Ablauf der im Parameter hideclient_to im Abschnitt [monitor] festgelegten Leerlauf-Zeitspanne (siehe dort!) auszublenden.
httphideidleclients = 1 Ausblenden = 0 Nicht ausblenden (default)
httpscript
Pfad für Skripte, die vom Webinterface aus gestartet werden können
httpscript = Pfad = [blank] kein Pfad
httpallowed
Hier werden IP-Addressen, IP-Bereiche oder beides festgelegt, die auf das Webinterface zugreifen dürfen. Es wird zwar auch ein [blank] als Default-Wert angeboten, dessen Sinn sich aber nicht erschließt! Wenn das Webinterface benutzt werden soll, dann muss es auch die Möglichkeit geben, sich mit ihm zu verbinden. Daher wird dieser Parameter als zwingend dargestellt.
IP address|IP address range[,IP address|IP address range]...
Beispiel
httpallowed = 127.0.0.1,192.168.0.0-192.168.255.255 Host, sowie der gesamte Range 192.168.0 sind zugelassen
httpdyndns
Zulassen von DYNDNS-Verbindungen durch das Webinterface.
Beispiel
httpdyndns = my.dynexample.com
httpsavefullcfg
Sicherung der Konfigurationsdateien
httpsavefullcfg = 0 alle nicht leeren Parameter, alle nicht Default-Parameter, alle Parameter, die nicht den gleichen Inhalt enthalten wie dieselben Parameter in [global] (default). 1 alle Parameter
httpreadonly
Über das Webinterface können in bestimmtem Unfang Konfigurations-Dateien editiert und gesichert werden. Das ist für den Server-Admin, der sich nicht immer in der Nähe zur Konsole des Servers befindet, sehr vorteilhaft. Wenn aber weitere User oder andere Beteiligte ebenfalls Zugang zum Webinterface und damit Zugriff auf die Daten haben, kann das zu einem Problem werden. Die Möglichkeit des Editierens (Schreibens) kann daher mit diesem Parameter ausgeschaltet werden.
httpreadonly = 1 nur Lesezugriff möglich = 0 alles ist möglich (default)
Camd 33 (TCP)
Abschnitt nur dann erforderlich, wenn camd33 als Client Protokoll notwendig ist.
[camd33] port = serverip = nocrypt = passive = key =
port
Hier wird der Port festgelegt, von dem aus Camd 33 Anfragen beantwortet werden. Dieser Port muss ggf. auch am Router geöffnet werden.
Beispiel:
port = 15000
serverip
Bei einem Server mit mehreren Netzwerkkarten und daher mehreren unterschiedlichen IP Adressen kann es gewünscht sein, dass OSCam nur antwortet, wenn die Anfrage auf einer betimmten IP Adresse kommt. Mit diesem Parameter kann man festlegen, auf welche IP Adresse der OSCam Prozess "hört".
Beispiel:
serverip = 192.168.178.1
Default:
serverip =
nocrypt
Eine bestimmte IP Adresse oder ein Adressbereich, der unverschlüssel übertragen wird.
Beispiel:
nocrypt = 127.0.0.1,192.168.0.0-192.168.255.255
Default:
nocrypt =
passive
Definition für aktiven oder passiven Client. Generell geht das Camd3.3x-Protokoll von einem aktiven Client aus. Es kann aber unter bestimmten Umständen bei manchen Clients (meistens plugin) zur Schwierigkeiten kommen. In diesem Fall
Beispiel:
passive = 1
Default:
passive = 0
key
Schlüssel, der für die Verschlüsselung verwendet wird. (128bit Verschlüsselung)
Beispiel:
key = 01020304050607080910111213141516
Default:
key =
Camd 35 bzw. cs357x (UDP)
Abschnitt nur dann erforderlich, wenn camd35 bzw. cs357x als Client Protokoll notwendig ist. Dieses Protokoll verschlüsselt grundsätzlich und bildet den Schlüssel aus dem Benutzernamen.
[camd35] port = serverip = suppresscmd08 =
[cs357x] port = serverip = suppresscmd08 =
port
Hier wird der Port festgelegt, von dem aus Camd Anfragen beantwortet werden. Dieser Port muss ggf. auch am Router geöffnet werden.
Beispiel:
port = 15000
serverip
Bei einem Server mit mehreren Netzwerkkarten und daher mehreren unterschiedlichen IP Adressen kann es gewünscht sein das OSCam nur antwortet wenn die Anfrage auf einer betimmten IP Adresse kommt. Mit diesem Parameter kann man festlegen auf welche IP Adresse der OSCam Prozess "hört".
Beispiel:
serverip = 192.168.178.1
Default:
serverip =
suppresscmd08
Aktiviert die Unterdrückung für den CMD08.
Beispiel:
suppresscmd08 = 1 (aktiviert) suppresscmd08 = 0 (deaktivert)
Default:
suppresscmd08 = 0
cs378x (TCP)
Abschnitt nur dann erforderlich, wenn cs378x als Client Protokoll notwendig ist.
[cs378x] port = serverip = suppresscmd08 =
port
Hier wird der Port festgelegt von dem aus Camd Anfragen beantwortet werden. Dieser Port muss ggf. auch am Router geöffnet werden.
Beispiel:
port = 15000
serverip
Bei einem Server mit mehreren Netzwerkkarten und daher mehreren unterschiedlichen IP Adressen kann es gewünscht sein das OSCam nur antwortet wenn die Anfrage auf einer betimmten IP Adresse kommt. Mit diesem Parameter kann man festlegen auf welche IP Adresse der OSCam Prozess "hört".
Beispiel:
serverip = 192.168.178.1
Default:
serverip =
suppresscmd08
Aktiviert die Unterdrückung für den CMD08.
Beispiel:
suppresscmd08 = 1 (aktiviert) suppresscmd08 = 0 (deaktivert)
Default:
suppresscmd08 = 0
Newcamd (TCP)
Abschnitt nur dann erforgerlich, wenn newcamd als Client Protokoll notwendig ist.
[newcamd] mgclient = key = port = serverip = allowed = keepalive =
mgclient
Aktiviert das Extendet Newcamd Protokol um mehrer CIAD's über einen Port zu schicken
Beispiel:
mgclient = 1 (aktiviert) mgclient = 0 (deaktiviert)
Default:
mgclient = 0
key
Schlüssel für die Newcamd Verbindung zum Client.
Beispiel:
key = 0102030405060708091011121314
Default:
key =
port
Hier wird der Port festgelegt von dem aus Newcamd Anfragen beantwortet werden. Dieser Port muss ggf. auch am Router geöffnet werden.
Beispiel:
port = 15000@1234:000000 (CAID 1234 ist über Port 15000 erreichbar) port = 15000@1234:000000;15001@5678:000000 (CAID 1234 ist über Port 15000 erreichbar CAID 5678 über Port 15001)
Default:
port = port@caid:ident
serverip
Hat der Server mehrere IP Adressen werden nur Anfragen die an die konfigurierte IP gehen beantwortet.
Beispiel:
serverip = 192.168.178.1
Default:
serverip =
allowed
Eine bestimmte IP Adresse oder ein bestimmter IP Bereich der sich auf den Newcamd Server verbinden darf.
Beispiel:
allowed = 127.0.0.1,192.168.0.0-192.168.255.255
Default:
allowed =
keepalive
Der Server versucht die Newcamd Verbindung am leben zu halten.
Beispiel:
keepalive = 1 (aktiviert) keepalive = 0 (deaktiviert)
Default:
keepalive = 1
Radegast (?)
Abschnitt nur dann erforderlich, wenn radegast als Client Protokoll notwendig ist.
[radegast] port = serverip = user =
Serial
Abschnitt nur dann erforderlich, wenn eine serielle Reader-Schnittstelle notwendig ist.
[serial] device =
Cccam (TCP)
Abschnitt nur dann erforderlich, wenn Cccam als Client Protokoll notwendig ist.
[cccam] port = version = build = reshare = ignorereshare = minimizecards = updateinterval = keepconnected =
GBox (?)
Abschnitt nur dann erforderlich, wenn GBox als Client Protokoll notwendig ist.
[gbox] password = maxdist = ignorelist = onlineinfos = cardinfos = locals =
Achtung: Das GBox Modul ist Closed Source und daher NICHT im OSCam SVN enthalten! Das OSCam Team hat das GBox Modul NICHT und kann daher auch keine entsprechenden Binaries zur verfügung stellen.
DVBapi
Abschnitt nur dann erforderlich, wenn OScam auch als Client zum entschlüsseln eingesetzt werden soll.
[dvbapi] enabled = user = ignose = priority = au = pmt_mode = boxtype =
enabled
Soll DVB API verwendet werden zum lokalen entschlüsseln.
Beispiel:
enabled = 0 (deaktiviert) enabled = 1 (aktiviert)
Default:
enabled = 0
user
Hier wird der User festgelegt dieser sollte in der oscam.user angelegt sein.
Beispiel:
user = user1
Default:
enabled = anonymous
ignore
CAID die ignoriert werden soll.
Beispiel:
ignore = 1234 ignore = <CAID>
Default:
ignore =
priority
CAID die priorisiert werden soll.
Beispiel:
priority = 1234:000000 priority = <CAID>:<provider ID>
Default:
priority = Lokale CAID's werden priorisiert
au
Autoupdate für DVB API aktivieren. Abhängig vom verwendeten User aus der oscam.user und dessen au Einstellungen.
Beispiel:
au = 1 (aktiviert) au = 0 (deaktiviert)
Default:
au = 0
pmt_mode
Bitte ergänzen.
Beispiel:
pmt_mode = 0 (verwendet camd.socket und PMT Datei) pmt_mode = 1 (deaktiviert PMT Datei) pmt_mode = 2 (deaktiviert camd.socket) pmt_mode = 3 (liest PMT nur beim Start ein)
Default:
pmt_mode = 0
boxtype
Verwendete Box auf der DVB API aktiviert wurde.
Beispiel:
boxtype = ufs910 boxtype = dbox2|dreambox|dm7000|duckbox|ufs910|ipbox|ipbox-pmt
Default:
boxtype = dreambox
Anticasc
Abschnitt nur dann erforderlich, wenn Anticascading als Schutz vor unbefugtem Weiterreichen von Cardsharing angewendet werden soll.
[anticasc] enabled = numusers = samples = penalty = aclogfile = fakedelay = denysamples =
oscam.server
Diese Konfigurationsdatei enthält Reader-Parameter für OSCam. Die Abschnitte dürfen sich wiederholen (mehr als ein Reader möglich). Es muss aber in jedem Fall mindestens ein reader konfiguriert sein!
Reader
[reader] device = device_out_endpoint = enable = key = premium = account = password = services = inactivitytimeout = reconnecttimeout = disableserverfilter = label = fallback = logport = caid = audisabled = auprovid = detect = cardmhz = mhz = deprecated = mode = protocol = ident = provid = class = maxqlen = group = emmcache = ratelimitseconds = blocknano = blockemm-u = blockemm-s = blockemm-unknown = savenano = readnano = lb_weight = cccversion = cccmaxhops = cccwantemu = ccckeepalive = pincode = chid = force_irdeto = nagra_read = n3_rsakey|rsakey = n3_boxkey|boxkey = tiger_rsakey = aeskey = aeskeys = showcls = boxid = ndsversion =
Oscam.user
Diese Datei enthält Userdefinitionen. Für jeden User muss ein Abschnitt erstellt werden.
Account
[account] user = pwd = hostname = betatunnel = uniq = sleep = sleepsend = caid = au = group = services = ident = class = monlevel = expdate = disabled = allowedtimeframe = numusers = penalty = failban = suppresscmd08 = keepalive = cccmaxhops = cccreshare =
user
Hier wird der Benutzername eingefügt. (Clientname)
Beispiel:
user = user1
Default:
user =
pwd
Hier wird der das Passwort festgelegt.
Beispiel:
pwd = pwuser1
Default:
pwd =
hostname
Beispiel:
hostname = pwuser1
Default:
hostname =
betatunnel
Beispiel:
betatunnel = betatunnel = <CAID>.<ServiceID>:<target CAID>
Default:
betatunnel =
uniq
Mit Uniq wird geregelt ob sich ein Client gleichzeitig nur einmal oder mehrmals anmelden darf
Beispiel:
uniq = 0 (deaktiviert) uniq = 1 (Nur eine Verbindung pro User ist erlaubt) uniq = 2 (Setzt User auf Fake wenn die IP unterschiedlich ist) uniq = 3 (Erlaubt nur eine Verbindung pro User, die letzte Verbindung bleibt bestehen) uniq = 4 (Setzt User auf Fake wenn die IP unterschiedlich ist aber dder letzte Login bleibt erhalten)
Default:
uniq = 0
sleep
Zeit in Minuten nach der der User auf inaktiv gesetzt wird.
Beispiel:
sleep = 5
Default:
sleep =
sleepsend
255 = nur OSCAM Clients: Stoppt Anfragen bist zum nächsten umschalten 255 = nur Camd3 Clients: Stppt Anfragen bis Camd3 neugestartet wird
Beispiel:
sleepsend = 0 sleepsend = 255
Default:
sleepsend =
caid
Limitiert die CAID's die ein User anfragen darf.
Beispiel:
caid = 1234,5678 caid = <CAID>,<CAID>
Default:
caid =
au
Hier wird dem User erlaubt EMM's an alle bzw. eine bestimmte Karte zu schicken.
Beispiel:
au = 1 au = lable_of_reader (wird in der oscam.server konfiguriert)
Default:
au =
group
Jeder User muss in einer oder mehrere Gruppen eingetragen sein. Damit lässt sich dann bestimmen, auf welche Reader, sofern mehrere vorhanden sind, dieser Client Zugriff haben soll.
Beispiel:
group = 1 (User ist in Gruppe 1) group = 1,2 (User ist in Gruppe 1 + 2)
Default:
group =
services
Welches Services darf der User nutzen hierzu muss eine oscam.services vorhanden sein.
Beispiel:
services = service1,!service2 (Client darf service1 empfangen aber nicht service2) services = [!]services
Default:
services =
ident
Muss nachgepflegt werden.
Beispiel:
ident = ident = <CAID>:<ident>
Default:
services =
class
Muss nachgepflegt werden.
Beispiel:
class =
Default:
class =
monlevel
Der Monitorlevel gibt dem Client die Möglichkeit sich auf die Monitorschnittstelle des Servers zu verbinden. Der Monitor wird in der oscam.conf konfiguriert.
Beispiel:
monlevel = 0 (kein Zugriff auf den Monitor) monlevel = 1 (nur der Server und der eigene Prozess) monlevel = 2 (alle Prozesse aber nur anschauen) monlevel = 3 (alle Prozesse und neuladen der oscam.user) monlevel = 4 (Vollzugriff)
Default:
monlevel = 2
expdate
Wie lange ist der User gültig.
Beispiel:
expdate = 2099-12-31 (Gültig bis 31.12.2099) expdate = <year>-<month>-<day>|<year>/<month>/<day>
Default:
expdate =
disabled
Wie lange ist der User gültig.
Beispiel:
disabled = 0 (User ist aktiv) disabled = 1 (User ist gesperrt)
Default:
disabled = 0
allowedtimeframe
Zeitspanne in der der User schauen darf.
Beispiel:
allowedtimeframe = 10:00-22:00 allowedtimeframe = hh:mm-hh:mm
Default:
allowedtimeframe =
numusers
Wird nur benötigt wenn Anti-Cascading aktiviert ist. Anzahl der zugelassenen User pro Account
Beispiel:
numusers = 5 (Maximal 5 User) numusers = 0 (Anti-Cascading deaktiviert) numusers = quantity
Default:
numusers =
penalty
Wird nur benötigt wenn Anti-Cascading aktiviert ist. Was passiert wenn der Wert numuser überschritten wird.
Beispiel:
penalty = 0 (Es wird nur geloggt) penalty = 1 (Sendet Fake CW's) penalty = 2 (deaktiviert temporär den Account)
Default:
penalty = 0
failban
Was passiert wenn der Wert numuser überschritten wird.
Beispiel:
failban = 0 (ignoriert) failban = 2 (Blockt die IP wenn sich ein deaktivierter Client verbindet) failban = 4 (Blockt die IP eines schlafenden Accounts)
Default:
failban = 0
suppresscmd08
Nur wenn camd3|3.57x|3.78x verwendet wird Was passiert wenn der Wert numuser überschritten wird.
Beispiel:
suppresscmd08 = 0 (aktiviert) suppresscmd08 = 1 (deaktiviert)
Default:
suppresscmd08 = 0
keepalive
Die Verbindung zwischen Server und Client wird aufrechterhalten
Beispiel:
keepalive = 0 (deaktiviert) keepalive = 1 (aktiviert)
Default:
keepalive = 1
cccmaxhops
Nur wenn CCcam Proxies vorhanden ist oder ein CCcam Server verwendet wird. Maximale Hops die dem User erlaubt sind.
Beispiel:
cccmaxhops = 5 cccmaxhops = hops
Default:
cccmaxhops = 10
Nur wenn CCcam Proxies vorhanden ist oder ein CCcam Server verwendet wird. Reshare Level welches dem User erlaubt wurde.
Beispiel:
cccreshare = -1 cccreshare = x (Share Level)
Default:
cccreshare = 10
oscam.dvbapi
Konfigurationsdatei für DVBapi
P: CAID:[provider ID]:[service ID]:[ECM PID] [continue] I: CAID:[provider ID]:[service ID]:[ECM PID] D: CAID:[provider ID]:[service ID]:[ECM PID] delay M: CAID:[provider ID]:[service ID]:[ECM PID] CAID:[provider ID]
P = Settings für Priority, continue = 1 mit Vorrang behandeln default ist ohne Vorrang
I = Settings für Ignore
D = Settings für Delay in Millisekunden für das Schreiben der CW's (wenn der Server zu schnell liefert ;-)
M = Settings für Mapping
Beispiele: P: 0100:123456 CAID 0100 mit Provider 123456 hat Vorrang P: :::1234 ECM mit Provider ID 1234 hat auf jedem Service Vorrang P: 0200 CAID 0200 hat Vorrang P: 0300:9ABC CAID 0300 hat nur auf Service 9ABC Vorrang M: 0400 0500:123456 Mapped CAID 0400 und 0500 ständig zu provider ID 123456 D: 0600 200 Wartet 200 ms bevor CW für CAID 0600 geschrieben wird I: :654321 Ignoriert Provider ID 654321 für jeden service I: 0 Ignoriert jede CAID, die nicht zuvor bearbeitet wurde
oscam.ac
Anti-Cascading Tabelle
Durch Verwenung dieser Tabelle wird vermieden, dass ein User die empfangenen CW's [Controlwords] unerlaubt an weitere User reicht (cascadiert).
<CAID>:<provider ID>=<seconds>
oder
<CAID>:<provider ID>*=<seconds>
Es wird der zeitliche Abstand beim Wechsel der CW's in Bezug auf CAID und provider ID in Sekunden festgelegt. Zusätzlich kann bestimmt werden, für wieviel Zyklen diese Vorgabe gilt
Beispiel: 0100:000000=10 *=7
Für CAID 0100 mit dem Provider 000000 wird der Abstand auf 10 Sekunden festgelegt. Der Zyklus soll 7 mal durchlaufen werden.
oscam.cert
Issuer Publik Keys (IPK)
CAID:reserverd:IPK
Beispiel: 0100:00000000:010203040506070809A0B0C0D0E0F
Ermöglicht ein mapping zwischen CAID und IPK/sessions keys in hex
Hinweis
Derzeit nur für Cryptoworks!
oscam.guess
Tabelle zur Feststellung der CAID
Nur für BOMBA Protocol
<length of ECM>:<CAID>
Leitet die CAID aus len in hex ab. Wird nur für Protokolle benötigt, die CAID nicht weitergeben (z.B. BOMBA).
Beispiel: 12:3456
oscam.ird
Für Irdeto
Tabelle zur Feststellung der CAID über die Signature.
<byte3>:<byte4-7>:<CAID>:<SID>
Beispiel: 12:000000a:12ab:cd01
oscam.services
Definition von services für OSCam
[service name] = caid = provid = srvid =
[service name]
Dieses Feld muss einen unverwechselbaren Namen haben und leitet jeweils die Angaben für diesen Service ein
caid
Hier werden eine oder mehrere CAID's für diesen Service in hex aufgelistet.
provid
Hier werden eine oder mehrere Provider ID's in hex aufgelistet.
srvid
Hier werden die Service ID's in hex aufgelistet.
Beispiel: [myservice] CAID=0100,0200,000A provid=000001,ABCDEF srvid=0001,0002,000A,000B
Eine umfangreiche Liste wird hier laufend gepflegt:
[[2]]
oscam.srvid
Diese Datei wird nur benötigt, wenn Monitor und Webinterface betrieben werden!
Es findet ein Mapping zwischen CAID, Service ID, Provider, Name, Art und Beschreibung des Servives statt. Das Logging und die Anzeigen im Webinterface erhalten durch die Klartextbezeichnungen eine bessere Aussagekraft. Abhängigkeiten zwischen Server, Reader und User sind schneller und besser erkennbar.
CAID[,CAID]...service ID|[provider]|[name]|[type]|[description]
Beispiele: 0001,0002,0003:000a|my provider 1|tv name|tv|my tv package 0004,0005,0006:000a|my provider 2|radio name 2|radio|my radio package 0006:000b|my provider 3|tv name 3|
Eine umfangreiche oscam.srvid wird hier bereitgestellt und gepflegt:
[[3]]
oscam.tiers
Es findet ein Mapping zwischen CAID und Tier statt und es wird eine beschreibung hinzugefügt.
CAID[,CAID]...:TIER ID|description
Beispiele: 0001,0002,0003:000a|may TIER 1 0004:000b|my TIER 2 0005:000b|ny TIER 3