Loading...
CCcam Server auf Ubuntu installieren: Vollständige Anleitung
```html

CCcam Server auf Ubuntu installieren: Vollständiges Setup-Handbuch

Wenn Sie versuchen, einen cccam-Server auf Ubuntu zu installieren und auf Hürden stoßen — fehlende Bibliotheken, stille Abstürze, Clients, die sich nicht verbinden — sind Sie nicht allein. Dies ist eines dieser Setups, bei denen die Dokumentation verstreut, veraltet oder für Debian Lenny geschrieben ist. Dieses Handbuch behandelt den gesamten Prozess von Grund auf: Abhängigkeiten, binäre Platzierung, systemd-Dienst, Konfigurationsdateisyntax, Firewall-Regeln und Härtung. Echte Befehle, echte Dateipfade, keine oberflächliche Behandlung.

Voraussetzungen vor der Installation von CCcam auf Ubuntu

Bevor Sie die Binärdatei anfassen, bereiten Sie Ihr System vor. Das Überspringen dieses Teils ist der Grund, warum die meisten Installationen stillschweigend fehlschlagen.

Unterstützte Ubuntu-Versionen (18.04, 20.04, 22.04)

Ubuntu 20.04 LTS ist derzeit der beste Weg. 18.04 erreichte im April 2023 das Ende der Lebensdauer, verwenden Sie es also nicht für irgendetwas, das Ihnen wichtig ist. 22.04 funktioniert, führt aber zu Multiarch-Kopfschmerzen mit libssl ein — mehr dazu weiter unten. Wenn Sie auf 22.04 sind, erwarten Sie zusätzliche Zeit bei der Bibliothekskompatibilität. Alles älter als 18.04 ist eine Sackgasse.

Erforderliche Hardware: Smartcard-Leser und CAM-Karten

Sie benötigen einen physischen Smartcard-Leser, den Linux erkennt. USB-Leser (wie der Omnikey 3121 oder Gemalto PC Twin) sind der einfachste Weg. Interne CI+-Steckplätze erscheinen als /dev/ci0 oder ähnlich — der Gerätepfad unterscheidet sich, und Sie müssen ihn manuell mit ls /dev/ci* überprüfen. Wenn Sie mehrere Leser angeschlossen haben, versucht CCcam, den ersten zu erfassen, also kennen Sie den Gerätepfad, der jedem Leser entspricht, bevor Sie etwas konfigurieren.

Läuft auf einem Raspberry Pi? Hören Sie hier auf. CCcam ist eine x86-Binärdatei — sie wird auf ARM nicht laufen. Verwenden Sie stattdessen OScam, das native ARM-Builds hat.

Erforderliche Pakete: libssl, libpcsclite, pcscd

Fügen Sie zunächst Unterstützung für die i386-Architektur hinzu. Auf einem 64-Bit-Ubuntu-System ist dies nicht verhandelbar:

sudo dpkg --add-architecture i386
sudo apt update

Installieren Sie dann die erforderlichen Pakete:

sudo apt install pcscd libpcsclite1 libpcsclite-dev \ libssl-dev libc6:i386 libstdc++6:i386 libpcsclite1:i386

Auf Ubuntu 22.04 ist libssl1.0 weg. Sie benötigen stattdessen libssl1.1:i386. Wenn das auch nicht in den Repos verfügbar ist, müssen Sie möglicherweise die .deb aus dem Pool von Ubuntu 20.04 abrufen und sie manuell mit dpkg -i installieren. Es ist ärgerlich, aber es funktioniert.

Überprüfung des Kernelmoduls für Smartcard-Leser (pcsc_scan)

Installieren Sie und führen Sie pcsc_scan aus, bevor Sie etwas mit CCcam tun:

sudo apt install pcsc-tools
sudo systemctl start pcscd
pcsc_scan

Wenn Ihr Kartenleser angezeigt wird und die Karte erkannt wird, sind Sie bereit. Wenn pcsc_scan hängen bleibt oder keine Leser meldet, liegt das Problem auf OS-Ebene und CCcam kann es nicht beheben. Überprüfen Sie dmesg | grep -i usb, um zu sehen, ob der Leser beim Anschließen überhaupt erkannt wurde. Das p

```cscd daemon muss laufen, bevor CCcam startet — wenn nicht, protokolliert CCcam can't open /dev/pcsc und Ihre Karte führt zu nichts.

