PyStreamy | Realiza stream seguro enigma2

Pulsar para soporte en grupo en foro

¿ Que hace Pystreamy ?

¿ Sabias que cuando realizamos stream desde nuestro receptor a otros dispositivos a traves del puerto 8001 o 8002 o cualquier otro de los puertos que podamos usar, este servicio se realiza a través de protocolo http, y que si esta comunicacion es interceptada por una tercera persona la informacion viaja sin cifrar ?

Esto implica que cualquier persona que acceda a esta informacion como hemos mencionado que va sin cifrar va a tener a su disposicion los datos de acceso a nuestro receptor, es decir nuestro usuario y password, y como ademas en enigma2 el usuario y password de streaming coinicide con el usuario y password del sistema pues tendran acceso completo a nuestro receptor.

HTTP-HTTPS

Los receptores enigma2 no tienen la posibilidad de usar el protocolo https mediante streaming, en el caso de usar openvpn o zerotier no tenemos problema ya que estos protocolos ya cifran la comunicación.

¿ Pero que ocurre si el dispositivo cliente no tenemos la posibilidad de usar openvpn ni zerotier, o no deseamos usar estos protocolos ?

En este caso el compañero @amoyse del grupo telegram jungle-team ha creado un script python que a traves de un reverse proxy nos permite que el streaming se realice de una manera segura y cifrada a traves del protocolo https, al que ha denominado PyStreamy que vamos a tratar en este articulo.

 PyStreamy | Manual de uso

PyStreamy creacion de @amoyse que nos va a permitir realizar streaming vitaminado, que como vimos en  la introducción de este articulo el emitir nuestro streaming de la siguiente manera:

  • De manera segura por protocolo https
  • De manera autentificada el acceso, lo que nos permitirá no tener que usar el usuario y password del receptor, si no el del servidor https.
  • Descargar lista canales de los favoritos de nuestro receptor
  • Usar url de las listas canales de los favoritos de nuestro receptor
  • Listas canales con picones
  • Url para epg 3 dias koala para movistar+

 

REQUISITOS:

  • Autentificacion enlace http en openwebif en NO
  • Habilitar autentificacion para streaming http en openwebif en NO
  • Habilitar autentificacion para streaming http en configuracion de enigma en NO

Pasos previos:

Antes de proceder a la instalación de pystreamy necesitaremos realizar un par de pasos antes, necesitamos crear un dominio en duckdns, que es gratuito y después crear unos certificados Let’s Encrypt.

Enlaces a los tutoriales correspondientes

1.- Crear dominio en duckdns

2.- Certificados Let’s Encrypt

Instalacion pystreamy

