Кардшаринг сервер: настройка CCcam и OScam с нуля

Главная Статьи Кардшаринг сервер: настройка CCcam и OScam с нуля

Дата публикации

23.06.2026

Кардшаринг сервер: настройка CCcam и OScam с нуля

Если ты уже разобрался с тем, что такое кардшаринг, и хочешь поднять собственный сервер — эта статья для тебя. Здесь не будет воды про "удобный интерфейс" и "лёгкую настройку". Только реальные конфиги, пути к файлам, команды и объяснение того, что именно происходит между ресивером и смарт-картой. Настройка кардшаринг сервера требует понимания протоколов, и мы разберём каждый из них.

Что такое кардшаринг сервер и как он работает

Схема простая, но дьявол в деталях. Ресивер принимает зашифрованный сигнал DVB и встречает ECM-пакеты (Entitlement Control Message) — это зашифрованные запросы на получение ключа расшифровки. Он не может раскодировать их самостоятельно без авторизованной карты. Именно здесь в игру вступает кардшаринг сервер.

Принцип обмена контрольными словами (ECM/CW)

ECM идёт от ресивера на сервер, сервер передаёт его смарт-карте через PC/SC ридер или внутренний ридер ресивера, карта расшифровывает и возвращает CW (Control Word) — 8-байтный ключ. Ресивер получает этот ключ и раскодирует DVB-CSA поток.

Ключи меняются каждые ~10 секунд (crypto period). Именно поэтому задержка ответа критична: если сервер отвечает дольше, чем длится crypto period — картинка замерзает. Всё, что выше 800–1000 мс ECM time, уже проблема.

Роль смарт-карты и ридера в схеме

Смарт-карта — это физический источник авторизации. Она хранит subscription keys и умеет расшифровывать ECM через встроенный процессор. Ридер (PC/SC через USB, или внутренний ридер CAM-модуля) просто обеспечивает физическое соединение карты с программной частью сервера.

OScam поддерживает десятки типов ридеров: от простых USB-ридеров (protocol = mouse) до SmartReader и внутренних ридеров приставок (protocol = internal). CCcam работает с картой через собственный драйвер и менее гибок в этом плане.

Сервер vs клиент: кто кому отдаёт ключи

Сервер держит физическую карту и отвечает на ECM-запросы от клиентов. Клиент — это ресивер без карты, который через один из протоколов соединяется с сервером и получает CW. В CCcam-терминологии: F-строка — это локальный пользователь на сервере, C-строка — это подключение клиента к серверу.

Протоколы newcamd, CCcam, CS378x и их отличия

newcamd — один из самых распространённых протоколов. Порт обычно в диапазоне 15000–15999, шифрование DES (14-байтный ключ). Поддерживается OScam нативно через секцию [newcamd]. Плюс — широкая совместимость; минус — DES уже не является надёжным шифрованием по современным меркам.

CCcam использует порт 12000 по умолчанию, протокол проприетарный и закрытый. OScam умеет его эмулировать, но "родная" поддержка только в самом CCcam. Протокол поддерживает концепцию hops — количество перепрыгиваний карты между серверами.

CS378x (camd35 over TCP) и cs357x (camd35 over UDP) — порт задаётся в конфиге, чаще всего 35000 или произвольный. Менее распространён, но поддерживается OScam через секцию [cs378x]. UDP-вариант даёт чуть меньшую задержку, но ненадёжен на нестабильных каналах.

Установка и базовая настройка OScam

OScam — это выбор тех, кто хочет полный контроль. Открытый исходник, активное сообщество, логирование на уровне каждого ECM-запроса. Настроить его сложнее, чем CCcam, но и возможности несопоставимы.

Компиляция из исходников и готовые бинарники

Исходники берутся с официального SVN-репозитория или GitHub-зеркал. Компиляция стандартная:

./config.sh --enable-reader-smartreader --enable-protocol-newcamd
make

Для большинства задач удобнее взять готовый бинарник под свою архитектуру (arm, mipsel, x86_64). Главное — убедиться, что бинарник собран с нужными модулями: если в нём нет поддержки newcamd или нужного ридера, никакие конфиги не помогут. Проверить можно через oscam --build-info.

