Kategorie:Cardserver
OSCAM
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 ein 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
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
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.
camd 3.3 (TCP) camd 3.5 (UDP & TCP) Newcamd (TCP) Radegast (?) Cccam (TCP) GBox (?)
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 = 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
Beispiel:
logfile =
Default:
logfile = /var/log/oscam.log
disablelog
Beispiel:
disablelog =
Default:
disablelog = 0
disableuserfile
Beispiel:
disableuserfile =
Default:
disableuserfile = 0
usrfile
Beispiel:
usrfile =
Default:
usrfile =
usrfileflag
Beispiel:
usrfileflag =
Default:
usrfileflag = 0
cwlogdir
Beispiel:
cwlogdir =
Default:
cwlogdir =
clienttimeout
Beispiel:
clienttimeout =
Default:
clienttimeout = 5
fallbacktimeout
Beispiel:
fallbacktimeout =
Default:
fallbacktimeout = 2500
clientmaxidle
Beispiel:
clientmaxidle =
Default:
clientmaxidle = 120
bindwait
Beispiel:
bindwait =
Default:
bindwait = 120
netprio
Beispiel:
netprio =
Default:
netprio =
resolvegethostbyname
Beispiel:
resolvegethostbyname =
Default:
resolvegethostbyname = 0
resolvedelay
Beispiel:
resolvedelay =
Default:
resolvedelay = 30
clientdyndns
Beispiel:
clientdyndns =
Default:
clientdyndns = 0
failbantime
Beispiel:
failbantime =
Default:
failbantime = 0
sleep
Beispiel:
sleep =
Default:
sleep =
unlockparental
Beispiel:
unlockparental =
Default:
unlockparental = 0
nice
Beispiel:
nice =
Default:
nice = 99
serialreadertimeout
Beispiel:
serialreadertimeout =
Default:
serialreadertimeout = 1500
waitforcards
Beispiel:
waitforcards =
Default:
waitforcards = 1
preferlocalcards
Beispiel:
preferlocalcards =
Default:
preferlocalcards = 0
readerestartseconds
Beispiel:
readerestartseconds =
Default:
readerestartseconds = 5
saveinithistory
Beispiel:
saveinithistory =
Default:
saveinithistory = 0
double_check
Beispiel:
double_check =
Default:
double_check = 0
lb_mode
Beispiel:
lb_mode =
Default:
lb_mode = 0
lb_save
Beispiel:
lb_save =
Default:
lb_save = 0
lb_nbest_readers
Beispiel:
lb_nbest_readers =
Default:
lb_nbest_readers = 1
lb_nfb_readers
Beispiel:
lb_nfb_readers =
Default:
lb_nfb_readers = 1
lb_min_ecmcout
Beispiel:
lb_min_ecmcout =
Default:
lb_min_ecmcout = 5
lb_max_ecmcount
Beispiel:
lb_max_ecmcount =
Default:
lb_max_ecmcount = 500
lb_reopen_seconds
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 =
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 =
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 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 =
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 dvbapi als Client Protokoll notwenig ist, also es sich um eine Konfiguration als Client handelt!
[dvbapi] enabled = user = ignose = priority = au = pmt_mode = boxtype =
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 =
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
oscam.guess
oscam.ird
oscam.services
[[1]]
oscam.srvid
[[2]]