En primer lugar nos descargamos pystreamy de la  siguiente pagina descarga (y lo introducimos en el directorio /tmp de nuestro receptor

A continuacion por terminal ejecutamos el siguiente comando:

opkg install /tmp/(version de pystreamy)

Ejemplo:

opkg install /tmp/pystreamy_0.2.6_all.ipk

Configuracion pystreamy

PyStreamy busca el archivo de configuración en la siguiente ubicación del receptor, el cual se  introduce en el receptor en la instalacion del .ipk:

  • /etc/enigma2/pystreamy.conf

Los parametros de configuracion de PyStreamy son los siguientes:

 

Parámetro Funcion
bind valor por defecto 0.0.0.0, parámetro que no se debe cambiar para la generación de listas canales para en caso de usar openvpn o zerotier
port Puerto de acceso en red local, por defecto 3128, ejemplo introducimos en el navegador web  https://192.168.1.45:3128/services
webif_port El puerto de openwebif, por defecto es 80, en caso de haberlo cambiado en el menu de openwebif introducir en este parametro el nuevo puerto.
zap Por defecto True, es decir cuando realizamos streaming y cambiamos de canal se producira zaping en el receptor, utilidad para receptores de un solo tuner, en caso contrario introduciremos False para no realizar zaping en el receptor
ext_scheme Por defecto vacío, en este caso no se activa, necesario introducir https para la activacion del servicio
ext_host Introducimos el dominio para acceder fuera de nuestra red, ejemplo con dominio ducksdns, jungleteam.duckdns.org
ext_port Puerto de acceso para fuera de nuestra red local, por defecto 3129, sera el puerto que deberemos abrir en nuestro router a la ip del receptor, ejemplo introduciremos en nuestro navegador web  https://jungleteam.duckdns.org:3129/services
user Nombre usuario de acceso a nuestro servidor, por ejemplo jungle
password Contraseña de acceso a nuestro servidor, por ejemplo jungleteam
guest_user Da lo posibilidad de crear invitados para acceder a las listas streaming, es decir puedes crear con este parametro distinos usuarios para acceder al streaming, ejemplo: guest_user=jungle1:pepito, puedes crear tantas lineas como usuarios quieras crear.
keyfile Ruta ubicacion a key.pem
certfile Ruta ubicacion a cert.pem
log_level Por defecto 20 (info), valores admitidos: 50 (critical), 40 (error), 30 (warning), 10 (debug), 0(noset), el archivo log se guarda en: /var/log/pystreamy.log

 

 Iniciar | parar | reiniciar Pystreamy

Tras la instalacion de pystreamy se nos crea un daemon de activacion  en /etc/init.d/pystreamy  que permite iniciar el servicio en un renicio completo del receptor, en el caso que deseemos iniciar, parar o reiniciar el servicio podemos ejecutar los siguientes comandos:

/etc/init.d/pystreamy start

/etc/init.d/pystreamy stop

/etc/init.d/pystreamy restart

IMPORTANTE:

  • Cuando realizamos cualquier cambio en el archivo de configuracion de pystreamy es necesario reiniciar el servicio.

pystreamy | generacion listas m3u

Una vez hemos iniciado el servicio pystreamy vamos a ver como realizar el uso del mismo, mediante unos ejemplos de configuracion del archivo /etc/enigma2/pystreamy.conf:

Ejemplo 1

bind=0.0.0.0
port=3128
deco_ip=
webif_port=80
zap=True
ext_scheme=
ext_host=
ext_port=3129
keyfile=/etc/enigma2/certs/key.pem
certfile=/etc/enigma2/certs/cert.pem
user=manolo
password=terww455
log_level=20En este caso:

  • Realizamos zap en el receptor a traves del streaming, utilidad para receptores de un solo tuner
  • No usamos dominio para acceder fuera de nuestra red
  • Usamos usuario y contraseña para acceder
  • Protocolo es http

En este ejemplo introducimos en nuestro navegador web : http://ipdelreceptor:3128/services  y accederiamos a la lista de canales de nuestro receptor, este ejemplo seria basicamente para usar en red local

Ejemplo 2

bind=0.0.0.0
port=3128
deco_ip=

webif_port=80
zap=False
ext_scheme=https
ext_host=jungleteam.duckdns.org
ext_port=3129
user=root
password=jungleteam
keyfile=/etc/enigma2/certs/key.pem
certfile=/etc/enigma2/certs/cert.pem
log_level=20

En este caso:

  • Vamos a usar transcode ademas de streaming normal
  • No realizamos zap en el receptor
  • usamos dominio para acceder fuera de nuestra red local
  • Usamos usuario y contraseña para acceder

En este ejemplo introducimos en nuestro navegador web : https://dominioduckdns:3129/services  y accederiamos a la lista de canales de nuestro receptor, todo bajo protocolo https y las podemos generar tanto para ip local como para dominio duckdns asi como normales y transcodificadas

Una vez hemos accedido a la interfaz web podemos pulsar sobre cualquiera de la listas para descargar en nuestro pc la lista generada para ser usada en cualquier dispositivo o pulsar boton derecho sobre las mismas para obtener una  url de la lista para introducir dicha url en las aplicaciones de los dispositivos si no deseamos realizar la descarga.

  • Las listas de canales llevan picones de los canales
  • En la interfaz web como observamos tambien podemos usar url para asignar epg a los canales

ATENCION:

  • Si tenemos habilitado dominio en la opcion ex_host, es posible que en algunos router de las  compañias de internet no sea posible acceder a traves de red local, y sea necesario acceder desde red exterior.

Pystreamy | ejemplos de uso

Una vez que ya hemos hecho un recorrido de configuración y activación de pystreamy, ahora vamos a ver ejemplo de uso en diferentes aplicaciones, y la potencia de esta herramienta para la realización de streaming seguro a través del protocolo https.

Partiendo de la base que hemos realizado una configuración tipo ejemplo 2 anterior, es decir con uso de protocolo https y dominio duckdns, pues pulsamos en este ejemplo boton derecho sobre la lista para obtener el enlace url a la misma

En este caso obtendremos la siguiente url:

https://root:jungleteam@jungleteam.duckdns.org:3129/channels?s=0&t=e

  • En el caso de usar VLC introducimos dicha url obtenida en medios de red de vlc

Nos aparecer el listado de canales correspondiente a la url que hemos obtenido:

Y lo que es mas importante de todo, el streaming se realiza totalmente seguro y cifrado a traves del protocolo https, como vemos a continuacion:

De la misma manera podemos usar tanto las listas m3u descargadas en la interfaz web de pystreamy asi como las url sin necesidad de descarga, al igual que en VLC, en diferentes aplicaciones como kodi, iptvextrem, tiviomate, smartiptv…… y lo mas importante usando el protocolo https el streaming como se ha indicado se realiza cifrado y sin necesidad de usar el usuario del sistema de enigma2.

Status Conexion

A partir de las versiones 4.0 es posible ver la conexiones conectadas a nuestro receptor, asi podemos saber quien esta usando el streaming en nuestro receptor, para ello en el navegador introducimos:

https://dominioduckdns:3129/status

A partir de version 4.1 es posible parar streaming dentro de estatus

Crear usuarios streaming

A partir de la version 5.0 de pystreamy es posible la creacion de distintos usuarios para que accedan a nuestras listas canales, para ello se realiza con el parametro:

guest_user=usuarios:password

Podemos crear tantas lineas como usuarios deseemos tener, un ejemplo para dos usuarios:

Ahora cuando accedemos a /services nos apareceran tantas listas como usuarios hallamos añadido

Y en status podemos ver los usuarios conectados

 

Creditos

Dar las gracias al compañero @amoyse del grupo telegram jungle-team  por la creacion, desarrollo y liberar esta poderosa herramienta para nuestros receptores enigma2, que nos permite de una manera facil el poder realizar la emision de streamin a traves de protocolo https de una manera totalmente segura.

Related posts

5 Thoughts to “PyStreamy | Realiza stream seguro enigma2”

  1. Como es posible que con Teamblue 6.3 me funcione el PyStreamy y probando OpenAtv 6.4, 6.3, con el mismo fichero de Teamblue 6.3 configurado, no me funcione, esto es increible

    1. No tiene mucho sentido, si aportas más datos o algún tipo de error te podremos ayudar

  2. Antonio Perez

    Hola. La misma cosa que comentado David. OpenAtv 6.4 no hay manera de dar la luz. La pagina de https:// iplan:3128/services o con la configuracion exterior:3129 sale ERR_SSL_PROTOCOL_ERROR y con http:// ERR_EMPTY_RESPONSE. A la pagina de OpenWebif de receptor entra perfectamente. *Receptor Vu Solo 2

    1. Tiene pinta de que los certificados no están bien, ¿has seguido el tutorial de los certificados? Si tienes dudas pasa por el grupo de Telegram

    2. R00dr1

      A mi me pasaba lo mismo, En OpenWebif debe de estar des-habilitada la autetificacion de HTTP y HTTPS si puede tener autentificacion.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

A %d blogueros les gusta esto: