Loading...

OScam oscam.user Datei: Kundenkonten richtig einrichten (2026 Anleitung)

Wenn Sie jemals auf einen Logeintrag eines Kunden gestarrt haben, der "verbunden" sagt, während sein Receiver null Kanäle anzeigt, wissen Sie bereits, welchen Schmerz dieser Artikel behandelt. Die OScam oscam.user Datei: Kundenkonten richtig einrichten, dreht sich hauptsächlich um das Verständnis einer Regel, die fast niemand klar erklärt — wie Authentifizierung und Autorisierung zwei separate Schritte sind und wie eine Fehlanpassung zwischen ihnen ein Login erzeugt, das "funktioniert", aber nichts liefert.

Ich habe diese Datei mehrmals neu erstellt, als ich von CCcam migriert habe und bei frischen OScam-Installationen aus dem Quellcode. Die Syntax selbst ist einfach. Was die Leute verwirrt, ist die Beziehung zwischen oscam.user und oscam.server — und genau dort verbringt dieser Leitfaden die meiste Zeit.

Was die oscam.user Datei tatsächlich tut

Denken Sie an oscam.user als zwei Jobs, die übereinander gestapelt sind. Job eins ist Authentifizierung: Existiert diese Benutzer/Pwd-Kombination, ist sie nicht abgelaufen, ist sie nicht deaktiviert? Job zwei ist Autorisierung: Vorausgesetzt, das Login ist gültig, auf welche Gruppen, CAIDs, Idents, Kanal-IDs und Dienste darf dieses Konto tatsächlich zugreifen? Die meisten Support-Tickets, die ich gesehen habe, stammen von Leuten, die Job eins gelöst haben und Job zwei nie überprüft haben.

Die Datei ist im Klartext. Ein[account] Block pro Kunde, Kommentare beginnen mit#, und OScam liest das Ganze beim Start von oben nach unten. Änderungen, die über SSH vorgenommen werden, erfordern einen Neustart oder ein SIGHUP, um wirksam zu werden — Änderungen, die über den WebIf Users-Tab vorgenommen werden, gelten sofort, da der WebIf in dieselbe Datei schreibt und selbst einen Reload auslöst.

Die Standardstandorte variieren je nach Build:

  • /usr/local/etc/oscam.user — Standard für Installationen aus dem Quellcode
  • /etc/tuxbox/config/oscam.user oder/etc/tuxbox/config/oscam/oscam.user — häufig bei Enigma2-Images
  • Welches Verzeichnis Sie auch mitoscam -c /path/to/config übergeben haben — dies hat immer Vorrang vor jedem "Standard"-Pfad

Setzen Sie die Berechtigungen auf 600 für diese Datei. Passwörter liegen im Klartext vor, und auf einem Mehrbenutzer-System gibt es keinen Grund, warum ein anderes Konto sie lesen können sollte:chmod 600 /usr/local/etc/oscam.user.

Hier ist ein minimaler funktionierender Block, um den Rest dieses Artikels zu verankern:

[account]

user undpwd sind die Anmeldeinformationen, die der Receiver des Kunden oder CCcam.cfg senden wird.group = 1 bedeutet, dass dieses Konto nur an Leser weitergeleitet werden kann, deren eigenegroup Zeile in oscam.server Gruppe 1 enthält.au = 1 erlaubt es, EMMs weiterzuleiten, um die Karte automatisch zu aktualisieren.uniq = 1 bedeutet, dass nur eine aktive Verbindung zur gleichen Zeit erlaubt ist — ein zweites Login kickt das erste. Das ist das ganze Gerüst. Alles andere in dieser Datei ist eine Verfeinerung darauf.

OScam bewertet eine Anfrage in einer festen Reihenfolge: Es überprüft das Login gegen oscam.user, dann schneidet es die Gruppe des Kontos mit verfügbaren Lesegeräten, dann wendet es CAID/ident/chid/class-Filter an, dann wählt es ein Lesegerät aus und fragt nach dem ECM. oscam.server definiert die Lesegeräte und ihre Gruppen; oscam.services definiert benannte Dienstbündel, auf die Sie aus oscam.user verweisen können. oscam.conf sagt OScam einfach, auf welchen Netzwerkprotokollen es überhaupt hören soll. Keines dieser Dateien tut etwas allein — der Konto-Block ist das Scharnier zwischen ihnen.

