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

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

Предполагаю, что у вас уже есть Enigma2-ресивер или DreamBox, VPS или домашняя машина на Debian/Ubuntu, и вы понимаете базовые команды Linux. Остальное разберём.

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

Большинство статей дают готовые конфиги, не объясняя что происходит под капотом. Это ошибка — без понимания архитектуры вы не сможете диагностировать проблемы.

Архитектура: ресивер → клиент softcam → сервер → смарт-карта

Спутниковый поток приходит зашифрованным. Ресивер получает ECM (Entitlement Control Message) — зашифрованный пакет, содержащий ключи для расшифровки текущего фрейма. Softcam на ресивере (oscam-emu, NCam, CCcam-клиент) перехватывает этот ECM и отправляет его по TCP на сервер.

Сервер передаёт ECM на физическую смарт-карту через ридер (Phoenix, SmartReader+, Internal). Карта возвращает DCW (Descrambling Control Word) — 8-байтовый ключ. Сервер отправляет DCW обратно клиенту, ресивер расшифровывает поток.

Норма: ECM time 150–400 мс. При >900 мс начинаются фризы — поток меняет CW раньше, чем ресивер успевает получить новый.

Протоколы обмена: CCcam, newcamd, CS378x, MGCamd

CCcam (порт 12000 по умолчанию) — наиболее распространённый, но проприетарный. Newcamd (порт 15050) — старый протокол с DES-шифрованием, используется для совместимости. CS378x (порт 22222) — более современный, меньше известных fingerprint'ов, хорошая альтернатива CCcam для новых установок. MGCamd работает поверх newcamd.

Что такое ECM, EMM и DCW в потоке DVB

ECM (Entitlement Control Message) — запрос ключа расшифровки, меняется каждые 10–30 секунд. EMM (Entitlement Management Message) — сообщения обновления прав карты, приходят реже, обновляют entitlements. DCW (Descrambling Control Word) — результат работы карты, собственно ключ расшифровки потока.

Если карта не получает EMM-апдейты, со временем теряет права на каналы. Именно поэтому параметр au=1 в конфиге ридера важен для долгосрочной работы.

Роль CAID и provider ID при выборе канала

CAID (Conditional Access ID) определяет систему шифрования: 0500 — Viaccess, 0B00 — Conax, 1801 — Nagravision/Nagra3, 0604 — Irdeto, 0100 — SECA Mediaguard. Provider ID — конкретный оператор внутри этой системы. OScam маршрутизирует ECM на нужный ридер именно по паре CAID:ProviderID.

Выбор софта: CCcam vs OScam vs NCam

Короткий ответ: в 2026 году для нового сервера берите OScam. Аргументы ниже.

CCcam 2.3.2 — закрытый, устаревший, но всё ещё распространён

CCcam последний раз серьёзно обновлялся в 2012–2013. Закрытый исходный код, нет поддержки современных CAID, нет активного сообщества разработчиков. Единственная причина использовать его сейчас — клиенты с очень старыми ресиверами, которые поддерживают только CCcam-протокол и не обновлялись годами.

OScam (oscam-svn) — open source, активно поддерживается

Открытый код, регулярные коммиты в SVN trunk, поддержка Conax, Nagra3, Viaccess 6, Irdeto2, PowerVu. Потребление памяти: ~30–60 МБ RAM на 10 одновременных клиентов. Это реально мало — даже VPS с 512 МБ справится. Конфиги читаются из текстовых файлов, легко версионировать в git.

NCam — форк OScam с расширенной поддержкой современных CAID

NCam активно развивается сообществом и быстрее получает поддержку новых EMM-форматов. Если вам нужны свежие CAID — Nagra 4, CardGuard, обновления Irdeto Cloaked CA — NCam может опережать OScam-trunk на несколько недель. API и конфиги совместимы с OScam.

Когда выбирать что: совместимость, нагрузка, EMM-апдейты

OScam — стандартный выбор для нового кардшаринг сервера с 1–20 клиентами. NCam — если нужны современные CAID и вы готовы чуть активнее следить за обновлениями. CCcam — только если клиенты физически не поддерживают другие протоколы и обновить их невозможно.

Установка и базовая конфигурация OScam на Debian/Ubuntu

