Loading...
Guía de configuración del servidor CCcam y el cliente OScam

Guía de configuración del servidor CCcam y el cliente OScam

Obtener una configuración funcional del servidor CCCAM y del cliente OSCAM requiere más que simplemente colocar un bloque [reader] en un archivo y esperar que todo salga bien. Hay detalles de protocolo, enrutamiento de grupos, cadenas de versión y configuración del receptor descendente que deben coincidir, y la mayoría de las guías omiten la mitad. Esta no lo hace. A continuación encontrará todo lo necesario, desde la explicación inicial del protocolo de enlace TCP hasta la ejecución de OSCAM como un servicio systemd reforzado.

Cómo funciona la comunicación entre CCcam y OScam

Antes de tocar cualquier archivo de configuración, necesitas tener una idea clara de lo que está sucediendo en la red. CCcam y OScam son dos programas independientes que comparten un protocolo. OScam se conecta al servidor CCcam, no al revés.

Descripción general del protocolo CCcam

Cuando OScam abre una conexión con un servidor CCcam, lo primero que ocurre es un protocolo de enlace de desafío/respuesta basado en SHA1. El servidor envía una semilla aleatoria de 16 bytes; el cliente la usa junto con el nombre de usuario y la contraseña para calcular un hash, que autentica la sesión. No se utilizan contraseñas de texto plano.

Tras la autenticación, el servidor envía una lista de recursos compartidos: todos los CAID e ID de proveedor a los que tiene acceso. OScam la almacena internamente y la utiliza para decidir a qué lector dirigir las solicitudes ECM. La conexión permanece abierta de forma persistente; las solicitudes ECM fluyen hacia dentro y las respuestas ECW descifradas hacia fuera.

¿Qué hace realmente el tipo de lector 'cccam' de OScam?

El módulo lector de OScam con protocol = cccam es una implementación puramente cliente. Habla el protocolo CCcam de salida a un servidor. OScam no expone un puerto de servidor CCcam cuando se configura de esta manera; no hay un receptor CCcam entrante involucrado. Esto es algo completamente independiente (sección [cccam] en oscam.conf, que no se usa aquí).

El lector gestiona la gestión de la conexión, la reconexión al desconectarse, el análisis de la lista de recursos compartidos y el reenvío de ECM. Considérelo como un controlador para una tarjeta remota que se encuentra en el servidor de otra persona.

Explicación del puerto 12000 y los puertos CCcam no estándar

El puerto predeterminado del servidor CCcam es 12000/TCP . Este es el puerto compilado en el binario original de CCcam y en el que se ejecutan la mayoría de los servidores. Sin embargo, los puertos no estándar (13000, 16000, 10000, etc.) son comunes; los operadores los modifican para evitar escaneos de puertos automatizados o para ejecutar múltiples instancias.

El puerto que le proporcione el operador de su servidor es el que se envía a la línea device . Nunca suponga 12000. Confirme siempre. Conectarse al puerto incorrecto genera inmediatamente un mensaje de "conexión rechazada", que es más fácil de depurar que un error de autenticación.

¿Por qué OScam necesita una entrada de lector dedicada por servidor CCcam?

Cada bloque [reader] en oscam.server representa una conexión TCP persistente a un servidor CCcam. Si tiene dos servidores CCcam, necesita dos bloques de lectura con etiquetas únicas. El balanceador de carga de OScam los trata como fuentes independientes y puede enrutar las solicitudes ECM al que responda más rápido.

Intentar comprimir dos direcciones de servidor en un bloque de lectura no funciona. Un lector, una conexión, un servidor. Ese es el modelo.

Configuración de OScam oscam.server para un lector CCcam

El archivo oscam.server se encuentra en /etc/oscam/oscam.server en la mayoría de las instalaciones de Linux. En las imágenes de Enigma2, suele estar en /etc/tuxbox/config/oscam.server o /usr/keys/oscam.server . La sintaxis es idéntica independientemente de la ubicación.

Directivas mínimas requeridas para un lector CCcam en funcionamiento