Структура каталога /etc/tuxbox/config или /var/keys

По умолчанию OScam ищет конфиги в /usr/local/etc/oscam/ или /etc/tuxbox/config/oscam/ в зависимости от сборки. Всегда можно явно указать путь:

oscam -c /etc/oscam/

В этой директории должны лежать: oscam.conf, oscam.server, oscam.user. Дополнительно — oscam.services и oscam.srvid для фильтрации каналов.

Файл oscam.conf: секции [global], [newcamd], [cs378x]

Минимальный рабочий oscam.conf:

[global]
logfile = /var/log/oscam/oscam.log
maxlogsize = 1000
preferlocalcards = 1

[webif]
httpport = 8888
httpuser = admin
httppwd = CHANGE_ME_NOW
httpallowed = 127.0.0.1,192.168.1.0/24

[newcamd]
port = 15000@1830:000000

[cs378x]
port = 35000

В секции [newcamd] после знака @ идёт CAID и provid. Для Viasat/Viaccess это будет выглядеть иначе, чем для Nagravision. Порт 15000 — для одного CAID; если нужно несколько, добавляешь строки через запятую или несколько port-директив.

Файл oscam.server: подключение ридера карты

Это самый критичный файл. Пример для физической карты через USB PC/SC ридер:

[reader]
label = local_card
protocol = mouse
device = /dev/ttyUSB0
detect = cd
mhz = 357
cardmhz = 357
caid = 1830
group = 1
emmcache = 1,3,2

Параметр mhz — тактовая частота интерфейса ридера (357 = 3.57 МГц стандарт). cardmhz — частота самой карты. Если карта не определяется, первое что пробуем — выставить cardmhz = 600 или cardmhz = 368. Многие современные карты требуют нестандартную частоту, и при дефолтных 357 просто уходят в mute.

Для внутреннего ридера (например, в Dreambox или Vu+):

protocol = internal
device = /dev/sci0

Файл oscam.user: создание учётных записей клиентов

[account]
user = client1
pwd = secretpass
group = 1
au = 1
caid = 1830
ident = 1830:000000
uniq = 0
monlevel = 0

Параметр group должен совпадать с group в oscam.server — именно так OScam связывает клиента с ридером. Это самая частая причина проблемы "клиент подключён, но ключей нет". au = 1 включает автообновление EMM для этого пользователя.

Запуск, веб-интерфейс на порту 8888 и логи

Запуск в фоне:

oscam -b -c /etc/oscam/

Для systemd создаём /etc/systemd/system/oscam.service с ExecStart и Restart=always. Веб-интерфейс доступен по адресу http://192.168.1.x:8888 — там видны статусы ридеров, онлайн-клиенты и ECM-логи в реальном времени. Очень полезен при диагностике.

Права на конфиги с паролями — обязательно chmod 600:

chmod 600 /etc/oscam/oscam.user
chown oscam:oscam /etc/oscam/oscam.user

Установка и настройка CCcam сервера

CCcam проще в базовой настройке. Один файл конфига, понятный синтаксис. Но за простотой скрывается меньшая гибкость — особенно в части управления ридерами и логирования.

Размещение бинарника и CCcam.cfg

Бинарник обычно кладётся в /usr/bin/CCcam или /usr/local/bin/CCcam. Конфиг по умолчанию ищется в /var/etc/CCcam.cfg. На Dreambox и совместимых образах это стандартный путь. На обычном Linux можно указать конфиг через параметр запуска.

Строки F: для локальных пользователей

F-строка создаёт аккаунт клиента на сервере:

F: username password 2 0 { }

Синтаксис: F: [логин] [пароль] [uphops] [downhops] { [ограничения] }. uphops — сколько хопов карта может подняться "вверх" по цепочке; downhops — сколько вниз. Для прямого клиента без ретрансляции обычно ставят 1 0 или 2 0.

Строки C: для подключения к удалённым серверам

C-строка — это клиентская часть, подключение к вышестоящему серверу:

C: hostname.example.com 12000 username password no { 01 02 }

Поле после пароля — reconnect (yes/no). В фигурных скобках — список CAID, которые разрешено запрашивать. Оставить пустыми { } означает "запрашивать всё".