Herunterladen und Installieren der CCcam-Binärdatei auf Ubuntu

CCcam hat keinen offiziellen Vertriebskanal — die Entwickler haben sich vor Jahren abgemeldet. Häufige Versionen im Umlauf sind 2.1.4, 2.2.1 und 2.3.0. Version 2.3.0 hat die beste Client-Kompatibilität. Rufen Sie die Binärdatei von einer vertrauenswürdigen Quelle ab (Satellitenforen, Community-Archive). Nennen Sie keine zufälligen Wiederverkäufer-Websites, verlinken Sie sie nicht und verlassen Sie sich nicht auf sie — einige vertreiben modifizierte Binärdateien.

Wo man die CCcam-Binärdatei erhält (Version 2.1.4, 2.2.1, 2.3.0)

Versionsdifferenzen spielen eine Rolle für die Client-Kompatibilität. Einige ältere Set-Top-Boxen sprechen nur das 2.1.x-Protokoll. Wenn Clients abbrechen oder die Authentifizierung ohne offensichtlichen Grund fehlschlägt, überprüfen Sie, ob die Firmware des Clients eine bestimmte CCcam-Version erwartet. Version 2.3.0 ist grundsätzlich am tolerantesten und am weitesten rückwärtskompatibel.

Binärdatei ausführbar machen: chmod und Platzierung in /usr/local/bin

Sobald Sie die Binärdatei haben:

chmod +x CCcam
sudo mv CCcam /usr/local/bin/CCcam

Das ist alles für die Platzierung. /usr/local/bin hält es sauber und in Ihrem System-PATH.

Umgang mit 32-Bit-Abhängigkeiten auf 64-Bit-Ubuntu

Dies ist der häufigste Installationsfehlerpunkt und die meisten Anleitungen erwähnen ihn nicht einmal. CCcam ist eine 32-Bit-Binärdatei. Bei 64-Bit-Ubuntu führt die Ausführung ohne die i386-Bibliotheken zu folgendem Fehler:

bash: /usr/local/bin/CCcam: No such file or directory

Die Datei existiert. Der Fehler ist irreführend. Was tatsächlich fehlt, ist der 32-Bit-ELF-Interpreter. Beheben Sie es:

sudo apt install libc6:i386 libstdc++6:i386 libssl1.1:i386 libpcsclite1:i386

Wenn Sie 22.04 verwenden und libssl1.1:i386 nicht sauber installiert wird, laden Sie das Paket direkt herunter:

wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2_i386.deb
sudo dpkg -i libssl1.1_1.1.1f-1ubuntu2_i386.deb

Überprüfung, ob die Binärdatei läuft: ./CCcam --version

Testen Sie sie, bevor Sie einen Service darum aufbauen:

CCcam --version

Sie sollten einen Versionstring sehen. Wenn es sofort abstürzt, haben Sie immer noch fehlende 32-Bit-Bibliotheken. Führen Sie ldd /usr/local/bin/CCcam aus und suchen Sie nach Zeilen mit not found — das sind Ihre fehlenden Abhängigkeiten.

Einrichten von CCcam als systemd-Service

Vergessen Sie alte init.d-Skripte. Erstellen Sie eine richtige systemd-Einheit unter /etc/systemd/system/cccam.service:

[Unit]
Description=CCcam Card Sharing Server
After=network.target pcscd.service
Requires=pcscd.service
[Service]
Type=simple
User=cccam
Group=cccam
WorkingDirectory=/etc/cccam
ExecStart=/usr/local/bin/CCcam
Restart=on-failure
RestartSec=5
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target

Dann aktivieren und starten Sie es:

sudo systemctl daemon-reload
sudo systemctl enable cccam
sudo systemctl start cccam