Como mínimo, necesitas: label , protocol , device , user , password y group . Todo lo demás es opcional, pero se recomienda encarecidamente para mayor estabilidad. Un bloque mínimo se conectará, pero sin las directivas adicionales, tendrás problemas con tiempos de espera inactivos y canales faltantes.

Bloque oscam.server completo anotado con todas las claves relevantes

 [reader] label = mycccam_reader protocol = cccam device = SERVER_IP,12000 user = YOUR_USER password = YOUR_PASS cccversion = 2.3.0 ccckeepalive = 1 inactivitytimeout = 30 reconnecttimeout = 30 group = 1 cccmaxhops = 2 cccwantemu = 0 cccos = 0 ccchops = 0 Reemplazar [reader] label = mycccam_reader protocol = cccam device = SERVER_IP,12000 user = YOUR_USER password = YOUR_PASS cccversion = 2.3.0 ccckeepalive = 1 inactivitytimeout = 30 reconnecttimeout = 30 group = 1 cccmaxhops = 2 cccwantemu = 0 cccos = 0 ccchops = 0

SERVER_IP , YOUR_USER y YOUR_PASS con los valores proporcionados por el operador del servidor. Todos los demás valores anteriores son valores predeterminados de producción razonables. Esto es lo que hace cada línea:

  • Etiqueta : Nombre único para este lector. Aparece en webif y registros. Debe ser significativo, especialmente si tiene varios lectores.
  • protocolo : le indica a OScam qué controlador de conexión utilizar. cccam para servidores CCcam estándar.
  • Dispositivo : IP/nombre de host y puerto, separados por comas. Sin espacios alrededor de la coma.
  • usuario/contraseña : Credenciales exactamente como se proporcionaron. Distingue entre mayúsculas y minúsculas.
  • cccversion — La cadena de versión de CCcam que OScam presenta durante el protocolo de enlace. Los servidores pueden comprobarla.
  • ccckeepalive — Envía pings periódicos a las conexiones inactivas. Se establece en 1 a menos que el servidor rechace explícitamente los keepalives.
  • inactivitytimeout : segundos sin actividad de ECM antes de que OScam considere que la conexión está obsoleta y se vuelva a conectar. 30 es un valor sensato.
  • Tiempo de espera de reconexión : segundos de espera antes de intentar la reconexión tras una caída. Manténgalo en 30 o menos.
  • Grupo : Número del grupo de lectores. Debe coincidir con el grupo en las entradas oscam.user de lo contrario, los ECM no se enrutarán aquí.
  • cccmaxhops — Máximo de saltos compartidos que se aceptan de la lista de recursos compartidos del servidor. Más información a continuación.
  • cccwantemu — Establézcalo en 1 solo si desea que el servidor comparta tarjetas emuladas. Normalmente es 0.
  • cccos / ccchops — Anula el sistema operativo y el número de saltos reportados en el protocolo de enlace. Se deja en 0 a menos que el servidor requiera valores específicos.

Configuración de 'protocolo = cccam' frente a 'protocolo = cccam2'

cccam2 es una variante extendida del protocolo CCcam, interna de OScam. Añade funciones de negociación de listas compartidas e intercambio de metadatos adicional. El problema es que solo funciona correctamente cuando ambos extremos son OScam. Un servidor CCcam real (que ejecute el binario CCcam) no comprenderá las extensiones de cccam2 y rechazará la conexión o se comportará de forma impredecible.

Regla general: usa protocol = cccam para cualquier aplicación que ejecute el software de servidor CCcam. Usa cccam2 solo en configuraciones de OScam a OScam. En caso de duda, empieza con cccam .

La directiva 'device': sintaxis de nombre de host y puerto

IPv4 estándar o nombre de host: device = myserver.example.com,12000

Las direcciones IPv6 requieren la notación entre corchetes: device = [2001:db8::1],12000 . Si se omiten los corchetes en IPv6, OScam no analizará la dirección correctamente; es un error común en las configuraciones de VPS que solo utilizan IPv6.