Сборка из исходников

Репозиторные пакеты OScam обычно устаревшие. Собирайте из SVN:

apt install build-essential libssl-dev libpcsclite-dev pcscd \
  libusb-1.0-0-dev cmake subversion -y

svn co https://svn.streamboard.tv/oscam/trunk oscam-svn
cd oscam-svn
./config.sh --enable all
make -j$(nproc)

Бинарник появится в Distribution/. Скопируйте его в /usr/local/bin/oscam и сделайте chmod +x. Для быстрой сборки с дефолтными опциями можно использовать ./simplebuild ./s.

Структура конфигов: /usr/local/etc/ или /etc/tuxbox/config/

По умолчанию OScam ищет конфиги в /usr/local/etc/. Можно переопределить через флаг -c /path/to/config при запуске. Структура файлов:

  • oscam.conf — глобальные настройки, WebIF, логирование
  • oscam.server — описание ридеров (физические карты)
  • oscam.user — учётные записи клиентов
  • oscam.dvbapi — для локального декодирования на том же ресивере

oscam.conf — глобальные параметры WebIF и логирования

[global]
nice = -1
logfile = /var/log/oscam/oscam.log
maxlogsize = 512
preferlocalcards = 1
saveinithistory = 1

[webif]
httpport = 8888
httpuser = admin
httppwd = ChangeMe2026
httpallowed = 127.0.0.1,192.168.0.0-192.168.255.255

[cs378x]
port = 22222

[newcamd]
port = 15050@0B00:000000

[cccam]
port = 12000

Смените httppwd на что-то реальное. WebIF доступен по порту 8888 и даёт полную картину: текущие ECM, статус ридеров, активные клиенты.

oscam.server — описание ридеров (физических карт)

Подробнее в следующем разделе. Файл описывает каждый физический ридер и карту в нём.

oscam.user — учётные записи клиентов

Каждый клиент — отдельная секция [account] в этом файле. Создаётся вручную или через WebIF.

oscam.dvbapi — для локального декодирования

Нужен только если OScam запущен на самом ресивере и декодирует локально. При серверной схеме — не нужен.

Настройка ридера и подключение смарт-карты

Типы ридеров: Phoenix, SmartReader+, Omnikey, Internal

Phoenix — самый дешёвый вариант, подключается через COM-порт или USB-to-COM адаптер. SmartReader+ и SmartReader USB — более надёжные, работают через libusb напрямую без pcscd. Omnikey 3121 — PCSC-совместимый, хорошо работает через pcscd. Internal — встроенный ридер в некоторых ресиверах.

Определение устройства: lsusb, dmesg, /dev/ttyUSB*

lsusb                    # посмотреть USB устройства
dmesg | grep -i smart    # kernel сообщения о ридере
ls /dev/ttyUSB*          # serial USB устройства
pcsc_scan                # сканирование PCSC-устройств, покажет ATR карты

По ATR (Answer To Reset) определяется тип карты и провайдер. Если pcsc_scan не видит карту — проверьте systemctl status pcscd.

Секция [reader] в oscam.server: пример для Conax/Viaccess

Пример для Conax через SmartReader+:

[reader]
label        = CONAX_CARD1
protocol     = smartreader
device       = Serial:DB00XXXX
caid         = 0B00
detect       = cd
mhz          = 600
cardmhz      = 368
group        = 1
emmcache     = 1,3,2,0
au           = 1

Пример для Viaccess через Phoenix (ttyUSB0):

[reader]
label        = VIACCESS_CARD
protocol     = phoenix
device       = /dev/ttyUSB0
caid         = 0500
mhz          = 600
cardmhz      = 600
group        = 1
emmcache     = 1,3,2,0
au           = 1

Mhz, cardmhz, deprecated параметры — типичные ошибки

mhz — частота работы ридера, cardmhz — частота карты. Для Viaccess и Conax обычно mhz=600, cardmhz=368 или cardmhz=357 для Irdeto. Если указать неправильные значения, карта будет отвечать медленно или вовсе откажется работать. Параметр deprecated=1 в старых конфигах сейчас вызывает segfault в свежих версиях OScam — уберите его.

Проверка ATR карты через pcsc_scan

Карта с читаемым ATR, но возвращающая card not subscribed — это нормальная ситуация, когда провайдер сменил entitlements. Нужен свежий EMM. Включите au=1 в секции ридера и дайте карте поработать несколько часов — entitlements обновятся автоматически из потока.

Раздача клиентам: оптимальная конфигурация и безопасность

Секция [account] в oscam.user: au, group, caid, ident

[account]
user         = client1
pwd          = StrongPass2026
group        = 1
au           = CONAX_CARD1
caid         = 0B00
ident        = 0B00:000000
numusers     = 2
cccmaxhops   = 1
cccreshare   = 0
expdate      = 2026-12-31

Параметр au указывает, через какой ридер этот клиент получает EMM-апдейты. group должен совпадать с group в секции ридера — иначе получите rejected group в логе.

Лимиты: numusers, sleep, suppresscmd08

numusers=2 означает, что один аккаунт может использоваться максимум с двух ресиверов одновременно. sleep=60 отключает аккаунт после 60 минут неактивности — полезно для лимитирования ресурсов. suppresscmd08=1 скрывает информацию о доступных CAID от клиента.

Защита от перешеринга: cccmaxhops, cccreshare, hostname

cccreshare=0 — критически важно. Без него клиент может пересдать вашу карту дальше по CCcam-цепочке. Устанавливайте это для всех аккаунтов без исключений. cccmaxhops=1 гарантирует, что клиент видит только карты первого уровня. Если один аккаунт открывает 100+ ECM в минуту с разных IP — это явный перешер, мониторьте через WebIF.

Туннелирование через CS378x вместо CCcam

CS378x на порту 22222 менее известен сканерам и имеет встроенное шифрование. Для клиентов, которые поддерживают CS378x (большинство современных softcam), это лучший выбор с точки зрения приватности сервера.

Logging и мониторинг через WebIF (порт 8888)

WebIF показывает в реальном времени: ECM time по каждому клиенту, статус ридеров, количество запросов. Если видите аккаунт с аномально высоким числом ECM — это либо баг в softcam клиента, либо перешер. Заблокировать можно прямо из WebIF без перезапуска OScam.

Диагностика проблем: фризы, пустые ECM, no card

Большинство проблем с кардшаринг сервером видны в логе, если знать что читать.

Чтение oscam.log: коды ответа 00, 01, 02, E2

Команда для живого мониторинга:

tail -f /var/log/oscam/oscam.log | grep -E 'ECM|EMM|reader|error'

Коды ответа карты: 00 — успех, DCW получен. 01 — карта не имеет прав на этот пакет. 02 — нет ответа от карты (таймаут). E2 — CW не найден, чаще всего карта не авторизована на данный канал.

ECM rejected, card not found, timeout — что значат

rejected group — проверьте, что group в oscam.user и oscam.server совпадают. card not inserted — pcscd не видит карту: проверьте кабель ридера и питание. no card — ридер подключён, но карта не вставлена или не читается.

Высокий ECM time (>500ms): причины и решения

Если ECM time стабильно >500 мс — ищите узкое место: высокий ping между клиентом и сервером (>100 мс добавляет задержку), перегруженный ридер (одна карта не успевает обслуживать 15+ одновременных запросов), неправильные mhz/cardmhz замедляют коммуникацию с картой. Нормальная нагрузка: 8–10 активных клиентов на одну карту.

Проблема 'cw not found' на конкретных каналах

Если один конкретный канал даёт фризы, а остальные работают — скорее всего это EMM-only пакет: канал требует свежих entitlements, которые карта не получила. Проверьте, что au=1 включён и что карта реально получает EMM из потока (в логе должны быть строки с EMM written).

Перезапись Nagra3/Conax EMM и срок жизни ключей

Nagra3 и Conax периодически ротируют ключи через EMM. Если карта не получала поток несколько дней — ключи устаревают. Решение: подключите карту к живому потоку с нужным CAID на несколько часов. Также проблема возникает при переезде карты между ридерами — emmcache нужно сбросить: удалите /tmp/.oscam/emmcache.

Два ридера с одинаковым CAID конфликтуют при маршрутизации ECM — добавьте lb_mode=1 в секцию [global] oscam.conf для автоматического балансирования нагрузки.