Einen korrekten [account]-Block schreiben: Jeder Parameter, der zählt

Hier ist ein vollständiger Block mit den Parametern, die die Leute tatsächlich in der Produktion benötigen, kommentiert:

[account]

user, pwd — obligatorisch. Kein Konto ist gültig ohne beide. Ein Block, derpwd fehlt, ist nicht "passwortlos", sondern unbrauchbar — OScam kann es einfach nicht authentifizieren.

group — eine durch Kommas getrennte Liste von Zahlen von 1 bis 64. Dies ist der am meisten missverstandene Parameter in der gesamten Datei, und ich werde ihn im nächsten Abschnitt richtig behandeln, weil er ein eigenes Beispiel verdient. Kurze Version: Diese Zahl bedeutet allein nichts. Sie zählt nur im Verhältnis zu dergroup= Zeile auf einem Lesegerät in oscam.server.

au — steuert die EMM-Weiterleitung.au = 1 lässt Updates an jedes Lesegerät gehen, das die Gruppe des Kontos erreichen kann.au = readername bindet Updates an ein bestimmtes Lesegerät nach Namen, was die sicherere Wahl bei einer gemeinsamen Karte ist — Sie möchten nicht, dass die EMMs von drei verschiedenen Clients gegeneinander auf derselben Smartcard antreten. Lassen Sieau leer, um die EMM-Weiterleitung für diesen Benutzer vollständig zu deaktivieren, was ich standardmäßig für jeden empfehlen würde, der über das CCcam-Protokoll verbindet, da die CCcam-seitige AU in der Praxis immer fehleranfällig war.

caid, ident, chid, class — eingrenzende Filter.caid=0500,1810 schränkt ein, welche CAIDs das Konto überhaupt anfordern kann.ident= geht eine Ebene tiefer mit CAID:provid-Paaren, z.B.0500:007800.chid= filtert nach Kanal-ID,class= filtert nach ECM-Klasse. Lassen Sie einen von ihnen leer, und dieser Filter wird einfach nicht angewendet — das Konto erbt, was das übereinstimmende Lesegerät bietet.

services — verweist auf einen benannten Block aus oscam.services, anstatt rohe CAID/provid-Paare aufzulisten. Im nächsten Abschnitt mit einem Beispiel behandelt.

uniq — Werte von 0 bis 4, die gleichzeitige Anmeldungen steuern.uniq = 0 deaktiviert die Überprüfung.uniq = 1 ist strikte Einzelverbindung: Eine neue Anmeldung beendet die alte.uniq = 3 erlaubt mehrere gleichzeitige Verbindungen, jedoch nur von derselben Quell-IP — korrekt für einen Haushalt mit zwei oder drei Receivern hinter einem Router.

sleep / sleepsendsleep = 90 trennt einen inaktiven Client nach 90 Minuten ohne ECM-Anfragen.sleepsend = 255 ist die höfliche Version — sie sagt den CCcam-Protokoll-Clients, dass sie tatsächlich aufhören sollen, den Server zu belasten, sobald der Schlaf-Timer abläuft, anstatt weiterhin Anfragen zu stellen und stillschweigend ignoriert zu werden.

cccmaxhops, cccreshare — Topologie-Steuerungen für Card-Sharing-Ketten.cccmaxhops begrenzt, wie viele Hops ein Share reisen kann, bevor die Karte dieses Kontos von einer anderen Reshare ausgeschlossen wird;cccreshare steuert, ob der eigene Share dieses Kontos weiter unten in der Kette erneut weitergeleitet werden kann.

monlevel — Zugriffslevel für den Monitor/WebIf, nicht verwandt mit dem Kartenzugriff.disabled = 1 ist der sicherere Weg, ein Konto vorübergehend zu sperren — das Löschen eines Blocks verliert die Konfiguration, das Deaktivieren hält alles intakt und umkehrbar.expdate = YYYY-MM-DD läuft das Konto an diesem Datum automatisch ab, nützlich für zeitlich begrenzten Zugriff ohne manuelle Nachverfolgung.

allowedprotocols — bindet das Konto an spezifische Listening-Protokolle (z.B.cccam,cs378x), sodass selbst wenn die Anmeldedaten durchsickern, sie nicht verwendet werden können, um sich über newcamd oder einen anderen aktivierten Listener zu verbinden.

Gruppenzuordnung: Verbindung von oscam.user zu oscam.server

Dies ist der Teil, der ein funktionierendes Setup von einem "verbunden, aber leer" trennt, und es ist der Teil, den die meisten Tutorials völlig überspringen. Die Regel ist einfach zu formulieren und leicht falsch zu verstehen:Die Gruppe eines Clients in oscam.user muss mindestens eine Nummer mit der Gruppe eines Readers in oscam.server teilen. Keine gemeinsame Nummer, kein ECM, egal wie korrekt das Passwort ist.

Angenommen, Sie betreiben zwei Reader. Reader A ist eine lokale Smartcard. Reader B ist ein Remote-Proxy/CCcam-Reader, der von anderswo abruft. In oscam.server:

[reader]

Jetzt definieren Sie drei Stufen von Clients in oscam.user:

[account]

basic kann nur zu reader_local geleitet werden.full kann je nach Bedarf entweder Reader erreichen.proxy_only ist auf reader_proxy beschränkt und wird niemals die lokale Smartcard berühren, selbst wenn sie direkt dort und inaktiv ist.

Hier ist der Fehlermodus, den ich ständig sehe: jemand erstelltgroup = 3 auf einem neuen Konto und vergisst, dass kein Leser irgendwo hatgruppe = 3 in oscam.server. Der Login gelingt — OScam hat kein Problem, einen gültigen Benutzer/Pwd zu authentifizieren — aber in dem Moment, in dem ein Kanal eingestellt wird, zeigt das Protokoll etwas wienicht gefunden (kein passender Leser). Der Client geht davon aus, dass die Karte gestorben ist. Die Karte ist in Ordnung. Es gibt einfach keinen Leser, der dieser Gruppennummer zugeordnet ist.

Sobald Sie das verstehen, wird offensichtlich, warum das Setzen vongruppe = 1,2,3,4,5 auf jedem Konto "zur Sicherheit" den gesamten Sinn von Gruppen zunichte macht. Wenn jeder Client auf jeden Leser zugreifen kann, haben Sie eine Zugriffskontrollliste erstellt, die nichts kontrolliert — Sie könnten genauso gut keine Gruppen haben, und Sie haben die Fähigkeit verloren, Ihre lokale Karte von einem entfernten Proxy-Leser zu isolieren, wenn Sie sie tatsächlich benötigen.

Für die Kanalsteuerung unterhalb der Gruppen-/CAID-Ebene verwenden Sie oscam.services. Definieren Sie einen benannten Block:

[sports]

Verweisen Sie dann von einem Konto darauf, anstatt rohe CAID/provid-Paare zu wiederholen:

[account]

Präfix mit! um auf die schwarze Liste zu setzen anstatt auf die weiße Liste —services = !sports erlaubt alles außer diesem Block. Lassen Sieservices= leer und es gibt überhaupt keine Dienstebene-Beschränkung; das Konto fällt auf das zurück, was die Gruppen-/CAID-/Ident-Filter bereits erlauben.

Protokollspezifische Kontoeinrichtung: CCcam, camd35, cs378x, newcamd, MGcamd

Hier ist das, was viele Leute, die von CCcam migrieren, überrascht: der gleiche[account] Block dient gleichzeitig jedem Protokoll. oscam.user selbst weiß nicht oder kümmert sich nicht darum, ob der Client über CCcam, newcamd oder cs378x verbindet — das wird vollständig durch den Listener in oscam.conf entschieden, auf den der Client zeigt.

oscam.conf aktiviert die Listener:

[cccam]

Auf der Client-Seite benötigt jedes Protokoll seine eigene Zeile, die auf Ihren Server zeigt. Für CCcam.cfg auf einem Receiver:

C: your.server.tld 12000 clientname SomeStrongPassword2026 { 0:0:0 }

Für MGcamds newcamd.list:

CWS = your.server.tld 34001 clientname SomeStrongPassword2026 0102030405060708091011121314

Für cs378x auf einem Wicardd oder Enigma2-basierten Client ist es die gleiche Host/Port/Benutzer/Pass-Struktur wie camd35, aber über TCP anstelle von UDP — camd35 ist UDP auf Port 34000, cs378x ist TCP auf derselben Portnummer nach Konvention (sie müssen nicht übereinstimmen, aber die meisten Konfigurationen tun es so, um es einprägsam zu halten).

newcamd verdient eine spezifische Warnung: dieser 28-Zeichen-Hex-String ist ein 14-Byte-DES-Schlüssel, und er muss byte-genau zwischen derkey = Zeile in oscam.conf und dem Schlüsseldatensatz auf dem Client übereinstimmen. Wenn ein Zeichen falsch ist, schlägt der Handshake stillschweigend fehl — bei der Standard-Logstufe sehen Sie keinen nützlichen Fehler, nur einen Client, der sich nie einloggt. Beachten Sie auch, dass newcamd einen Port an ein bestimmtes CAID:provid-Paar bindet, sodass ein Client, der mehrere verschiedene CAIDs benötigt, möglicherweise mehrere newcamd-Ports definiert haben muss, einen pro Paar, es sei denn, Sie verwenden eine Version, die die Multi-CAID-Bindung an einem Port unterstützt.

Sobald das Konto in Betrieb ist, sichern Sie es mitallowedprotocols = cccam,cs378x wenn Sie wissen, dass dies das einzige Protokoll ist, das dieser spezielle Client verwendet. Es ist ein kleiner Schritt, der verhindert, dass geleakte Anmeldeinformationen über ein anderes Protokoll, das Sie nicht erwartet haben, wiederverwendet werden.

Überprüfen und Debuggen: Protokolle, WebIf und die Fehler, die Sie tatsächlich sehen werden

Bevor Sie einen Receiver berühren, erhöhen Sie die Protokollierung. In oscam.conf:

[global]

ErhöhenProtokollebene bis 255 vorübergehend, wenn Sie maximale Ausführlichkeit benötigen, während Sie ein bestimmtes Konto debuggen, und dann wieder zurückdrehen – bei 255 füllt sich das Protokoll schnell. Verfolgen Sie es live mittail -f /var/log/oscam/oscam.log während der Client versucht, sich zu verbinden.

Hier ist, was die gängigen Strings tatsächlich bedeuten:

  • falscher Benutzername/Passwort – überprüfen Sie auf ein überflüssiges Leerzeichen oder, häufiger als die Leute erwarten, ein Windows CRLF-Zeilenende in einer Datei, die auf einem Windows-Rechner bearbeitet und über FTP hochgeladen wurde. OScam kann an dem nachfolgenden\r ersticken und die Zeile nicht korrekt analysieren.
  • Konto abgelaufenexpdate ist vergangen. Überprüfen Sie auch die Serverzeit – eine Uhr, die vorgerückt ist, kann ein Konto vorzeitig ablaufen lassen.
  • Benutzer deaktiviertdisabled = 1 ist auf diesem Block gesetzt.
  • nicht gefunden (kein passender Leser) – Gruppeninkongruenz zwischen oscam.user und oscam.server, genau wie oben behandelt.
  • Client abgelehnt (ungültige IP) – eine IP-Whitelist-Beschränkung auf dem Konto oder Listener blockiert die Quelladresse des Clients.
  • CW nicht gefunden – der Leser wurde erreicht, aber die Karte hat tatsächlich kein Anrecht auf diesen Anbieter. Dies ist ein Karten-/Abonnementproblem, kein oscam.user-Problem.
  • ECM-Zeit konstant über 1000 ms – das ist upstream oder Proxy-Latenz, nichts, was Sie in oscam.user beheben.

Bestätigen Sie, dass die Binärdatei tatsächlich das Konfigurationsverzeichnis liest, von dem Sie denken, dass es das ist:oscam -b -c /usr/local/etc. Die WebIf befindet sich standardmäßig unterhttp://your-server-ip:8888 (festgelegt überhttpport in oscam.conf), und es wird stillschweigend verweigern, zu laden, wennhttpallowed das Subnetz, von dem Sie browsen, nicht enthält – keine Fehlermeldung, nur eine Verbindung, die nie abgeschlossen wird.

Nach jeder manuellen Bearbeitung bestätigen Sie, dass das Neuladen tatsächlich stattgefunden hat, anstatt anzunehmen, dass es so war. SIGHUP-Verhalten und die Restart-Schaltfläche der WebIf verhalten sich nicht identisch in jeder Version – überprüfen Sie den Zeitstempel im Protokoll oben nach dem Neustart und bestätigen Sie, dass das neue oder geänderte Konto unter dem WebIf-Benutzertab angezeigt wird, bevor Sie es als abgeschlossen betrachten.

Härtung von Client-Konten und häufige Fehler

Einige betriebliche Gewohnheiten sparen später viel Debugging. Ein Konto pro Person oder pro Abonnement – geben Sie nicht dieselben Anmeldeinformationen an drei verschiedene Haushalte weiter und verlassen Sie sich aufuniq um es zu sortieren. Setzen Sieuniq = 3 für einen Haushalt, der mehrere Boxen hinter einer einzigen NAT-Verbindung betreibt, unduniq = 1 für ein striktes Einzelgerät-Konto. Beachten Sie, dass ein Client auf CGNAT, dessen öffentliche IP sich während der Sitzung ändert, auslösen kannuniq = 1 und wiederholte Trenn-/Wiederverbindungs-Schleifen verursachen kann, die wie ein Kartenfehler aussehen, aber tatsächlich ein uniq/IP-Problem sind.

Sichern Sie oscam.user vor jeder Bearbeitung. Ein einzelner Syntaxfehler in einem Block kann das gesamte Datei-Parsing stoppen, was jedes Konto lahmlegt, nicht nur das, das Sie bearbeitet haben. Halten Sie die Berechtigungen auf 600 — Klartext-Passwörter in einer weltweit lesbaren Datei sind ein unnötiges Risiko auf jedem gemeinsamen Server.

Ein Duplikatuser = Name über zwei Blöcke wirft keinen Fehler — der spätere Block in der Datei gewinnt stillschweigend und der frühere hört einfach auf zu funktionieren, ohne dass etwas im Protokoll steht, das Ihnen sagt, warum. Achten Sie auch auf Leerzeichen um Kommas in älteren Builds'group/caid Listen — einige Versionen parsengroup = 1, 2 anders alsgroup = 1,2.

Achten Sie auf Randfälle, die leicht übersehen werden können: Ein Konto, das sowohl eine lokale Smartcard als auch einen entfernten Proxy-Reader benötigt, benötigt eine Multi-Group-Mitgliedschaft (group = 1,2) plus separate CAID/Ident-Filter, wenn die beiden Quellen unterschiedliche CAIDs haben. Eine neu ausgegebene Smartcard mit einem neuen Provid kann stillschweigend einenident= Filter brechen, der früher funktionierte, also überprüfen Sie, ob die Karte dahinter ausgetauscht wurde, wenn ein zuvor einwandfreies Konto plötzlichCW nicht gefunden erhält, überprüfen Sie, ob die Karte dahinter ausgetauscht wurde. Und wenn Sie mehrere OScam-Instanzen auf einem Host mit unterschiedlichen-c Konfigurationsverzeichnissen ausführen, überprüfen Sie doppelt, welche oscam.user Sie tatsächlich bearbeiten, bevor Sie zu dem Schluss kommen, dass eine Lösung "nicht funktioniert" — sie könnte vollständig in die Datei der falschen Instanz gegangen sein.

Bevor Sie ein Konto an jemanden übergeben, gehen Sie diese Checkliste durch:

  • Blocksyntax ist gültig — keine überflüssigen CRLF, keine dupliziertenuser=
  • group schneidet mindestens einen Reader'sgroup in oscam.server
  • caid/ident Filter stimmen tatsächlich mit dem überein, was dieser Reader trägt
  • au ist absichtlich gesetzt, nicht standardmäßig aufau=1 belassen
  • uniq undschlafen entspricht dem tatsächlichen Nutzungsmuster des Kunden
  • Getestet mit einer echten ECM-Anfrage und im Protokoll den Erfolg bestätigt, nicht nur einen erfolgreichen Login

Holen Sie sich die OScam oscam.user-Datei: Richten Sie die Kundenkonten bereits in dieser Checkliste korrekt ein, und Sie werden später viel weniger Zeit mit "Meine Karte funktioniert nicht mehr"-Nachrichten verbringen, die in Wirklichkeit nur eine Gruppennummer sind, die nie mit einem Leser übereinstimmte.

Wo befindet sich die oscam.user-Datei?