Si su servidor está detrás de un proxy inverso o un balanceador de carga, la IP que ve el servidor CCcam podría no ser la IP real de su cliente. Si el servidor utiliza listas blancas de IP, la autenticación fallará incluso con las credenciales correctas. Se trata de un problema de configuración del servidor; contacte con el operador.

Campos de nombre de usuario, contraseña y cccversion

Las credenciales distinguen entre mayúsculas y minúsculas y deben coincidir exactamente con la configuración del servidor. Un espacio al final del campo de contraseña provocará un error de autenticación silenciosa; tenga cuidado al copiar y pegar.

La cadena cccversion es lo que OScam le indica al servidor durante el protocolo de enlace. Los valores comunes que esperan los servidores son: 2.3.0 , 2.1.4 y 2.2.1 . Si el servidor aplica una versión específica y la suya no coincide, la conexión se interrumpe inmediatamente después de la autenticación; no aparece ningún mensaje de error que indique claramente "incompatibilidad de versión". Solo se ve una desconexión. Pruebe primero con 2.3.0 ; si falla, pregunte al operador del servidor qué cadena de versión espera.

Configuración de tiempo de espera por inactividad y reconexión

inactivitytimeout = 30 significa que OScam se reconectará si no hay actividad ECM durante 30 segundos. Esto es positivo: recupera conexiones inactivas sin esperar a que el sistema operativo detecte un socket inactivo. En redes con mucha pérdida, se puede reducir a 20.

reconnecttimeout = 30 es el retraso entre una desconexión y el siguiente intento de reconexión. Mantenerlo en 30 significa unos 30 segundos de posible pantalla negra tras una caída del servidor. Para configuraciones críticas con varios servidores, es mejor tener un valor más bajo (15-20) y múltiples entradas de lector que sobrecargar un servidor con reconexiones rápidas.

Asignación de grupos y su importancia para el enrutamiento

El valor group es el mecanismo de enrutamiento interno de OScam. Una solicitud de ECM de un cliente descendente (su STB) se reenvía a los lectores que comparten el mismo número de grupo que el usuario que la realiza. Si su lector está en el grupo 1, pero la entrada de usuario de su STB especifica el grupo 2, el ECM nunca llega a este lector. Punto final. Esta es la configuración incorrecta más común en todo el proceso de configuración del servidor cccam y el cliente OSCAM, y prácticamente ninguna otra guía la explica con claridad.

Configuraciones de oscam.conf y oscam.user que afectan a los clientes de CCcam

Sección global [global]: archivo de registro, nice, maxlogsize

El archivo oscam.conf en /etc/oscam/oscam.conf controla el comportamiento global. Un bloque [global] funcional mínimo:

 [global] logfile = /var/log/oscam/oscam.log maxlogsize = 512 nice = -1 WaitForCards = 1 lb_mode = 1 lb_save = 1 maxlogsize [global] logfile = /var/log/oscam/oscam.log maxlogsize = 512 nice = -1 WaitForCards = 1 lb_mode = 1 lb_save = 1

está en KB: 512 KB mantienen los registros manejables sin perder historial útil. WaitForCards = 1 indica a OScam que retenga las solicitudes de ECM hasta que al menos un lector esté listo, en lugar de devolver inmediatamente "no encontrado". nice = -1 otorga a OScam una prioridad de programación de CPU ligeramente mayor, lo cual es importante en dispositivos integrados con carga.

Habilitación de la interfaz web para la monitorización del estado del lector en vivo

Agregue esto a oscam.conf para habilitar el monitor HTTP en el puerto 8888:

 [webif] httpport = 8888 httpuser = admin httppwd = yourpassword httprefresh = 10 httpallowed = 127.0.0.1,192.168.0.0-192.168.255.255 Restringir [webif] httpport = 8888 httpuser = admin httppwd = yourpassword httprefresh = 10 httpallowed = 127.0.0.1,192.168.0.0-192.168.255.255

httpallowed en tu red local. Nunca expongas el puerto 8888 a internet sin autenticación, ya que incluso así es arriesgado. El webif es donde verás el estado del lector en tiempo real: si la conexión CCcam está activa, el número de saltos, la última hora de ECM y la latencia de respuesta. Lo usarás constantemente durante la depuración.

oscam.user: Creación de un usuario local para enrutar ECW descifrados a su STB

Ubicación del archivo: /etc/oscam/oscam.user . Necesita al menos una entrada de usuario para el dispositivo que se conecta a OScam (su decodificador, Dreambox, VU+, etc.):

 [account] user = stbuser pwd = stbpassword group = 1 au = 1 El [account] user = stbuser pwd = stbpassword group = 1 au = 1

group = 1 debe coincidir con el group = 1 en el bloque de lector. Ese es el enlace. OScam detecta la solicitud ECM del STBUSER (grupo 1), busca lectores en el grupo 1, encuentra el lector CCcam, envía el ECM allí, recupera el ECW y lo devuelve al STB. Si se rompe la coincidencia de grupo, no funciona, incluso si la conexión CCcam funciona correctamente.

Vinculación de usuarios a grupos de lectores con la directiva 'group'

Los grupos son simplemente números enteros. Puede usar cualquier número del 1 al 64. Puede asignar varios grupos tanto a lectores como a usuarios separándolos con comas: group = 1,2,3 . Esto es útil cuando tiene varios lectores CCcam en diferentes grupos y desea que un usuario tenga acceso a todos ellos. El balanceador de carga de OScam seleccionará el mejor lector entre todos los grupos asignados.

Configuración correcta de 'au' (actualización automática) para lectores que comparten tarjetas

au = 1 en la cuenta de usuario habilita la actualización automática del mensaje de gestión de derechos (EMM) para ese usuario. En una configuración de uso compartido de tarjetas donde solo se reciben respuestas ECM, au = 1 en el lector suele ser innecesaria y puede generar interferencias. Configúrela en la cuenta de usuario descendente si necesita que se transfieran las renovaciones de suscripción; desactívela en el lector a menos que su servidor la admita y la requiera.

Cómo conectar su STB o Softcam a OScam después de la autenticación CCcam

Aquí es donde la mayoría de las guías de configuración del servidor CCcam y el cliente OSCAM fracasan por completo. Conectan OScam al servidor CCcam y se detienen. Pero esa conexión solo resuelve la mitad del problema: has enviado los ECM cifrados al lugar correcto, pero aún necesitas enviar los ECW descifrados de vuelta a tu TV Box.

Uso de OScam como oyente de newcamd para Dreambox/VU+ Boxes

Newcamd es el protocolo más compatible con los decodificadores Enigma2. Agregue la sección [newcamd] a oscam.conf :

 [newcamd] key = 0102030405060708091011121314 port = 15050@1702:000000 El [newcamd] key = 0102030405060708091011121314 port = 15050@1702:000000

key es la clave DES de newcamd; debe coincidir con la configurada en el cliente newcamd del decodificador. El valor anterior es un valor predeterminado común; puede usar cualquier cadena hexadecimal de 14 bytes. El formato de la línea port es port@CAID:ProviderID . Use 000000 como ID de proveedor para aceptar todos los proveedores para ese CAID o especifique un ID de proveedor real (p. ej., 000000 para comodín, 000001 para un proveedor específico). Para varios CAID, agregue varias entradas de puerto separadas por punto y coma: port = 15050@1702:000000;15051@0D00:000000 .

Configuración del bloque de escucha de oscam.conf [newcamd]

En tu Dreambox o VU+, añade una entrada de servidor newcamd que apunte a la IP de la máquina que ejecuta OScam (puerto 15050) con la misma clave DES. El STB envía solicitudes ECM al receptor newcamd de OScam, que las enruta a través del lector CCcam al servidor, recupera el ECW y lo devuelve al STB. Esta es la cadena completa.

Uso del detector camd35/cs357x de OScam para otros clientes

Algunos clientes prefieren camd35 (también llamado cs357x). Agregue a oscam.conf :

 [cs357x] port = 15000 Las credenciales de usuario para camd35 provienen de [cs357x] port = 15000

