Códigos de Servidor CCcam/OScam: Configuración& Guía de Configuración
\n\nLos códigos de servidor son la columna vertebral de la autenticación entre pares en CCcam y OScam. Si estás configurando tu primera conexión o solucionando por qué los pares no aceptan tu conexión, entender cómo funcionan los códigos de servidor es esencial. Esta guía cubre los detalles técnicos reales: las rutas de archivo exactas, los comandos que realmente ejecutarás y por qué las cosas fallan cuando lo hacen.
\n\n¿Qué Son los Códigos de Servidor en CCcam y OScam?
\n\nDefinición y Propósito
\n\nUn código de servidor es un token de autenticación generado criptográficamente que identifica tu instancia de CCcam o OScam a pares remotos. Piensa en ello como una huella digital de máquina: única, sensible al tiempo y vinculada a la clave de cifrado DES de tu instalación.
\n\nLos códigos de servidor reemplazaron la autenticación simple de nombre de usuario/contraseña porque son más difíciles de forzar. En lugar de transmitir credenciales a través de la red, el código en sí prueba que posees la instalación sin exponer una contraseña. El par verifica que el código coincide con el ID de nodo que esperan, y la conexión es aceptada o rechazada en milisegundos.
\n\nDiferencia Entre Códigos de Servidor CCcam y OScam
\n\nAmbos sistemas utilizan generación de códigos basada en DES, pero lo implementan de manera diferente. Los códigos de CCcam son generados por el propio binario de CCcam utilizando un algoritmo propietario vinculado a la versión de CCcam y al ID de hardware de tu sistema. Los códigos de OScam provienen del binario de oscam y utilizan una implementación diferente de DES, aunque el concepto es idéntico.
\n\nLa diferencia práctica: un código de servidor CCcam no funcionará como un código de OScam y viceversa. No puedes mezclarlos en la misma configuración. Si estás ejecutando CCcam, extraes y usas códigos de CCcam. ¿Instalación de OScam? Obtienes códigos de OScam de oscam.log.
\n\nCómo los Códigos de Servidor Habilitan Conexiones entre Pares
\n\nCuando te conectas a un par, esto es lo que sucede. Tu instancia envía su código de servidor. El par lo verifica contra su lista blanca de códigos conocidos. Si coincide con un ID de nodo en su configuración, la conexión se abre. Si no coincide, la conexión es rechazada y registrada como un fallo de autenticación.
\n\nPor eso los códigos de servidor deben ser exactos: un solo carácter corrupto y la verificación DES del par falla. El par no acepta coincidencias parciales o códigos "suficientemente cercanos".
\n\nImplicaciones de Seguridad del Compartir Códigos de Servidor
\n\nUn código de servidor identifica toda tu instalación. Si lo compartes con un par, pueden autenticarse como tú. Si ese código se filtra públicamente o cae en manos no confiables, cualquiera puede hacerse pasar por tu nodo. Por eso los códigos solo deben compartirse con pares que autorices explícitamente.
\n\nEl lado positivo: los códigos no son permanentes. Reinicia CCcam u OScam, y se genera un nuevo código. El código antiguo se vuelve inválido de inmediato. Esto hace que la compromisión del código sea recuperable; no estás atrapado con una credencial comprometida como una contraseña.
\n\nFormato y Sintaxis del Código del Servidor CCcam
\n\nDesglose de la Estructura del Código CCcam Estándar
\n\nUn código típico de servidor CCcam se ve así (ejemplo anonimizado):
\n\nA1 B2 C3 D4 E5 F6 G7 H8 I9 J0 K1 L2 M3 N4 O5 P6
Son 16 bytes en formato hexadecimal. El código completo siempre tiene 16 bytes—nunca más corto, nunca más largo. Cada par de caracteres es un byte. Esta longitud consistente hace que el análisis sea confiable en todas las plataformas.
\n\nEl código es generado por CCcam después de la encriptación DES del material clave de tu nodo. Los 16 bytes resultantes son los que se muestran y se comparten con los pares. No verás la clave sin encriptar—solo la salida encriptada.
\n\nComponentes del ID del Nodo y de la Clave DES
\n\nDetrás de escena, tu ID de nodo y la clave DES se combinan durante la generación del código. El ID del nodo es un identificador numérico que configuras (o uno que se asigna automáticamente). La clave DES se deriva de tu instalación—típicamente una combinación de la versión binaria, la dirección MAC del sistema y otros identificadores de hardware en cajas ARM.
\n\nPor eso los códigos difieren entre máquinas. Si copias tu binario de CCcam de un dispositivo a otro, obtendrás códigos diferentes porque las firmas de hardware son distintas. La encriptación DES produce una salida diferente para diferentes entradas.
\n\nCálculo y Validación de la Suma de Comprobación
\n\nCCcam no publica su algoritmo exacto de suma de comprobación, pero el código se valida recalculándolo. Cuando un par recibe tu código, ejecutan la misma operación DES en su extremo usando el ID de nodo que reclamaste. Si su salida coincide con la tuya, la autenticación tiene éxito. Si no, la conexión es rechazada.
\n\nPor eso la sincronización de tiempo es importante. Algunas versiones de CCcam incorporan una marca de tiempo en el cálculo DES. Si tu reloj del sistema está muy desincronizado, la suma de comprobación del par no coincidirá con la tuya.
\n\nLectura de la Salida del Código desde los Registros de CCcam
\n\nTu código de servidor CCcam se registra cuando el servicio comienza. Verifica/tmp/cccam.log en la mayoría de las instalaciones de Linux:
grep "código del servidor" /tmp/cccam.log
Verás una salida como:
\n\n18:45:32 CCcam iniciado
18:45:35 Mi código es: A1 B2 C3 D4 E5 F6 G7 H8 I9 J0 K1 L2 M3 N4 O5 P6
Algunas versiones lo registran como "código de nodo" o simplemente "el código es". La redacción exacta varía según la versión de CCcam. La parte importante: 16 bytes hexadecimales en secuencia.
\n\nSi no ves una línea de código en el registro, o bien CCcam no se inició correctamente, o el registro está rotado y es antiguo. Reinicia el servicio y observa la salida del registro en tiempo real.
\n\nExpiración de Código y Ciclos de Actualización
\n\nLos códigos de CCcam no tienen una expiración fija. Son estáticos hasta que reinicias el servicio. Sin embargo, algunos códigos de servidor incluyen un componente de tiempo que los pares podrían validar. Si el reloj de tu sistema se desvía significativamente, un par podría comenzar a rechazar tu código aunque no hayas reiniciado.
\n\nReiniciar CCcam obliga a la regeneración del código. El nuevo código invalida el antiguo de inmediato. Ningún par aceptará el código antiguo una vez que tu servicio esté nuevamente en línea.
\n\nNo hay un comando manual de "actualizar código". O reinicias el servicio o esperas hasta el intervalo de actualización de código configurado (si tu versión lo soporta—la mayoría no lo hace).
\n\nGeneración y Recuperación de Códigos de Servidor
\n\nExtracción de Código de CCcam a través de Telnet (Puerto 16001)
\n\nLa forma más rápida de obtener tu código de servidor es telnetear al puerto de gestión de CCcam. El puerto por defecto es 16001:
\n\ntelnet localhost 16001
Verás un aviso. Escribe:
\n\ncódigo
La respuesta es tu código de servidor actual. Este método funciona incluso si el archivo de registro está ausente o rotado. Es la forma más confiable de verificar tu código en este momento.
\n\nSi telnet se agota, verifica que CCcam esté realmente en funcionamiento y que el puerto no esté bloqueado por un firewall. En configuraciones de Docker o contenedores, asegúrate de que el puerto 16001 esté mapeado correctamente.
\n\nEncontrar el Código en la Ubicación del Archivo oscam.log de OScam
\n\nOScam escribe su código en el archivo oscam.log. Las rutas varían según la instalación, pero las ubicaciones comunes son:
\n\n/var/etc/oscam/oscam.log
/etc/oscam/oscam.log
/tmp/oscam.log
Busca la línea de código:
\n\ngrep -i "código" /var/etc/oscam/oscam.log | tail -20
Busca una línea que contenga "el código es" o "código de nodo" seguido de 16 bytes hexadecimales. OScam normalmente lo registra una vez al inicio:
\n\n[oscam] Mi código es: 12 34 56 78 9A BC DE F0 11 22 33 44 55 66 77 88
Si oscam.log no existe o está vacío, OScam podría no estar registrando correctamente. Verifica que el usuario oscam tenga permisos de escritura en el directorio de registros. Reinicia OScam y inmediatamente sigue el registro para capturar el mensaje de inicio.
\n\nGenerando Nuevos Códigos a través de Reinicio vs. Métodos Manuales
\n\nReinicia el servicio:
\n\nsystemctl restart CCcam
osystemctl restart oscam
Mira los registros inmediatamente después:
\n\ntail -f /tmp/cccam.log
otail -f /var/etc/oscam/oscam.log
Verás el nuevo código en segundos. No hay un comando de generación de código manual. El binario lo genera automáticamente al iniciar, leyendo tu ID de nodo, información de hardware y el reloj del sistema.
\n\nSi necesitas un nuevo código pero no quieres interrumpir el servicio, algunas configuraciones utilizan gestores de procesos o clustering que permiten reinicios suaves. Pero el resultado siempre es el mismo: nuevo reinicio, nuevo código.
\n\nHerramientas para Análisis y Validación de Código
\n\nPuedes validar el formato de un código de servidor sin conectarte a pares. Un código válido es siempre:
\n\n- \n
- 16 bytes (32 caracteres hexadecimales) \n
- Solo hexadecimal (0-9, A-F) \n
- Típicamente separado por espacios (por ejemplo, AA BB CC DD...) o continuo (AABBCCDD...) \n
Usa grep con regex para validar:
\n\necho "A1 B2 C3 D4 E5 F6 G7 H8 I9 J0 K1 L2 M3 N4 O5 P6" | grep -iE '^([0-9A-F]{2} ){15}[0-9A-F]{2}$'
Si el patrón coincide, el formato es válido. Esto no verifica que el código sea criptográficamente correcto, solo que está formateado correctamente.
\n\nDiferencias en la Generación de Código Multiplataforma (Linux/ARM/Enigma2)
\n\nLos binarios de CCcam están compilados para diferentes arquitecturas: x86 Linux, ARM (popular en decodificadores) y Enigma2 (variante de Linux propietaria). Cada binario genera códigos diferentes incluso con el mismo ID de nodo y reloj porque la firma de ID de hardware es diferente.
\n\nPor esta razón, no puedes copiar un código de un decodificador Enigma2 a una PC con Linux y esperar que funcione. El binario en sí es parte del cálculo DES. Un código de Enigma2 solo funciona en hardware Enigma2 que ejecute esa versión específica del binario.
\n\nSi estás migrando de una plataforma a otra (por ejemplo, de un viejo decodificador Enigma2 a un servidor Linux), debes obtener nuevos códigos de la nueva plataforma. No puedes reutilizar los códigos antiguos.
\n\nConfigurando Códigos de Servidor en CCcam.cfg y oscam.conf
\n\nAñadiendo Códigos de Peers a la Sintaxis de CCcam.cfg
\n\nNo almacenas tu propio código en CCcam.cfg. En su lugar, almacenas los códigos de tus peers. Aquí está la estructura de la sección de peers:
\n\n[peer]
\nhostname = peer.ejemplo.com
\nport = 16001
\ncode = A1 B2 C3 D4 E5 F6 G7 H8 I9 J0 K1 L2 M3 N4 O5 P6
\nnodeid = 0x12345678
Lalínea de código es donde va el código del servidor de tu peer. Elnodeid es lo que tu CCcam esperará que ese peer identifique. Cuando el peer se conecta, envían su código. Tu instancia valida que coincide con el nodeid y el código que has configurado.
Múltiples peers necesitan múltiples bloques [peer]:
\n\n[peer]
hostname = peer1.example.com
puerto = 16001
código = AA BB CC DD EE FF 00 11 22 33 44 55 66 77 88 99
nodeid = 0x11111111
[peer]
hostname = peer2.example.com
puerto = 16001
código = 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF 00
nodeid = 0x22222222
El espaciado y la capitalización son importantes. Usa hexadecimales en mayúsculas (o minúsculas—ambos funcionan). Asegúrate de que el código tenga exactamente 16 bytes con el espaciado adecuado o fallará al analizar.
Configuración del sistema de tarjetas OScam con códigos de servidor
En el oscam.conf de OScam, los códigos de servidor se refieren de manera diferente. OScam utiliza una declaración del sistema de tarjetas:
[cccam]
puerto = 16001
[lector]
etiqueta = remote_peer
protocolo = cccam
dispositivo = peer.example.com,16001
código = A1 B2 C3 D4 E5 F6 G7 H8 I9 J0 K1 L2 M3 N4 O5 P6
nodeid = 0x12345678
La línea de código en la sección [lector] identifica a tu par. Cuando OScam se conecta, envía su propio código y espera recibir el código del par. Si no coinciden con lo que está configurado, la conexión falla.
La validación de código de OScam es más estricta que la de CCcam en algunas versiones. El espacio en blanco, el caso y el formato exacto son importantes. Si una conexión falla, verifica que el código en oscam.conf coincida carácter por carácter con lo que el par está enviando.
\n\nConfiguración del puerto (Predeterminado 16001, Alternativas 16002)
\n\nEl puerto 16001 es el predeterminado para las conexiones de pares CCcam. Algunas configuraciones utilizan 16002 como alternativa, pero esto requiere configuración en ambos lados.
\n\nPara usar un puerto no predeterminado en CCcam.cfg:
\n\n[peer]
\nhostname = peer.ejemplo.com
\nport = 16002
\ncode = A1 B2 C3 D4 E5 F6 G7 H8 I9 J0 K1 L2 M3 N4 O5 P6
\nnodeid = 0x12345678
La instancia del par también debe estar escuchando en el puerto 16002. Si el par solo escucha en 16001 y estás intentando alcanzarlo en 16002, la conexión se agotará.
\n\nLas reglas del firewall deben permitir el puerto. Muchos ISP bloquean 16001 por defecto. Si no puedes conectar, intenta verificar si el puerto es accesible:
\n\ntelnet peer.ejemplo.com 16001
Si eso se agota, es probable que el puerto esté bloqueado. Cambiar a un puerto más alto (por encima de 50000) a veces elude los filtros de los ISP, pero ambos lados deben acordar el número de puerto.
\n\nConfiguraciones de rebote y re-compartición con validación de código
\n\nLos códigos del servidor se validan en cada conexión, no solo en el apretón de manos inicial. Esto es importante para las configuraciones de rebote y re-compartición donde tu CCcam retransmite conexiones a través de múltiples pares.
\n\nEn una configuración de rebote:
\n\n[peer]
\nhostname = bounce.ejemplo.com
\nport = 16001
\n código = 99 88 77 66 55 44 33 22 11 00 FF EE DD CC BB AA
\n idnodo = 0x87654321
\n rebote = 1
El código debe ser correcto para cada salto. Si el código del par de rebote cambia (por ejemplo, si se reinicia), tu conexión fallará hasta que actualices el código en tu configuración. Por eso es crítico monitorear los registros para detectar fallos de autenticación en configuraciones de rebote.
\n\nRecompartir (múltiples tarjetas, distribuidas a múltiples pares) funciona de manera similar. Cada conexión de par requiere códigos de servidor válidos.
\n\nProbando Conexiones Después de Ingresar el Código
\n\nDespués de agregar un par con su código de servidor, prueba la conexión de inmediato:
\n\nsystemctl restart CCcam
\nsleep 5
\ntail -f /tmp/cccam.log | grep peer.example.com
Busca una línea como:
\n\nconectado a peer.example.com:16001
\ncoincidencia de código autenticado
Si ves "autenticación fallida" o "desajuste de código", el código es incorrecto o el par lo rechazó. Verifica que el código coincida exactamente con lo que el par te envió.
\n\nEn OScam, verifica oscam.log:
\n\ntail -f /var/etc/oscam/oscam.log | grep "remote_peer"
Busca mensajes de "conectado" o "autenticado". Los errores de conexión aparecerán claramente con marcas de tiempo.
\n\nResolviendo Problemas de Códigos de Servidor
\n\nDesajuste de Código y Fallos de Conexión
\n\nEl problema más común es un error tipográfico en el código. Un solo carácter incorrecto rompe la autenticación. Siempre copia/pega los códigos en lugar de escribirlos manualmente. Si debes escribir, utiliza un script de validación de código para verificar antes de reiniciar el servicio.
\n\nSi una conexión falla, extrae tanto tu código como el código del par y compáralos byte por byte:
\n\necho "Tu código: A1 B2 C3 D4 E5 F6 G7 H8 I9 J0 K1 L2 M3 N4 O5 P6"
\necho "Código del par: A1 B2 C3 D4 E5 F6 G7 H8 I9 J0 K1 L2 M3 N4 O5 P7"
¿Ves la diferencia al final? P6 vs. P7. Eso es un desajuste de código. El par rechazará la conexión.
\n\nCódigos Expirados o Obsoletos
\n\nLos códigos no están técnicamente "expirados" de la manera en que podría estar una contraseña. Sin embargo, si un par reinicia su servicio, su código cambia. No lo sabrás a menos que te contacten. Tu configuración aún tiene el código antiguo, por lo que las conexiones fallarán.
\n\nLa solución: pide al par su código actual y actualiza tu configuración. Si el par reinicia con frecuencia y no te notifica, considera usar un mecanismo de actualización dinámica o un script que consulte nuevos códigos periódicamente.
\n\nPara detectar códigos obsoletos en los registros, busca fallos de autenticación persistentes con un par específico:
\n\ngrep "autenticación fallida" /tmp/cccam.log | tail -20
Si ves que el mismo par falla repetidamente en la última hora, es probable que su código haya cambiado.
\n\nProblemas de Compatibilidad de Plataforma
\n\nUn código generado en una caja Enigma2 no funcionará si mueves la instalación a Linux. El binario es diferente, la firma de hardware es diferente y la salida DES es diferente.
\n\nDe manera similar, CCcam 2.1.x y 2.2.x pueden generar formatos de código ligeramente diferentes en el mismo hardware. Si estás actualizando CCcam, extrae un nuevo código después de la actualización y redistribúyelo a los pares.
\n\nPara verificar la plataforma:
\n\narchivo /usr/bin/cccam
Esto muestra el tipo de binario (x86, ARM, etc.). Si un par está en una plataforma diferente, su formato de código podría no ser directamente compatible con la lógica de validación de tu instalación.
\n\nProblemas de Firewall y NAT que bloquean la autenticación del código
\n\nIncluso si el código es correcto, la conexión falla si el firewall bloquea el puerto 16001 o 16002. La autenticación del código nunca ocurre porque el apretón de manos TCP falla primero.
\n\nPrueba la conectividad antes de preocuparte por los códigos:
\n\ntelnet peer.example.com 16001
Si esto se queda colgado o se agota el tiempo, el puerto está bloqueado. El código es irrelevante.
\n\n¿Detrás de NAT? El par necesita redirigir el puerto 16001 (o tu puerto personalizado) a su IP interna. Si no lo hacen, su código es inalcanzable desde Internet aunque sea correcto.
\n\nConfirma que el puerto del par está abierto y es alcanzable desde afuera:
\n\nnmap -p 16001 peer.example.com
Si el puerto está filtrado o cerrado, el problema es el firewall/NAT, no el código.
\n\nAnálisis de registros para errores de rechazo de código
\n\nCCcam registra decisiones de autenticación en /tmp/cccam.log. Busca mensajes de rechazo:
\n\ngrep -i "reject\\|fail\\|error" /tmp/cccam.log | grep -i code
Los mensajes varían según la versión, pero busca:
\n\n- \n
- "desajuste de código" \n
- "autenticación fallida" \n
- "código inválido" \n
- "peer rechazado" \n
Estos indican que el peer no reconoció tu código o que tú no reconociste el suyo. Verifica nuevamente que los códigos coincidan y que ambos lados estén utilizando binarios compatibles.
\n\nPara OScam, verifica oscam.log de manera similar:
\n\ngrep -i "autenticación\\|fallo\\|error" /var/etc/oscam/oscam.log
Los mensajes de OScam son típicamente más verbosos. Busca el nombre del lector (por ejemplo, "remote_peer") y rastrea lo que sucedió.
\n\nErrores Comunes de Configuración
\n\nLos errores de espacios en blanco son comunes. Algunos editores añaden espacios al final de las líneas:
\n\ncódigo = A1 B2 C3 D4 E5 F6 G7 H8 I9 J0 K1 L2 M3 N4 O5 P6 [espacio oculto aquí]
El analizador podría rechazar toda la línea. Usa un editor hexadecimal o valida la sintaxis de la configuración antes de reiniciar:
\n\ncat /etc/CCcam/CCcam.cfg | od -c | grep -i código
Esto muestra los bytes en bruto, incluyendo cualquier espacio en blanco oculto.
\n\nLa sensibilidad a mayúsculas y minúsculas generalmente no es un problema (se aceptan tanto AA como aa), pero diferentes versiones de CCcam pueden ser más estrictas. Mantente en mayúsculas para mayor consistencia.
\n\nLas discrepancias en el nodeid son otra trampa. El nodeid es independiente del código. Si configuras un nodeid en tu entrada de par pero el par está utilizando un nodeid diferente, la autenticación falla. Verifica tanto el código COMO el nodeid con el par.
\n\nSeguridad y Mejores Prácticas para Códigos de Servidor
\n\nLos códigos de servidor son sensibles. No los publiques en foros públicos o en pastebin. Si sospechas que tu código ha sido comprometido, reinicia tu servicio inmediatamente para invalidarlo y generar uno nuevo.
\n\nSolo comparte códigos de servidor con pares en los que confíes completamente. Un código filtrado le da a alguien la capacidad de suplantar tu instalación. No pueden usar tu tarjeta, pero pueden interceptar conexiones destinadas a ti.
\n\nMantén registros durante al menos 7 días para que puedas detectar cuándo se realizaron conexiones no autorizadas si un código se filtra. Busca intentos de conexión desde IPs desconocidas.
\n\nAl eliminar un par, reinicia tu servicio para forzar la regeneración del código. Esto evita que el antiguo par se reconecte con un código en caché (aunque esto es poco probable en la práctica).
\n\nPara configuraciones de producción con muchos pares, considera documentar los cambios de código en un archivo de registro privado con marcas de tiempo. Esto te ayuda a auditar qué pares tienen códigos actuales y cuáles podrían estar desactualizados.
\n\nAvanzado: Análisis a Nivel de Paquete de la Autenticación del Código del Servidor
\n\nSi una conexión está fallando y los registros no explican por qué, tcpdump puede revelar lo que realmente se está enviando:
\n\ntcpdump -i eth0 -A host peer.example.com and port 16001
No verás el código real en texto plano (está encriptado), pero puedes verificar que se están intercambiando datos y que la conexión no está agotando el tiempo a nivel de TCP.
\n\nBusca patrones: si el par cierra la conexión inmediatamente después de que envías datos, rechazaron tu código. Si la conexión se cuelga y se agota el tiempo, el firewall o el servicio del par no están respondiendo.
\n\nPara un análisis más profundo, algunos usuarios ejecutan tcpdump a un archivo y lo analizan en Wireshark, pero a este nivel de resolución de problemas generalmente estás enfrentando un problema conocido: código incorrecto, firewall o servicio no en funcionamiento.
\n\nDocker y Despliegues Contenerizados
\n\nSi estás ejecutando CCcam u OScam en un contenedor Docker, el código del servidor persiste a través de los reinicios del contenedor siempre que el volumen persistente esté montado. Si no estás usando un volumen, el código cambia cada vez que el contenedor se reinicia porque el entorno del contenedor es diferente.
\n\nPara asegurar códigos estables con Docker:
\n\ndocker run -v /opt/cccam:/root/cccam -p 16001:16001 cccam:latest
El-v /opt/cccam:/root/cccam monta un directorio del host en el contenedor. Los registros y configuraciones persisten, y también lo hace el código generado (suponiendo que el binario almacena el código de manera determinista).
Sin un volumen, extrae el código después de cada reinicio:
\n\ndocker exec cccam_container sh -c "telnet localhost 16001<<< 'código'"
Esto obtiene el código actual sin necesidad de inspeccionar los registros. Actualiza a tus pares con el nuevo código de inmediato.
\n\nP: ¿Cuál es la diferencia entre un código CCcam y un código OScam?
\nCCcam utiliza su propia implementación DES específica del binario para generar códigos, mientras que OScam utiliza una variante DES ligeramente diferente en el binario de oscam. Ambos producen códigos hexadecimales de 16 bytes que sirven para el mismo propósito de autenticación, pero el cifrado subyacente es diferente. Un código CCcam nunca funcionará en la configuración de OScam, y viceversa. Esto se debe a que las claves DES y los métodos de cálculo son distintos. Si estás utilizando ambos servicios en diferentes máquinas, necesitas códigos separados para cada uno. No son intercambiables.
\nP: ¿Con qué frecuencia expiran o cambian los códigos de servidor?
\nLos códigos de servidor no tienen un temporizador de expiración incorporado. Son estáticos hasta que reinicias el servicio. Una vez que reinicias CCcam u OScam, el código se regenera inmediatamente y el código antiguo se vuelve inválido. Algunas versiones de CCcam incluyen un componente de marca de tiempo en el cálculo DES, lo que significa que la sincronización de tiempo es importante; si el reloj de tu sistema se desincroniza significativamente, los pares pueden comenzar a rechazar tu código incluso sin un reinicio. En general, los códigos deben considerarse permanentes durante la duración de la ejecución de un servicio, no se rotan manualmente como las contraseñas. La única excepción es si deseas forzar intencionalmente la rotación del código reiniciando el servicio.
\nP: ¿Puedo usar el mismo código de servidor en múltiples dispositivos?
\nNo. Los códigos son específicos de nodo y están vinculados al binario y hardware de cada instalación. Si copias el mismo código en dos máquinas diferentes, ocurrirán conflictos porque la encriptación DES es específica del dispositivo. Cada máquina debe generar su propio código. En entornos Docker, si clonas un contenedor y comienzas ambas instancias, inicialmente tendrán el mismo código (porque son la misma imagen), pero tan pronto como una se reinicie, los códigos divergen. Para ejecutar múltiples instancias de CCcam en el mismo hardware, cada una debe tener su propio ID de nodo y generará su propio código único.
\nP: ¿Por qué mi código de servidor es rechazado por los pares?
\nVarias razones: (1) El código está desactualizado; el par se reinició y generó un nuevo código. Pídeles el código actual. (2) Desajuste de plataforma; tu CCcam y el del par están en diferentes arquitecturas (Enigma2 vs. Linux), y los formatos de código no son compatibles. (3) Errores de espacios en blanco o formato en el archivo de configuración; los espacios finales o el uso de mayúsculas y minúsculas pueden romper el análisis. (4) El firewall bloquea el puerto 16001 antes de que ocurra la validación del código. (5) Problemas de sincronización de tiempo; si el reloj de tu sistema está muy adelantado o atrasado, la suma de verificación DES falla. (6) El nodeid del par no coincide con lo que has configurado; verifica tanto el código COMO el nodeid con el par. (7) Diferentes versiones de CCcam con generación de código incompatible. Revisa los registros en busca de mensajes de "autenticación fallida" o "desajuste de código", verifica que el código coincida carácter por carácter y confirma que el puerto sea accesible.
\nP: ¿Cómo valido que un código de servidor esté correctamente formateado?
\nUn código de servidor válido siempre tiene 16 bytes de datos hexadecimales (32 caracteres hexadecimales en total). Verifica el formato con grep:echo "A1 B2 C3..." | grep -iE '^([0-9A-F]{2} ){15}[0-9A-F]{2}$'. Si el patrón coincide, el formato es válido. También puedes contar los bytes manualmente; si ves 16 pares separados por espacios como "AA BB CC...", está correctamente formateado. Para verificar que el código sea criptográficamente válido sin conectarte a pares, telnet a tu servicio local y solicita el código directamente:telnet localhost 16001 luego escribecódigo. Compara tu salida con lo que tienes en la configuración. Si coinciden, estás bien. Esto no requiere contactar a pares y arriesgarse a un rechazo.
Q: ¿Qué debo hacer si he compartido mi código de servidor y quiero revocar el acceso?
\nReinicia tu servicio CCcam u OScam de inmediato. Se genera un nuevo código automáticamente al iniciar, y el código antiguo se vuelve inválido en segundos. Cualquier par que use el código antiguo no podrá autenticarse. La revocación tiene efecto instantáneamente de tu lado. Los pares no se reconectarán con éxito porque su código almacenado en caché ya no coincide con el tuyo. Esta es una ventaja del sistema basado en códigos: no necesitas cambiar manualmente una contraseña o actualizar una lista blanca. Simplemente reiniciar invalida todos los códigos compartidos anteriormente. Si necesitas revocar el acceso a un par específico mientras mantienes a otros, puedes eliminar la entrada de ese par de tu archivo de configuración, pero reiniciar es la forma más rápida de invalidar todos los códigos a la vez. Por seguridad, reinicia de inmediato si sospechas que un código ha sido comprometido.
\n