Параметры расшаривания: hops и uphops

Hops — ключевая концепция CCcam. Каждый раз когда карта передаётся через сервер, счётчик хопов увеличивается. Чем больше хопов, тем выше задержка. Большинство серверов ограничивают до 1–2 хопов, чтобы не деградировало качество.

Основные параметры в CCcam.cfg:

SERVER LISTEN PORT : 12000
ALLOW TELNET : no
ALLOW WEBINFO : no
WEBINFO LISTEN PORT : 16001
WEBINFO USERNAME : admin
WEBINFO PASSWORD : CHANGE_THIS

Telnet открывать наружу — плохая идея. Веб-интерфейс тоже, если не понимаешь рисков. По умолчанию лучше оставить оба выключенными и управлять сервером через SSH.

Файлы CCcam.providers и CCcam.channelinfo

CCcam.providers — маппинг CAID/provid к человекочитаемым именам провайдеров. CCcam.channelinfo — маппинг SID к названиям каналов. Оба файла опциональны, влияют только на отображение в веб-интерфейсе и телнет-выводе. На работу самого шаринга не влияют.

Сетевая настройка: порты, проброс и безопасность

Сетевая часть — это то, где большинство самодельных кардшаринг серверов ломается или становится уязвимым. Разберём по порядку.

Какие порты открывать (12000, 15000, 8888)

Минимальный набор для открытия наружу:

  • TCP 12000 — CCcam протокол (входящие подключения клиентов)
  • TCP 15000–15999 — newcamd (один порт на CAID, обычно 15000)
  • TCP 35000 — cs378x/camd35 over TCP (если используется)

Порт 8888 (веб-интерфейс OScam) наружу открывать не нужно никогда. Только локальная сеть или VPN. Это не параноя — это базовая гигиена: через открытый webif с дефолтным паролем можно прочитать все учётки клиентов за 30 секунд.

Проброс портов (port forwarding) на роутере

Стандартный сценарий: сервер с OScam стоит за домашним роутером. В интерфейсе роутера создаётся правило: внешний TCP-порт 15000 → внутренний IP сервера, порт 15000. То же для 12000.

Важно убедиться, что сервер имеет статический IP в локальной сети (либо через DHCP-резервирование по MAC, либо прямо прописан в настройках сетевого интерфейса). Иначе после перезагрузки IP может поменяться и проброс перестанет работать.

Динамический IP и DDNS

Если внешний IP динамический, используй DDNS. Бесплатные сервисы вроде DuckDNS или No-IP дают домен типа myserver.duckdns.org, который автоматически обновляется при смене IP через клиент-демон на сервере.

Но есть принципиальная разница между динамическим и серым IP. Динамический — это когда провайдер выдаёт реальный публичный IP, но он меняется. Серый IP (за NAT провайдера, типичен для мобильных операторов и некоторых домашних тарифов) — это другое. При сером IP проброс портов на роутере бессмысленен: снаружи твой сервер вообще не виден. Единственные варианты: VPS как точка входа с reverse-туннелем (через SSH или WireGuard), или AutoHop через посредника.

Ограничение доступа по IP и фаервол

Если знаешь IP своих клиентов, ограничь доступ на уровне iptables:

# Разрешить только конкретный IP на порт newcamd
iptables -A INPUT -p tcp --dport 15000 -s 1.2.3.4 -j ACCEPT
iptables -A INPUT -p tcp --dport 15000 -j DROP

# То же для CCcam
iptables -A INPUT -p tcp --dport 12000 -s 1.2.3.4 -j ACCEPT
iptables -A INPUT -p tcp --dport 12000 -j DROP

Для ufw синтаксис проще: ufw allow from 1.2.3.4 to any port 15000. В OScam дополнительно можно указать allowedip в oscam.user — это второй уровень защиты.

Шифрование трафика и защита от перехвата

newcamd использует DES — это слабое шифрование по меркам 2026 года. CCcam протокол также не отличается криптостойкостью. Если хочешь реальную защиту, оберни трафик в WireGuard или OpenVPN-туннель между сервером и клиентом. Тогда можно использовать внутренние IP туннеля и вообще не открывать шаринг-порты наружу.

Диагностика и устранение типичных ошибок