Die Zeile Requires=pcscd.service stellt sicher, dass pcscd läuft, bevor CCcam versucht, auf das Kartenlesegerät zuzugreifen. Ohne dies erhalten Sie beim Booten einen Rennzustand, bei dem CCcam zuerst startet und nichts findet.

Konfigurieren von CCcam: Die CCcam.cfg-Datei erklärt

Die Konfigurationsdatei ist der Ort, wo die meisten Menschen die meiste Zeit verbringen. Die Syntax ist unnachgiebig und die Fehlermeldungen sind nicht hilfreich.

Standardort der Konfigurationsdatei: /etc/CCcam.cfg und ~/.CCcam/CCcam.cfg

CCcam sucht standardmäßig nach seiner Konfiguration in /etc/CCcam.cfg, wenn es als Systemdienst ausgeführt wird. Bei Ausführung als Benutzer wird ~/.CCcam/CCcam.cfg geprüft. Für einen systemd-Dienst, der als cccam-Benutzer läuft, legen Sie Ihre Konfiguration in /etc/CCcam.cfg ab und stellen Sie sicher, dass die Dateiberechtigungen dem cccam-Benutzer das Lesen ermöglichen. Auch: Machen Sie diese Datei nicht weltweit beschreibbar. CCcam weigert sich zu starten, wenn /etc/CCcam.cfg Berechtigungen breiter als 640 hat.

Kernrichtlinien: PORT, SERVERIP, LOGFILE, CLIENTMAXHOPS

Hier ist eine vollständig kommentierte Beispielkonfiguration:

# CCcam.cfg - Hauptkonfigurationsdatei
# Port, auf dem CCcam auf Clientverbindungen wartet (Standard 12000)
PORT = 12000
# Binden an alle Schnittstellen (verwenden Sie eine bestimmte IP für Sicherheit)
SERVERIP = 0.0.0.0
# Protokolleinstellungen
LOGFILE = /var/log/cccam.log
LOG LEVEL = 1
# Hopping-Anzahl begrenzen, um Latenz und Missbrauch zu reduzieren
CLIENTMAXHOPS = 1
# Reshare-Ebene: 0 = kein Reshare, 1 = Reshare an Clients, 2 = empfangene Karten erneut freigeben
RESHARE = 1
# Zwischenspeicher-ECM-Antworten (Millisekunden)
CACHEEX = 0

LOG LEVEL 0 ist stumm, 1 ist normal, 3 ist ausführliches Debuggen. Verwenden Sie in der Produktion 1. Level 3 schreibt schnell Gigabyte auf die Festplatte und beeinträchtigt die E/A-Leistung.

Lokale Kartenleser definieren: DEVICE- und SMARTCARD-Zeilen

Für einen USB-Leser:

DEVICE = /dev/ttyUSB0

Für einen pcsc-basierten Leser:

DEVICE = /dev/pcsc/1

Wenn Sie mehrere Leser haben, geben Sie jeden auf einer separaten DEVICE-Zeile an. CCcam initialisiert sie in Reihenfolge. Verwenden Sie für einen internen CI+-Steckplatz /dev/ci0. Überprüfen Sie den tatsächlichen Gerätepfad mit ls -la /dev/pcsc/ oder pcsc_scan, bevor Sie ihn in die Konfiguration eintragen.

Hinzufügen von Clientbenutzern: C: und F: Zeilensyntax

Hier machen es fast alle Anleitungen falsch oder erklären es überhaupt nicht. Es gibt zwei völlig unterschiedliche Zeilentypen und sie erfüllen gegensätzliche Rollen.

F: Zeilen definieren Benutzer, die sich mit Ihrem Server verbinden. Dies sind Ihre Clients:

# F: Benutzername Passwort {Reshare} {Ignoring_reshare} {Stealth}
F: client1 secretpass1 1 0 0
F: client2 anotherpass 0 0 0

C: Zeilen definieren Upstream-Server, zu denen sich Ihr CCcam verbindet:

# C: Hostname Port Benutzername Passwort {Stealth
} C: upstream.example.local 12000 myuser mypassword 0

Das Reshare-Feld in F:-Zeilen bestimmt, ob dieser Client das Empfangene weitergeben kann. Setzen Sie es auf 0, wenn Sie nicht möchten, dass Clients Karten weitergeben. Das Stealth-Feld verbirgt die Karteninformationen vor diesem Client, wenn es auf 1 gesetzt wird.

Upstream-Server hinzufügen: C:-Zeilenformat (Hostname Port Benutzername Passwort)

Wenn Sie sich mit einem Upstream-CCcam-Server für Karten verbinden, die Sie lokal nicht haben:

C: 192.168.1.100 12000 username password 0

Das fünfte Feld (Stealth-Modus) ist optional, standardmäßig aber 0. Ein Hostname funktioniert, aber DNS-Auflösung beim Start kann zu Verzögerungen führen — verwenden Sie für lokale Setups lieber IP-Adressen.

ECM-Cache und Reshare-Levels einstellen

RESHARE steuert, wie empfangene Karten propagiert werden. RESHARE = 0 bedeutet, dass Ihr Server keine von Upstream empfangenen Karten an Ihre lokalen Clients weitergibt. RESHARE = 1 bedeutet, dass er das tut. RESHARE = 2 bedeutet, dass Clients neu-weitergeben können — vermeiden Sie dies normalerweise, es sei denn, Sie möchten speziell einen Relay-Knoten.

CLIENTMAXHOPS = 1 begrenzt die Kartenhop-Anzahl auf eins. Dies reduziert die Latenz und verhindert, dass Ihr Server als Vermittler verwendet wird, durch den weitergegangene Karten über mehrere Server hinweg weitergeleitet werden. Behalten Sie es bei 1 für ein Standard-Local-Setup.

Newcamd- und Camd35-Protokollunterstützung aktivieren

CCcam kann auch Newcamd (N:-Zeilen) und Camd35-Protokolle für Kompatibilität mit Clients sprechen, die das native CCcam-Protokoll nicht unterstützen:

# Newcamd-Port
NEWCAMD PORT = 15050
# Camd35-Port
CAMD35 PORT = 15001

Dies sind separate Ports. Öffnen Sie diese in Ihrer Firewall auf die gleiche Weise wie Port 12000. Nicht alle Clients benötigen diese — natives CCcam-Protokoll auf Port 12000 ist für die meisten modernen Receiver ausreichend.

Firewall, Netzwerk und Portkonfiguration

CCcam-Standardport 12000 mit ufw öffnen

CCcam kommuniziert über TCP, nicht UDP. Öffnen Sie es mit:

sudo ufw allow 12000/tcp

Falls Sie Newcamd- oder Camd35-Ports hinzugefügt haben:

sudo ufw allow 15050/tcp
sudo ufw allow 15001/tcp

Überprüfen Sie Ihre Regeln mit sudo ufw status numbered.

Nicht-Standardports verwenden, um die Gefährdung zu reduzieren

Das Ausführen auf Port 12000 ist für ein privates lokales Setup in Ordnung, aber wenn der Server mit dem Internet verbunden ist, treffen automatisierte Scanner diesen Port regelmäßig. Verschieben Sie CCcam auf etwas wie Port 29100 oder 38000 — aktualisieren Sie sowohl PORT in CCcam.cfg als auch die ufw-Regel. Es ist keine echte Sicherheit, aber es eliminiert den Lärm.

An eine bestimmte Netzwerkschnittstelle mit SERVERIP binden

SERVERIP = 0.0.0.0 bindet an alle Schnittstellen. Wenn Ihr Server mehrere Netzwerkschnittstellen hat (z. B. eine LAN-Schnittstelle bei 192.168.1.10 und eine WAN-Schnittstelle), können Sie CCcam auf nur eine Abhörung auf der LAN-Seite beschränken:

SERVERIP = 192.168.1.10

Dies ist besonders nützlich, wenn Sie ein statisches NAT-Setup mit mehreren WAN-IPs haben und nicht möchten, dass CCcam versehentlich