oscam.user igual que newcamd. El protocolo es más sencillo que newcamd, pero menos común en los decodificadores modernos. Use newcamd a menos que su cliente necesite específicamente camd35.

Entrada oscam.user para el STB: Campos obligatorios

 [account] user = stbuser pwd = stbpassword group = 1 au = 1 uniq = 0 uniq = 0 [account] user = stbuser pwd = stbpassword group = 1 au = 1 uniq = 0

Permite que varios clientes se conecten simultáneamente con las mismas credenciales. Establézcalo en 1 si desea que solo se conecte una vez por usuario. En hogares con un decodificador, cualquiera de las dos opciones funciona. En configuraciones compartidas, establézcalo en 0 para evitar el autobloqueo durante las reconexiones.

Verificación de que la tarjeta compartida está pasando ECMs mediante las estadísticas del lector Webif

Abra http://OSCAM_IP:8888 en un navegador. Haga clic en el nombre de su lector. Verá: estado de la conexión, hora del último ECM, recuento de ECM, tiempo de respuesta en milisegundos y número de saltos. Si el lector muestra "conectado", pero el recuento de ECM permanece en cero después de intentar sintonizar un canal, el problema está en la parte posterior. Compruebe la conexión del decodificador a OScam o las asignaciones de grupo.

Si el recuento de ECM aumenta, pero la pantalla sigue negra, es posible que el servidor CCcam no tenga la tarjeta para ese CAID. Consulte la lista de recursos compartidos en la vista de detalles del lector para confirmar que el CAID que necesita esté en la lista.

Solución de problemas de conexión del lector CCcam en OScam

El lector atascado en 'CACHEEX' o 'CARDOK' nunca aparece: causas

"CACHEEX" en el estado del lector suele significar que OScam está en modo de intercambio de caché, no en modo de lectura directa de CCcam. Compruebe que no haya configurado accidentalmente cacheex = 1 en el lector. Un lector CCcam limpio debería aparecer como "CONECTADO" o "CARDOK" una vez completada la autenticación y el servidor envíe una lista de uso compartido con las tarjetas.

Si el estado nunca llega a CARDOK, es probable que el servidor no tenga tarjetas activas en su lista de compartidos o cccmaxhops esté filtrando todo.

ERROR DE AUTORIZACIÓN: Cadena de conversión incorrecta

En el registro de OScam ( /var/log/oscam/oscam.log ), una autenticación fallida se ve así:

 2024/01/15 14:23:01 9876 r mycccam_reader cccam: login failed for user YOUR_USER 2024/01/15 14:23:01 9876 r mycccam_reader cccam: connection closed

Verá una conexión seguida inmediatamente de una desconexión. Antes de culpar a las credenciales, intente cambiar cccversion . Cambie de la 2.3.0 a 2.1.4 o viceversa. Algunos servidores están compilados para rechazar las cadenas de versión que no reconocen. Este es un modo de fallo silencioso: no hay un error explícito de "versión incorrecta" en el registro, solo una desconexión.

Para obtener temporalmente una salida detallada del lector, agregue loglevel = 512 a [global] en oscam.conf, reinicie OScam, revise los registros y elimínelo. El volumen de registros en el nivel 512 es significativo; no lo deje activado permanentemente.

Conexión rechazada vs. tiempo de espera de conexión: qué significa cada uno

Conexión rechazada : El paquete TCP llegó al servidor, pero no hay nadie escuchando en ese puerto. El número de puerto es incorrecto, el servidor CCcam no se está ejecutando o un proceso local está bloqueando el puerto (en Enigma2, un complemento de CCcam que se ejecuta junto con OScam podría haber solicitado el puerto 12000; elimínelo).

Tiempo de espera de conexión : El paquete TCP SYN no recibió respuesta. Un firewall está descartando paquetes, la IP es incorrecta o el enrutamiento está interrumpido. Pruebe con: nc -zv SERVER_IP 12000 Si se bloquea, es un problema de red o firewall. Si devuelve "refused" inmediatamente, el puerto está cerrado en el servidor.

Líneas de registro de OScam que se deben buscar