Большинство проблем на этапе первичной настройки кардшаринг сервера сводятся к нескольким паттернам. Разберём каждый.

Карта не определяется ридером (no card / mute)

В веб-интерфейсе OScam ридер показывает "no card" или "card mute". Первым делом проверить физику: контакты карты, питание USB-ридера (некоторые хабы не дают достаточно тока), попробовать другой порт.

Если физика в порядке — проблема в частоте. Попробовать в oscam.server: cardmhz = 600, потом cardmhz = 368. Некоторые карты Nagravision 3 и Irdeto требуют cardmhz = 600. При дефолтных 357 они просто не отвечают. Также проверить protocol — mouse, smartreader, и pcsc ведут себя по-разному с одним и тем же ридером.

Клиент подключается, но нет ключей (no CW / decode failed)

Клиент в логах появляется, соединение устанавливается, но картинка не раскодируется. 90% случаев — несовпадение групп. Проверить: группа в oscam.user и группа в oscam.server должны совпадать.

Второй вариант — несовпадение CAID или ident. Если в oscam.user прописан caid = 1830, а карта отдаёт ключи для caid = 1702 — OScam молча игнорирует запрос. Также бывает рассинхрон версий протокола: клиент пытается подключиться по newcamd, а в oscam.conf секция [newcamd] вообще не настроена или порт другой.

Высокий ECM time и фризы изображения

ECM time выше 800 мс — уже на грани. Выше 1000 мс — будут фризы при смене crypto period. Причины:

  • Сетевая задержка: ping от клиента до сервера выше 100–150 мс
  • Перегруз карты: слишком много одновременных ECM-запросов. Большинство карт стабильно держат 5–8 одновременных запросов, дальше начинаются тормоза
  • Низкая частота ридера: mhz = 357 при возможном mhz = 600
  • На OScam попробовать: group = 1 и cacheex = 0 для исключения кеширования как источника задержки

Ошибки группы и AU (autoupdate)

AU (автообновление EMM) работает только если: в oscam.server включён emmcache, в oscam.user стоит au = 1, и группы совпадают. Если карта не обновляется и подписка "протухает" — чаще всего au не включён или группы не совпадают. В логах при этом будет что-то вроде: AU disabled for user client1.

При наличии нескольких ридеров с одинаковым CAID настраивается fallback: caid и group одинаковые, но lb_weight (load balancing weight) разные. OScam автоматически переключится на резервный ридер при недоступности основного.

Как читать логи OScam и понимать статус ридера

В логах OScam каждый ECM-запрос выглядит примерно так:

2026/03/15 14:23:01 1830&0000: client1 (1.2.3.4) ECM OK (50 ms)

ECM OK — ключ выдан. ECM NOK — карта не смогла расшифровать (неверный CAID, карта не авторизована на этот канал). Для grep по проблемам:

grep "ECM NOK" /var/log/oscam/oscam.log | tail -50
grep "no card" /var/log/oscam/oscam.log | tail -20
grep "client1" /var/log/oscam/oscam.log | grep -i "err\|fail\|nok"

В веб-интерфейсе ридеры отображаются зелёным (работает, карта на месте), жёлтым (ридер активен, карта не определена) или красным (ридер недоступен). Статус "idle" у ридера при активных клиентах — тоже повод проверить группы.

Как выбрать провайдера сервера: критерии без имён

Если поднимать собственную карту нет возможности, используют внешний кардшаринг сервер — подключаются через C-строку в CCcam или reader с protocol = cccam/newcamd в OScam. Разберём, на что смотреть при выборе, не называя конкретных провайдеров.

Стабильность аптайма и пинг до сервера

Пинг — первый показатель. Замерить просто: ping hostname до IP сервера. Для нормальной работы нужно стабильно до 80–100 мс. Выше 150 мс — будут периодические фризы при плотном телесмотрении.

Аптайм проверяется только на практике в тестовый период. Смотреть не на "99.9% гарантий" в описании, а на реальное поведение в прайм-тайм (вечером, в выходные) и при трансляции спортивных событий — именно тогда нагрузка максимальная.

Поддерживаемые CAID и локальные карты

У каждого провайдера свой набор карт и CAID. Убедиться заранее, что нужные пакеты (по конкретному CAID и provid) присутствуют. Это можно проверить через тестовый доступ — запустить OScam в тестовом режиме и посмотреть в веб-интерфейсе, какие CAID/провайдеры отображаются в ридере как доступные.

Ограничения по hops и количеству клиентов

Обратить внимание на максимальное количество одновременных подключений (concurrent connections). Если у тебя дома 3 ресивера и все смотрят разные каналы одновременно — нужно минимум 3 слота. Некоторые тарифы ограничивают 1–2 соединениями.

Количество хопов тоже важно: если сервер уже на 2 хопах от карты, а провайдер добавляет ещё — суммарный ECM time растёт. Хорошая практика: не более 2 хопов от карты до твоего ресивера.

На что обращать внимание в тестовый период

Тестовый доступ (обычно 24–48 часов) — не для того, чтобы "просто попробовать". Это время для замеров. Записывать ECM time в разное время суток, проверять переключение каналов (cold start), смотреть на количество ECM NOK в логах. Если в тестовый период фризы уже есть — после оплаты лучше не станет.

Часто задаваемые вопросы

Чем OScam отличается от CCcam и что выбрать для сервера?

OScam — открытый проект с исходным кодом, поддерживает десятки протоколов (newcamd, cs378x, CCcam-эмуляция, gbox и другие), даёт детальное логирование каждого ECM-запроса и тонкую настройку ридеров через oscam.server. CCcam — проприетарный бинарник, проще в начальной конфигурации, но менее гибкий. Для сервера с локальной физической картой лучше выбрать OScam: стабильнее работает с нестандартными ридерами, лучше диагностируется и не зависит от закрытого разработчика.

Какой порт нужно открыть для кардшаринг сервера?

Зависит от протокола. CCcam: TCP 12000 (стандартный, можно изменить в CCcam.cfg). newcamd: TCP 15000 и выше — обычно один порт на CAID, задаётся в oscam.conf в секции [newcamd]. camd35/cs378x: задаётся в конфиге, часто 35000. Порт 8888 (веб-интерфейс OScam) открывать наружу не нужно — только для локальной сети.

Почему клиент подключается, но изображение не раскодируется?

Самая частая причина — несовпадение параметра group между oscam.user (аккаунт клиента) и oscam.server (ридер карты). Проверить: значение group у клиента должно присутствовать в списке group у ридера. Вторая причина — несовпадение CAID или ident: карта не авторизована на запрошенный канал. Смотреть логи на наличие ECM NOK и статус ридера в веб-интерфейсе.

Можно ли поднять сервер при сером или динамическом IP?

При динамическом публичном IP — да, через DDNS (DuckDNS, No-IP). Клиенты подключаются по домену, который автоматически обновляется при смене адреса. При сером IP (провайдерский NAT, CG-NAT) проброс портов на домашнем роутере не поможет: твой IP снаружи не виден в принципе. Решение: арендовать VPS с публичным IP и настроить reverse SSH-туннель или WireGuard — весь трафик идёт через VPS как через точку входа.

Что означает высокий ECM time и как его снизить?

ECM time — это время от отправки запроса ключа до получения ответа. Норма — до 300–500 мс, приемлемо до 800 мс, выше 1000 мс — фризы гарантированы. Основные причины: большой пинг до сервера (географически далёкий сервер), перегруз карты при большом количестве одновременных клиентов, низкая частота ридера (попробовать увеличить mhz/cardmhz в oscam.server). Снизить можно выбором географически близкого сервера и ограничением числа одновременных подключений.

Нужно ли защищать веб-интерфейс OScam?

Обязательно. Первое — сменить дефолтные логин/пароль (admin/admin или пустые поля) на что-то нетривиальное. Второе — в секции [webif] в oscam.conf прописать httpallowed с диапазоном только локальной сети: httpallowed = 127.0.0.1,192.168.1.0/24. Третье — никогда не пробрасывать порт 8888 в интернет. Через открытый веб-интерфейс видны все учётки клиентов, логи с IP-адресами и настройки ридеров — это полная компрометация сервера.

О статье

  • Практические советы и инструкции
  • Материалы по спутниковому ТВ
  • Поддержка и помощь 24/7