Кардшаринг сервер: настройка 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.

Практические советы для стабильного просмотра

Даже самая стабильная линия CCCam или OSCam требует пары простых подготовительных шагов. Обновляйте прошивку ресивера, раз в неделю очищайте ECM‑кеш и держите 15–20% свободного места на USB‑накопителе или во встроенной памяти, чтобы кардридер записывал ключи без задержек.

При настройке антенны оставляйте запас по MER/BER: смещение на два градуса или ослабленный F‑коннектор чаще становится причиной “фризов”, чем сам кардшаринг. Держите под рукой короткий патч‑корд для проверки другого роутера и сохраните два профиля в OSCam — под TCP и под UDP — чтобы мгновенно переключиться, если провайдер начнёт фильтровать протокол.

Utgard.tv следит за каждым хабом 24/7, однако вы можете ускорить диагностику, если будете вести небольшой журнал действий. Записывайте время переключения канала, активный CAID и то, использовали ли вы Wi‑Fi или Ethernet. Такой мини‑отчёт позволит инженерам воспроизвести вашу конфигурацию в лаборатории и предложить решение не за часы, а за минуты.

  • Держите активными две линии: если первый сервер уходит на обслуживание, второй тут же подхватывает поток без повторного ввода логина.
  • Раз в месяц делайте замер скорости и задержек. Стабильных 1–2 Мбит/с при пинге до 80 мс достаточно для SD/HD, но если джиттер превышает 20 мс — переведите роутер на провод.
  • Сохраните в закладки страницу статуса Utgard.tv и Telegram‑бота @utgard_tv_bot — там появляются уведомления о работах раньше, чем успеют среагировать SEMrush или внешние мониторы.