Una secuencia de conexión exitosa en el registro se ve así:

 r mycccam_reader cccam: resolved SERVER_IP to xxxx r mycccam_reader cccam: connected to xxxx:12000 r mycccam_reader cccam: login successful for user YOUR_USER r mycccam_reader cccam: received share list (47 cards)

Si ve "lista de recursos compartidos recibidos (0 tarjetas)", el servidor está activo y sus credenciales funcionan, pero no hay tarjetas activas en esa cuenta. Contacte al operador del servidor.

Firewall y NAT: Cómo garantizar que el puerto 12000 sea accesible

OScam se conecta al puerto 12000. La mayoría de las configuraciones NAT domésticas permiten conexiones salientes sin ninguna configuración especial. Los problemas surgen cuando un firewall en el equipo cliente bloquea las conexiones salientes (poco común, pero posible con reglas estrictas de iptables), o cuando el firewall del servidor tiene una lista blanca de IP y tu IP pública no está en ella.

También verifique: si se encuentra en un entorno NAT compartido donde varios clientes OScam comparten la misma IP pública, el servidor CCcam podría tener un límite de conexiones por IP y rechazar las conexiones que superen dicho límite. Cada cliente necesita su propio par de nombre de usuario/contraseña: usar las mismas credenciales desde la misma IP a veces funciona, pero usar las mismas credenciales simultáneamente casi siempre falla.

cccmaxhops configurado demasiado bajo: explicación de los canales faltantes

Las tarjetas CCcam tienen un "conteo de saltos": cuántos relés ha recorrido la tarjeta para llegar a su servidor. Una tarjeta conectada directamente al hardware del servidor es el salto 0. Una tarjeta compartida desde otro servidor CCcam al suyo es el salto 1. Si se comparte de nuevo, es el salto 2. Y así sucesivamente.

cccmaxhops = 1 significa que OScam solo usará tarjetas con un número de saltos de 0 o 1. Las tarjetas en el salto 2 o superior están en la lista de recursos compartidos, pero OScam las ignora. Si el canal que necesita proviene de una tarjeta en el salto 2, se conectará, el lector se mostrará como correcto, pero ese canal específico no se descifrará. Configure cccmaxhops = 2 o superior si recibe canales faltantes selectivos. Tenga en cuenta que valores muy altos (8 o superior) pueden hacer que OScam reciba enormes listas de recursos compartidos en servidores con mucha actividad, lo que consume memoria, un problema real en el hardware Dreambox con 256 MB de RAM.

Entradas duplicadas del lector que provocan reconectaciones en bucle

Dos entradas de lector con la misma etiqueta en oscam.server causan un comportamiento confuso: OScam puede cargar ambas, creando intentos de conexión duplicados al mismo servidor. El registro mostrará ciclos rápidos de conexión/desconexión. Use etiquetas únicas para cada lector. Compruebe si hay duplicados accidentales si un lector rebota en el webif.

Refuerzo y ajuste del rendimiento del lector CCcam de OScam

Configuración del tiempo de espera de reconexión para evitar retrasos en el Zap

Con un solo lector CCcam, una caída del servidor implica una pantalla negra hasta que OScam se reconecte. El valor predeterminado es reconnecttimeout = 30 , lo que significa hasta 30 segundos de pantalla negra. Reducirlo a 15 reduce ese periodo, pero aumenta la frecuencia de reconexión en conexiones inestables. En producción, ejecutar dos entradas de lector que apunten a servidores diferentes con lb_mode = 1 es una mejor solución que ajustar solo el tiempo de reconexión.

ccckeepalive y su efecto en las conexiones inactivas

ccckeepalive = 1 envía un mensaje periódico tipo ping a través de la conexión TCP de CCcam durante los periodos de inactividad. Sin él, las asignaciones NAT en los routers suelen expirar tras 60-300 segundos de inactividad, finalizando silenciosamente la sesión TCP. OScam no detectará que la conexión está inactiva hasta que falle la siguiente solicitud ECM. Con keepalive activado, la asignación NAT se mantiene activa y OScam detecta las caídas más rápidamente. Manténgalo activado.