ly binding to the wrong interface. For most home setups, 0.0.0.0 is fine.

NAT und Portweiterleitung für Remote-Clients

Wenn Clients von außerhalb Ihres Netzwerks verbunden sind, leiten Sie TCP 12000 auf Ihrem Router an die LAN-IP des Ubuntu-Servers weiter. Der Vorgang variiert je nach Router — Sie benötigen die statische LAN-IP des Servers (legen Sie sie mit einer DHCP-Reservierung fest oder konfigurieren Sie sie statisch). Das Freigeben von Port 12000 für das öffentliche Internet ist ein echtes Risiko — beschränken Sie den Zugriff nach IP mit ufw, wenn möglich:

sudo ufw allow from 203.0.113.45 to any port 12000 proto tcp

Konnektivität mit netcat und telnet testen

Vom Server selbst:

nc -zv localhost 12000

Von einem Remote-Computer:

nc -zv 192.168.1.10 12000

Sie können auch telnet 192.168.1.10 12000 verwenden — es wird keine CCcam-Sitzung aufbauen, aber es wird Ihnen mitteilen, ob der Port erreichbar ist. Wenn nc von localhost fehlschlägt, aber CCcam läuft, überprüfen Sie ss -tnlp | grep 12000, um zu sehen, an welche Adresse CCcam tatsächlich gebunden ist.

Fehlerbehebung bei häufigen CCcam-Installationsproblemen unter Ubuntu

Die meisten Probleme fallen in eine kleine Anzahl von Kategorien. Hier erfahren Sie, wie Sie jede einzelne systematisch diagnostizieren. Eine ordnungsgemäße cccam server install ubuntu Prozedur sollte immer das Wissen über das Lesen der Protokolle beinhalten.

CCcam startet nicht: systemd-Protokolle mit journalctl überprüfen

Erster Anlaufpunkt bei Problemen:

journalctl -u cccam -f

Für Verlaufsprotokolle seit dem letzten Start:

journalctl -u cccam -b

Verfolgen Sie auch das CCcam-Protokoll direkt:

tail -f /var/log/cccam.log

Wenn CCcam sofort mit keiner nützlichen Ausgabe in seinem eigenen Protokoll beendet wird, erfasst journalctl den Exit-Code und stderr. Ein Rückgabecode von 127 bedeutet normalerweise, dass die Binärdatei oder eine verlinkte Bibliothek nicht gefunden wurde.

Karte nicht gefunden: pcscd läuft nicht oder falscher Gerätepfad

Das Protokoll zeigt etwas wie:

[ERROR] can't open /dev/pcsc
[INFO] no card found on device /dev/ttyUSB0

Beheben Sie das erste Problem:

sudo systemctl restart pcscd
sudo systemctl restart cccam

Beheben Sie das zweite, indem Sie Ihren Gerätepfad mit pcsc_scan überprüfen und die DEVICE-Zeile in CCcam.cfg aktualisieren. Wenn Sie AppArmor aktiviert haben, blockiert es möglicherweise den Zugriff auf /dev/pcsc. Überprüfen Sie sudo aa-status und suchen Sie nach CCcam in der Durchsetzungsliste. Sie müssen entweder eine Profilausnahme erstellen oder es vorübergehend in den Beschwerde-Modus versetzen, um Fehler zu diagnostizieren.

Clients können sich nicht verbinden: Port blockiert oder falsche Anmeldedaten

Wenn sich ein Client verbindet und sofort trennt, überprüfen Sie das CCcam-Protokoll auf:

[WARN] client disconnected
[ERROR] invalid username or password

Die F: Zeile in CCcam.cfg muss genau übereinstimmen — Benutzername und Passwort sind Groß- und Kleinschreibung beachtet. CCcam erfordert einen vollständigen Neustart, um Konfigurationsänderungen aufzugreifen

ges. Kein SIGHUP, kein Reload-Signal — nur ein vollständiger sudo systemctl restart cccam. Das überrascht ständig Leute.