Выбор провайдера кардшаринга: критерии оценки

Если поднимать полностью автономный кардшаринг сервер с физическими картами нет возможности, часть используют внешние CCcam/CS378x линии. Здесь главное не нарваться на мусор.

Тип карт: локальные vs виртуальные (server-emu)

Локальные карты — физические смарт-карты в ридере, получают реальные EMM. Эмуляция (server-emu с SoftCam.Key) работает только для каналов с постоянными ключами (BISS, PowerVu без pairing, некоторые FTA). Для современных платных CAID с регулярной ротацией ключей нужна реальная карта.

Количество хопов и stability uptime

Hop 1 — вы подключены к серверу с физической картой напрямую. Hop 2+ — между вами и картой один или несколько реселлеров. Каждый лишний хоп добавляет 100–200 мс к ECM time. Настаивайте на демонстрации hop count в WebIF перед оплатой.

Поддерживаемые CAID и пакеты

Запрашивайте конкретный список CAID: 0500, 0B00, 1801, 0604 — а не "все европейские каналы". Попросите тестовую линию на 24–48 часов и проверьте ECM time через WebIF. Стабильное значение <300 мс — норма. Если ECM time прыгает от 200 до 1500 мс — нестабильный ридер или перегруженный сервер.

Защита от ECM-flood и DDoS

Серьёзный кардшаринг сервер должен иметь rate limiting на ECM-запросы. Спросите, есть ли защита от ситуации, когда один клиент заваливает сервер тысячами ECM — это и нагружает карту, и может быть намеренной атакой.

Тестовый период и техническая поддержка

Красные флаги: "все каналы мира" без конкретики по CAID, оплата только криптой без возможности возврата, поддержка отвечает шаблонами без технических деталей. Зелёные флаги: называют конкретные CAID и providerID, готовы показать WebIF статистику, реагируют на технические вопросы по существу.

Юридические и технические ограничения

Это нужно сказать прямо.

Кардшаринг чужих подписок — нарушение условий провайдера и законодательства

Распространение DCW от платной подписки третьим лицам нарушает условия договора с оператором и законодательство большинства юрисдикций: DMCA в США, EU Copyright Directive в Европе, статья 273 УК РФ (создание и распространение вредоносных программ) и статья 272 (неправомерный доступ к охраняемой компьютерной информации) в России. Операторы активно сотрудничают с правоохранительными органами.

Легальные сценарии: одна семья, одна подписка, несколько ресиверов

Локальный OScam для раздачи одной подписки между несколькими ресиверами в одной квартире — это то, для чего технология изначально создавалась и что находится в серой зоне или явно легально в большинстве стран. Один абонемент, один адрес, несколько ТВ — это нормально.

Использование в исследовательских и educational целях

Изучение протоколов ECM/EMM, тестирование DVB-стека, реверс-инжиниринг для академических целей — это другая область, регулируемая отдельно. Здесь важен контекст использования.

Изменения в Nagra3 / Irdeto Cloaked CA — как это влияет

Современные системы защиты делают массовый шеринг технически невозможным. Nagra Anti-Cardsharing шифрует DCW ключом конкретной приставки через pairing: CW, полученный одним ресивером, бесполезен для другого. Irdeto Cloaked CA работает аналогично. Conax v7 с pairing — DCW шифруется ключом конкретного устройства, извлечь pairing key без физического доступа к приставке нереально. Это не теория — большинство крупных европейских пакетов уже перешли на paired delivery.

Клиент через мобильную сеть с CGNAT (оператор использует общий IP для тысяч абонентов) не сможет принять входящее подключение. Решение — reverse-tunnel через autossh или WireGuard VPN, где клиент сам инициирует соединение с туннельным сервером.

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

Какой порт открывать на сервере для CCcam и OScam?

CCcam использует TCP 12000 по умолчанию. OScam CS378x — TCP 22222. Newcamd — TCP 15050. WebIF — TCP 8888 (только для локального/VPN доступа). Все порты настраиваются в oscam.conf и /etc/CCcam.cfg. Открывайте в iptables только те порты, которые реально нужны — например, если клиенты используют только CS378x, CCcam-порт вообще не нужен.