Uso de lb_mode (equilibrio de carga) al conectarse a varios servidores CCcam

Establecer en oscam.conf [global] :

  • lb_mode = 0 : Sin balanceo de carga. OScam usa el primer lector disponible de la lista. Es simple, pero no ofrece ninguna mejora en el rendimiento.
  • lb_mode = 1 : El lector más rápido gana. OScam monitoriza los tiempos de respuesta de ECM por lector y dirige las futuras solicitudes al lector con el mejor tiempo de respuesta promedio. Esto es lo que se busca en una configuración multiservidor.
  • lb_mode = 5 : Aleatorio ponderado. Considera el tiempo de respuesta, pero añade aleatorización para distribuir la carga. Útil cuando se tienen varios servidores de calidad similar y no se desea que uno solo reciba todo el tráfico.

Para la mayoría de las configuraciones con 2 a 4 lectores CCcam, lb_mode = 1 con lb_save = 1 (guarda las estadísticas aprendidas en el disco para que OScam no se inicie a ciegas después de un reinicio) es la opción correcta.

Configuración de Logrotate para registros de OScam para evitar el llenado del disco

Crear /etc/logrotate.d/oscam :

 /var/log/oscam/oscam.log { daily rotate 7 compress missingok notifempty copytruncate }

copytruncate es importante aquí: OScam mantiene abierto el identificador del archivo de registro, por lo que la rotación y la señal estándar no funcionarán sin enviar un SIGHUP a OScam. Copytruncate copia el archivo y luego trunca el original, lo que funciona sin afectar el proceso de OScam. En dispositivos Enigma2 integrados con almacenamiento flash pequeño, la rotación es más agresiva: rotate 3 y considerar maxsize 1M .

Ejecutar OScam como un servicio systemd no root

Crear usuario y directorio:

 useradd -r -s /sbin/nologin oscam mkdir -p /var/log/oscam chown oscam:oscam /var/log/oscam chown -R oscam:oscam /etc/oscam Crear useradd -r -s /sbin/nologin oscam mkdir -p /var/log/oscam chown oscam:oscam /var/log/oscam chown -R oscam:oscam /etc/oscam

/etc/systemd/system/oscam.service :

 [Unit] Description=OScam Softcam After=network-online.target Wants=network-online.target [Service] Type=simple User=oscam Group=oscam ExecStart=/usr/bin/oscam -B /var/run/oscam.pid -c /etc/oscam PIDFile=/var/run/oscam.pid Restart=on-failure RestartSec=10 StandardOutput=null [Install] WantedBy=multi-user.target Habilitar e iniciar: [Unit] Description=OScam Softcam After=network-online.target Wants=network-online.target [Service] Type=simple User=oscam Group=oscam ExecStart=/usr/bin/oscam -B /var/run/oscam.pid -c /etc/oscam PIDFile=/var/run/oscam.pid Restart=on-failure RestartSec=10 StandardOutput=null [Install] WantedBy=multi-user.target

 systemctl daemon-reload systemctl enable oscam systemctl start oscam Ejecutarse sin privilegios de root significa que un proceso OScam comprometido no puede destruir el sistema. systemctl daemon-reload systemctl enable oscam systemctl start oscam

La directiva Restart=on-failure gestiona automáticamente los fallos inesperados. Esta es una práctica estándar y su configuración tarda unos 5 minutos. Si la omite, estará ejecutando un servicio de red como root indefinidamente.

Una última comprobación antes de dar por completa la configuración del servidor CCcam y el cliente OSCAM: ejecute oscam --version y revise la lista de módulos en la salida. Algunas compilaciones mínimas o reducidas, compiladas para destinos integrados específicos, excluyen por completo el módulo lector CCcam. Si no ve "cccam" en la lista de módulos compilados, ningún cambio de configuración lo solucionará; necesita una compilación OSCAM completa.

Preguntas frecuentes

¿Cuál es el puerto predeterminado para un servidor CCcam al que se conecta OScam?

El puerto predeterminado del servidor CCcam es 12000/TCP . Muchos operadores utilizan puertos no estándar; siempre verifique con quien le proporcionó las credenciales del servidor. El puerto se configura en la línea device de oscam.server como hostname,port sin espacios. Nunca asuma 12000 si no se le ha indicado explícitamente el puerto.

¿Cuál es la diferencia entre 'protocol=cccam' y 'protocol=cccam2' en OScam?

cccam2 es una variante extendida del protocolo interno de OScam con funciones adicionales de negociación de recursos compartidos. Solo funciona correctamente cuando tanto el cliente como el servidor ejecutan OScam. Un binario de servidor CCcam real no comprenderá las extensiones de cccam2; rechazará la conexión o se comportará de forma impredecible. Use protocol = cccam para cualquier aplicación que ejecute software de servidor CCcam real y reserve cccam2 exclusivamente para configuraciones de OScam a OScam.

¿Por qué mi lector OScam muestra 'conectado' pero los canales aún no se descifran?

"Conectado" solo significa que el enlace TCP está activo; no garantiza la disponibilidad de la tarjeta. Revisa esta lista de verificación: (1) ¿Es cccmaxhops lo suficientemente alto como para alcanzar las tarjetas que necesitas? (2) ¿Están el CAID y el ID del proveedor que necesitas en la lista de recursos compartidos del servidor? (3) ¿Coincide el grupo oscam.user de tu decodificador con el grupo del lector? (4) Revisa el recuento de solicitudes ECM en los detalles del lector webif: si es cero, la solicitud ni siquiera llega a OScam desde el decodificador.

¿Puede OScam conectarse a varios servidores CCcam simultáneamente?

Sí. Agregue varios bloques [reader] en oscam.server , cada uno con una label única. Asigne el mismo grupo a todos si desea un enrutamiento unificado, o grupos diferentes para niveles de acceso separados. Configure lb_mode = 1 en oscam.conf [global] para que OScam enrute automáticamente cada solicitud de ECM al lector con la respuesta más rápida. Agregue lb_save = 1 para que los tiempos aprendidos se mantengan tras los reinicios.

¿Qué debo tener en cuenta al evaluar la confiabilidad de un servidor CCcam antes de configurarlo?

Aspectos clave a verificar: ¿El operador publica estadísticas de tiempo de actividad o tiene una página de estado? ¿Dónde se encuentra el servidor geográficamente con respecto a usted? La ubicación del servidor afecta directamente la latencia de respuesta del ECM. ¿Cuántas conexiones simultáneas permite la cuenta? ¿El operador proporciona una línea de prueba antes de la asignación total? ¿Existe documentación técnica sobre la configuración del servidor? Evite servidores sin acceso de prueba y sin posibilidad de verificar el funcionamiento de la configuración antes de configurar todo.

¿Cómo puedo verificar los registros de OScam para confirmar que un lector CCcam se autenticó correctamente?

En /var/log/oscam/oscam.log o en la vista de registro de webif, una autenticación exitosa muestra líneas con la etiqueta de su lector, seguidas de "cccam: login success" y "received share list". Una autenticación fallida muestra "login failed" o una desconexión inmediata justo después de la línea de conexión TCP. Si necesita más detalles, agregue temporalmente loglevel = 512 a [global] en oscam.conf y reinicie; esto genera una salida detallada por lector. Elimínelo después de la depuración; el volumen del registro es grande.

¿OScam admite el uso compartido de tarjetas CCcam tanto en plataformas Linux como integradas (Enigma2)?

Sí, y la sintaxis de configuración oscam.server es idéntica en ambos. En Enigma2 (Dreambox, VU+), OScam se instala como un plugin ipk u opk. Los archivos de configuración suelen estar en /etc/tuxbox/config/ o /usr/keys/ según la imagen. Una advertencia en Enigma2: si también hay un plugin de CCcam instalado y ejecutándose, es posible que ya esté escuchando localmente en el puerto 12000. Esto provoca un error de conexión rechazada cuando el lector de OScam intenta conectarse al servidor. Elimine el plugin de CCcam en conflicto y conéctese solo a través de OScam.