CCcam startet, aber keine ECM: CAID und Provider-ID in Logs prüfen

Wenn CCcam läuft und die Karte erkannt wird, aber Clients keine ECM-Antworten erhalten, suchen Sie nach der CAID, die Ihre Karte im Log ankündigt. Ein Log-Eintrag wie:

[INFO] card found: CAID 0x0500, provider 0x040810

...sagt Ihnen, was der Server sieht. Wenn der Client eine andere CAID anfordert, liegt ein Mismatch vor. Überprüfen Sie auch, dass RESHARE korrekt eingestellt ist — wenn es 0 ist, erhalten Clients, die über C: Zeilen verbunden sind, keine Karten von Ihrem lokalen Reader.

Segfault oder sofortiger Absturz: 32-Bit-Bibliotheken-Probleme

Segfault beim Start bedeutet fast immer fehlende 32-Bit-Libs. Führen Sie aus:

sudo apt install libc6:i386 libstdc++6:i386
ldd /usr/local/bin/CCcam

Jedes not found in der ldd-Ausgabe ist Ihr Übeltäter. Installieren Sie die i386-Version dieser Bibliothek.

Hohe CPU-Auslastung: Log-Level und ECM-Cache-Tuning

Wenn CCcam die CPU belastet, ist das Erste, das Sie überprüfen sollten, das LOG LEVEL. Stufe 3 (Debug) erzeugt enorme Log-I/O. Senken Sie es auf 1 in CCcam.cfg und starten Sie neu. Überprüfen Sie auch, ob Log-Rotation eingerichtet ist — eine 4-GB-CCcam-Log-Datei verursacht merkliche Verlangsamung allein durch die Schreib-Overhead.

CCcam.cfg-Änderungen werden nicht angewendet: Restart vs. Reload-Verhalten

CCcam unterstützt keine Konfigurationsneuladen zur Laufzeit. Kein Signal, kein Befehl — Sie müssen einen vollständigen Neustart durchführen:

sudo systemctl restart cccam

Jedes Mal, wenn Sie CCcam.cfg bearbeiten, starten Sie den Dienst neu. Dies zu vergessen ist ein klassischer Zeitverschweinder beim Debuggen von Konfigurationsänderungen, die anscheinend keine Auswirkung haben.

Sicherheitshärtung für einen CCcam-Server auf Ubuntu

CCcam als Root auszuführen ist eine wirklich schlechte Idee. Wenn es ein Exploit in der Binärdatei gibt — und bei einer Closed-Source-Binärdatei aus einer unbekannten Quelle können Sie das nicht ausschließen — bedeutet Root-Zugriff einen vollständigen Systemkompromiss. Härten Sie dieses Setup richtig ab.

CCcam als Nicht-Root-Dedicated-Benutzer ausführen

Erstellen Sie einen Systembenutzer ohne Login-Shell:

sudo useradd --system --no-create-home --shell /usr/sbin/nologin cccam

Geben Sie ihm Zugriff auf die pcsc-Gerätegruppe:

sudo usermod -aG plugdev cccam

Legen Sie die richtige Eigentümerschaft für die Konfigurations- und Log-Dateien fest:

sudo chown cccam:cccam /etc/CCcam.cfg
sudo chmod 640 /etc/CCcam.cfg
sudo touch /var/log/cccam.log
sudo chown cccam:cccam /var/log/cccam.log

Die earlier gezeigte systemd-Unit-Datei verwendet bereits User=cccam — das bindet alles zusammen.

Log-Dateiberechtigungen einschränken

Lassen Sie /var/log/cccam.log nicht von jedem lesbar. Modus 640 (Eigentümer lesen/schreiben, Gruppe lesen, andere nichts) ist angemessen. Richten Sie Log-Rotation ein, um zu verhindern, dass die Datei unbegrenzt wächst:

# /etc/logrotate.d/cccam
/var/log/cccam.log {
```html wöchentlich rotate 4 komprimieren missingok notifempty create 640 cccam cccam }

Verwendung von fail2ban zur Blockierung von Brute-Force-Angriffen auf Port 12000

CCcam protokolliert fehlgeschlagene Authentifizierungsversuche. Sie können einen grundlegenden fail2ban-Filter um diese herum erstellen. Erstellen Sie /etc/fail2ban/filter.d/cccam.conf:

[Definition]
failregex = \[WARN\] client .* invalid username or password
ignoreregex =

Fügen Sie dann ein Jail in /etc/fail2ban/jail.local hinzu:

[cccam]
enabled = true
port = 12000
filter = cccam
logpath = /var/log/cccam.log
maxretry = 5
bantime = 3600

Das genaue Protokollformat hängt von Ihrer CCcam-Version ab — überprüfen Sie Ihre tatsächliche Protokollausgabe und passen Sie den regulären Ausdruck entsprechend an. Dies ist ein Anfangspunkt, keine Kopieren-und-Einfügen-und-Vergessen-Lösung.

VPN-Tunneloptionen für Remote-Client-Verbindungen

Der sicherste Ansatz für Remote-Clients besteht darin, Port 12000 überhaupt nicht freizulegen. Führen Sie WireGuard auf dem Server aus, lassen Sie Clients sich mit dem VPN verbinden, und lassen Sie CCcam nur auf der VPN-Schnittstelle abhören (z. B. SERVERIP = 10.0.0.1). Port 12000 berührt niemals das öffentliche Internet.

Das WireGuard-Setup liegt außerhalb des Umfangs dieses Artikels, aber ein grundlegender WireGuard-Server unter Ubuntu ist gut dokumentiert und nimmt etwa 15 Minuten Zeit zur Konfiguration in Anspruch. OpenVPN funktioniert auch, aber der Overhead ist höher.

Überwachung aktiver Verbindungen mit netstat und ss

Sehen Sie, wer aktuell mit Ihrem CCcam-Server verbunden ist:

ss -tnp | grep 12000

Oder nur mit etablierten Verbindungen:

ss -tn state established | grep 12000

Die Ausgabe zeigt Remote-IPs und Ports an. Wenn Sie Verbindungen von IPs sehen, die Sie nicht erkennen, überprüfen Sie Ihre F: Zeile-Anmeldeinformationen und erwägen Sie die Einschränkung des Zugriffs nach IP in ufw. Zeitsynchronisierung ist hier auch wichtig — wenn die Systemuhr eines Clients mehr als ein paar Sekunden von der des Servers abweicht, können Verbindungsabbrüche intermittierend auftreten. Stellen Sie sicher, dass sowohl Server als auch Clients NTP ausführen (sudo systemctl status systemd-timesyncd).

Welche Ubuntu-Version ist am besten für die Ausführung eines CCcam-Servers geeignet?

Ubuntu 20.04 LTS ist derzeit die zuverlässigste Wahl. Die 32-Bit-Bibliotheksunterstützung ist unkompliziert, libssl1.1 ist in den Repositorys verfügbar, und das End-of-Life wird nicht vor April 2025 erreicht. Ubuntu 22.04 funktioniert, erfordert aber mehr manuelle Aufwand für die Multiarch-Bibliothekskonfiguration, insbesondere um libssl in der richtigen Version für die 32-Bit-CCcam-Binärdatei zu erhalten. Vermeiden Sie jede Ubuntu-Version, die bereits am Ende ihrer Lebensdauer steht, für alles, das Sie langfristig ausführen möchten.

Warum sagt CCcam „Datei oder Verzeichnis nicht gefunden", obwohl die Binärdatei existiert?

Dies ist das 32-Bit-Bibliotheksproblem. CCcam ist eine 32-Bit-Binärdatei und unter 64-Bit-Ubuntu ist der ELF-Interpreter für 32-Bit-Dateien ```n't installed by default. Run sudo dpkg --add-architecture i386, then sudo apt install libc6:i386 libstdc++6:i386 libssl1.1:i386. After that, try running CCcam again. If you still see the error, run ldd /usr/local/bin/CCcam and install whatever comes back as "not found."

What is the difference between C: lines and F: lines in CCcam.cfg?

Sie gehen in entgegengesetzte Richtungen. F: lines definieren Benutzer, die sich mit Ihrem CCcam-Server VERBINDEN — Sie erstellen Konten für Ihre Clients. C: lines definieren Upstream-Server, mit denen sich Ihr CCcam VERBINDET — Sie teilen CCcam mit, wo es Cards finden kann, die es lokal nicht hat. F: line syntax is F: username password reshare ignore_reshare stealth. C: line syntax is C: hostname port username password stealth. Diese vertauscht zu verwenden ist einer der häufigsten Konfigurationsfehler.

Wie überprüfe ich, ob meine Smartcard vom CCcam-Server erkannt wird?

Beginnen Sie auf der Betriebssystemebene: systemctl status pcscd, um zu bestätigen, dass der pcsc-Daemon läuft, dann pcsc_scan, um zu sehen, ob der Leser und die Karte angezeigt werden. Wenn pcsc_scan nichts sieht, wird es CCcam auch nicht. Wenn Sie bestätigt haben, dass die Karte auf Betriebssystemebene sichtbar ist, überprüfen Sie /var/log/cccam.log nach dem Start von CCcam — suchen Sie nach Zeilen, die "card found" mit einem CAID-Wert enthalten. Kein CAID im Protokoll bedeutet, dass CCcam die Karte nicht sieht, unabhängig davon, was pcsc_scan zeigt, was normalerweise auf einen falschen DEVICE-Pfad in CCcam.cfg hinweist.

Können CCcam und OScam gleichzeitig auf demselben Ubuntu-Server ausgeführt werden?

Ja, und es ist eigentlich ein solides Setup. Führen Sie OScam auf Port 11000 aus, um das physische Kartenlesegerät direkt zu verwalten, fügen Sie dann eine C: line in CCcam.cfg hinzu, die auf localhost Port 11000 verweist. CCcam verwaltet Client-Verbindungen, während OScam die Hardware verwaltet. Die Schlüsselregel: Sie können nicht beide das gleiche /dev/pcsc-Gerät direkt beanspruchen. OScam besitzt die Karte, CCcam spricht mit OScam. Stellen Sie sicher, dass sich die Ports nicht überlappen — CCcam auf 12000, OScam-Reader-Schnittstelle auf einem anderen Port.

Wie viele Client-Verbindungen kann ein CCcam-Server verwalten?

Es gibt keine feste Zahl — es hängt von Ihrer Hardware, dem Netzwerk und der Konfiguration ab. Ein moderner Desktop oder VPS mit Ubuntu kann ohne Probleme Dutzende von gleichzeitigen Clients verwalten. Was die Leistung beeinträchtigt, sind hohe Hop-Zählungen (halten Sie CLIENTMAXHOPS bei 1), ausführliche Protokollierung (halten Sie LOG LEVEL in der Produktion bei 1) und hohe ECM-Anforderungsraten von vielen Clients, die gleichzeitig dekodieren. Überwachen Sie CPU-Auslastung und Log-E/A — das sind Ihre echten Engpässe, nicht irgendein theoretisches Verbindungslimit.

Funktioniert CCcam auf Ubuntu, das in einer VM oder einem Container läuft?

In einer VM (VirtualBox, KVM, VMware) ja — aber Sie müssen den USB-Smartcard-Leser an die VM durchreichen, nicht einfach vom Host aus freigeben. VirtualBox verfügt über USB-Passthrough in den Geräteeinstellungen; KVM verwendet USB-Host-Device-Passthrough in der VM-XML-Konfiguration. Docker-Container sind für den physischen Kartenzugriff problematisch — USB-Passthrough in Docker erfordert den privilegierten Modus und Device-Mapping, was schnell kompliziert wird. Wenn Sie eine physische Karte benötigen, verwenden Sie eine ordnungsgemäße VM oder Bare Metal. Wenn Sie ein reines Relay betreiben (keine lokale Karte, nur Verbindung upstream über C:-Zeilen), funktionieren Container einwandfrei.

```