Standard ist/usr/local/etc/oscam.user für aus dem Quellcode kompilierten Builds. Auf Enigma2-Images ist es normalerweise/etc/tuxbox/config/oscam.user oder/etc/tuxbox/config/oscam/oscam.user. Die autoritative Antwort ist das Verzeichnis, das mitoscam -c übergeben wurde — überprüfen Sie den laufenden Prozess mitps oder dem WebIf-Dateien-Tab, der den aktuellen Pfad direkt anzeigt und bearbeitet.

Mein Kunde verbindet sich, erhält aber keine Kanäle — was ist falsch?

Fast immer ein Gruppenmismatch. Dergroup= Wert im[account] Block des Kunden muss mindestens eine Nummer mit demgroup= Wert auf einem Leser in oscam.server teilen. Wenn sie sich nicht überschneiden, authentifiziert OScam den Login, hat aber keinen Leser, um das ECM weiterzuleiten, und das Protokoll zeigtkeinen passenden Leser. Zweitwahrscheinlichste Ursache: eincaid= oderident= Filter im Konto, der die CAID ausschließt, die der Kanal tatsächlich verwendet.

Was ist der Unterschied zwischen uniq=1 und uniq=3?

uniq steuert gleichzeitige Verbindungen.uniq=1 erlaubt nur eine Verbindung pro Konto und trennt die vorherige, wenn ein neuer Login eintrifft — korrekt für strikte Einzelgerät-Konten.uniq=3 erlaubt mehrere gleichzeitige Verbindungen nur, wenn sie von derselben IP-Adresse kommen — korrekt für einen Haushalt mit mehreren Receivern hinter einem einzigen NAT-Router.uniq=0 deaktiviert die Überprüfung vollständig.

Sollte ich au=1 für jedes Client-Konto setzen?

Nein.au=1 lässt die EMMs dieses Benutzers jeden Leser in ihrer Gruppe erreichen, der unerwünschte Updates auf eine gemeinsame Karte schreiben kann. Bevorzugenau=readername um AU an einen bestimmten Leser zu binden, oder lassen Sieau leer, um die EMM-Weiterleitung für diesen Benutzer zu deaktivieren. Clients im CCcam-Protokoll behandeln AU insbesondere unzuverlässig, daher ist es normalerweise sicherer, AU für sie deaktiviert zu lassen.

Brauche ich ein separates Konto für jeden meiner Receiver?

Nicht unbedingt, aber es ist die bessere Praxis. Separate Konten ermöglichen es Ihnen, unterschiedlichecaid/ident Filter festzulegen, zu erkennen, welches Gerät Last im WebIf erzeugt, und ein Gerät zu deaktivieren, ohne die anderen zu unterbrechen. Wenn Sie ein Konto über Geräte in derselben Verbindung teilen, setzen Sieuniq=3 damit OScam die gleichzeitigen Anmeldungen von derselben IP erlaubt.

Warum kann mein newcamd-Client nicht verbinden, wenn CCcam einwandfrei funktioniert?

Newcamd benötigt einen 14-Byte-DES-Schlüssel (28 hexadezimale Zeichen), der genau zwischen dem[newcamd] Schlüssel in oscam.conf und dem Schlüssel in der newcamd.list / CWS-Zeile des Clients übereinstimmen muss. Eine Nichtübereinstimmung schlägt während des Handshakes fehl, oft ohne informative Einträge im Protokoll bei der Standard-Protokollebene. Newcamd bindet auch einen Port pro CAID/provid-Paar (port = 34001@0500:007800), sodass der Client sich mit dem dem CAID zugewiesenen Port verbinden muss, den er benötigt.

Lädt OScam oscam.user automatisch neu, nachdem ich es bearbeitet habe?

Nicht zuverlässig über alle Builds hinweg. Die Bearbeitung über den WebIf-Benutzertab wird sofort angewendet. Wenn Sie die Datei über SSH bearbeiten, starten Sie OScam neu oder senden Sie SIGHUP, und bestätigen Sie dann das Neuladen, indem Sie den Zeitstempel im Protokoll überprüfen oder dass der neue Benutzer im WebIf erscheint. Überprüfen Sie auch, ob die Datei Unix (LF) Zeilenenden verwendet – eine von Windows mit CRLF gespeicherte Datei kann beim Parsen fehlschlagen und Konten stillschweigend verwerfen.