Какая разница между hop 1 и hop 2 в кардшаринге?

Hop 1 — клиент подключён напрямую к серверу с физической смарт-картой. ECM проходит один сервер. Hop 2 — между клиентом и картой есть промежуточный реселлер. ECM проходит через два сервера, задержка растёт на 100–200 мс, повышается риск фризов и обрывов при нестабильности промежуточного звена. Проверить hop count можно в OScam WebIF → Status → Clients.

Почему ECM time высокий и появляются фризы?

Основные причины: высокий ping между клиентом и сервером (каждые 150 мс пинга добавляются к ECM time), перегруженный ридер (одна карта обслуживает 15+ клиентов), неправильные параметры mhz/cardmhz замедляют коммуникацию с картой, проблемы с pcscd, EMM-апдейты во время активного декодирования. Норма — ECM стабильно <400 мс. При >900 мс фризы гарантированы.

Что такое CAID и provider ID и где их посмотреть?

CAID — Conditional Access ID, идентификатор системы шифрования: 0500 Viaccess, 0B00 Conax, 1801 Nagravision, 0604 Irdeto, 0100 SECA. Provider ID — идентификатор конкретного оператора внутри системы. Посмотреть можно в OScam WebIF → Status → Readers, или выполнить cat /tmp/.oscam/reader. При запуске с -p или через pcsc_scan показывается ATR карты, по которому и определяется CAID.

Можно ли запустить OScam без физической смарт-карты?

Да, через server-emu с предзагруженными ключами в SoftCam.Key — работает для FTA-каналов, BISS и PowerVu без pairing. Также можно настроить chain через newcamd или CCcam-line к удалённому серверу — тогда OScam выступает промежуточным прокси. Для платных CAID с регулярным EMM нужна реальная карта, иначе ключи устареют.

Как защитить кардшаринг сервер от перешеринга клиентами?

Обязательно: cccreshare=0 для всех аккаунтов без исключений, cccmaxhops=1, numusers=1-2 на аккаунт. Дополнительно: hostname ограничивает подключение с конкретного IP. Мониторьте через WebIF — аккаунт с 100+ ECM/мин и разными исходящими IP — явный признак перешера. Блокировка через WebIF применяется без перезапуска OScam.

Какой Linux лучше для кардшаринг сервера в 2026?

Debian 12 (Bookworm) или Ubuntu 22.04/24.04 LTS. Стабильные репозитории libpcsclite, регулярные обновления ядра, минимальное потребление ресурсов. На VPS достаточно 1 vCPU и 512 МБ RAM для OScam с 20 клиентами. Не используйте desktop-дистрибутивы — конфликты systemd-resolved с pcscd создают головную боль. После kernel update проверьте, что SmartReader+ определяется (dmesg | grep usb) — иногда нужна пересборка с libusb 1.0.26.

Practical checklist for smooth viewing

Even the best CCCam or OSCam line needs two or three simple preparations. Update your receiver firmware, reset the ECM cache once a week and keep 15–20% free space on the USB stick or internal flash so that the reader can store keys without delays.

When tuning a dish, aim for MER/BER reserve: a two‑degree offset or a loose F‑connector often causes the “freezing” that users blame on cardsharing. Keep a short patch cord to test alternative routers, and save two profiles in OSCam — one for TCP, one for UDP — so you can switch instantly if your ISP starts filtering a protocol.

Utgard.tv monitors each hub 24/7, but you can speed up diagnostics by keeping a short log of your receiver actions. Note the time when you changed the channel, which CAID was active and whether you used Wi‑Fi or Ethernet. This tiny “journal” helps engineers reproduce your environment in the lab and return with a solution in minutes instead of hours.

  • Keep two line slots enabled: if the first server hits a maintenance window, the second one instantly takes over without re-entering credentials.
  • Run a monthly speed and latency test. Stable 1–2 Mbps with ping <80 ms is enough for SD/HD, but if jitter exceeds 20 ms, switch the router to wired mode.
  • Save the Utgard.tv status page and Telegram bot @utgard_tv_bot to bookmarks — they publish maintenance notices before SEMrush or uptime monitors raise alerts.