Home

Mod simple Openwebif (cambiar puerto streaming-streamproxy)

Тайна го

Usuario Destacado
Loco por OpenSPA
5 Nov 2016
1.411
1.361
0
43
Os dejo una pequeña modificacion que uso para mi en plan casero para el que quiera cambiar el puerto streaming en imagen Openspa (editando puerto streamproxy en archivo /etc/inetd.conf)

Descarga archivo: pulsar

Introducir en el directorio del receptor:

/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/plugin.pyo

Reiniciar gui del receptor.
https://www.dropbox.com/s/cr8m2h140k1tj2x/plugin.pyo?dl=0
De esta manera al acceder a openwebif nos aparecera la opcion de cambiar puerto streaming:

9813761stream1.jpg


Tras cambiarlo y pulsar boton verde Guardar se habra producido lo siguiente:

* Modificacion del puerto streamproxy del archivo /etc/inetd.conf
* Se reinicia el busybox intetd
* Cuando pulsamos sobre un canal nos genera la direccion m3u con el puerto elejido
* Te genera archivo inetd.conf.back (para tener una copia seguridad de la anterior configuracion)

Ahora al pulsar sobre un canal en openwebif se crea el archivo m3u con el puerto streaming elejido visionandose a traves de ese puerto.

9813763stream2.png



9813764stream3.png


El pequeño codigo en plan casero añadido:

HTML:
if os.path.isfile('/etc/inetd.conf'):
                os.rename('/etc/inetd.conf', '/etc/inetd.conf.bak')
           with open('/etc/inetd.conf', 'w') as config_file:
                if os.path.isfile('/etc/inetd.conf.bak'):
                    for line in open('/etc/inetd.conf.bak'):
                            if line.startswith('/usr/bin/streamproxy', 30):
                    config_file.write('%s        stream    tcp6    nowait    root    /usr/bin/streamproxy        streamproxy\r\n' % (config.OpenWebif.streamport.value))
                           else:
                    config_file.write(line)

                else:
                    config_file.write('%s        stream    tcp6    nowait    root    /usr/bin/streamproxy        streamproxy\r\n' % (config.OpenWebif.streamport.value))
                config_file.close()
        os.system('/etc/init.d/inetd.busybox restart')
 

apriliars3

Usuario Destacado
Loco por OpenSPA
21 May 2016
497
28
0
44
Esto es igual que redirigir el puerto? Dejarán de intentar hacer streaming si desactivas la opción en Openwebif de pedir la contraseña para streaming?

A mi es que si lo activo no me va kodi con el plugin Enigma2, si la desactiva va perfectamente el streaming pero me avisan muchas veces de streaming de ips por Telegram, aunque en algunos casos no reproducen nada o le paro el streaming.
 

Тайна го

Usuario Destacado
Loco por OpenSPA
5 Nov 2016
1.411
1.361
0
43
Esto es igual que redirigir el puerto? Dejarán de intentar hacer streaming si desactivas la opción en Openwebif de pedir la contraseña para streaming?

A mi es que si lo activo no me va kodi con el plugin Enigma2, si la desactiva va perfectamente el streaming pero me avisan muchas veces de streaming de ips por Telegram, aunque en algunos casos no reproducen nada o le paro el streaming.

Esto es simplemente para cambiar el puerto de stream usando streamproxy desde el menu openwebif y que ademas te genere al dar al canal pues el m3u con el puerto elejido.

-------------------------------------

Openspa instalo por defecto la opcion streamproxy, ya que con el stream de enigma2 en caso de poner contraseña stream habilitada en openwebif al realizar streaming no te pedia ninguna pass para su realizacion, y si habilitabas stream con pass en configuracion enigma2, con algunos programas como vlc aunque pusieras la correcta no podias acceder al streaming.

------------------------------------

al cambiar el puerto streaming con la opcion que he puesto, es eso redirijes el puerto streaming en vez del que lleva la imagen por defecto que es el 8001, pues al que quieras. Imaginando que alguien sea tu ip publica, pero no sepa que puerto has puesto para el streaming pues evidentemente no podra conectarse para el visionado.

------------------------------

Respecto a lo de kodi, abre un nuevo hilo, ya que no tiene nada que ver con esta opcion.
 

morser

OpenSpa Team
Miembro del equipo
21 Mar 2007
7.207
1.307
0
57
Un detalle a tener en cuenta. El streamproxy intercepta todas las peticiones que vengan por el puerto especificado. Normalmente esta puesto el puerto 8001 porque es el que usa enigma para el streaming, si lo cambiamos por ejemplo al 8010 y hacemos una peticion de streaming por ese puerto, el streamproxy lo solicitara via webif, pero si hacemos la misma peticion por el puerto 8001 deberia de ir directamente a enigma sin pasar por el streamproxy ni webif y si no tenemos habilitada la autetificacion para stream en enigma, enviara el stream sin peticion de user y pass. No deberia de pasar nada siempre que no tengamos abierto el puerto 8001 en el router, simplemente tener cuidado con esto si cambiais el puerto en el streamproxy.
 

norhap

Usuario Destacado
Vip OpenSPA
5 Ene 2010
4.354
994
0
exacto que la gente sea consciente que con streamproxy por defecto instalado, omitimos un módulo de seguridad de enigma2.

Yo sin tampoco ser muy experto en esto, no soy partidiario de que el streamproxy salga por defecto instalado, omite un módulo de seguridad de E2, los usuarios deben ser conscientes de los pros y los contras de esto, aquel que pretenda ir fuera con su deco de casa, que instale las herramientas que crea conveniente, sin lugar a dudas la más fuerte de todas la VPN.

ejemplo:
Supongamos que un usuario OpenSPA (con streamproxy instalado por defecto) salga con su receptor fuera sin hacer nada de cambio de puerto, enigma2 ya no lo protege.
 
Última edición:

morser

OpenSpa Team
Miembro del equipo
21 Mar 2007
7.207
1.307
0
57
exacto que la gente sea consciente que con streamproxy por defecto instalado, omitimos un módulo de seguridad de enigma2.

Yo sin tampoco ser muy experto en esto, no soy partidiario de que el streamproxy salga por defecto instalado, omite un módulo de seguridad de E2, los usuarios deben ser conscientes de los pros y los contras de esto, aquel que pretenda ir fuera con su deco de casa, que instale las herramientas que crea conveniente, sin lugar a dudas la más fuerte de todas la VPN.

ejemplo:
Supongamos que un usuario OpenSPA (con streamproxy instalado por defecto) salga con su receptor fuera sin hacer nada de cambio de puerto, enigma2 ya no lo protege.

A ver si aclaramos.
Hay varias maneras de solicitar un stream:
1 - A traves del webif
Todos conocemos el hacer streaming entrando al webif y en la lista de canales hacer un clic sobre el icomo de la tele en el canal que queramos, pero hay otra manera, poniendo por ejemplo en el navegador
http://ip.del.deco/web/stream.m3u?ref=servicereference
En este caso no usamos el puerto 8001, usamos el puerto del webif (puerto 80), si esta cambiado habra que indicarlo en la url. Cuando lo usamos de esta manera, es necesario que en el webif le pongamos que pida user y pass porque nos podrian entrar si tenemos abierto el puerto 80 o el que hayamos puesto al exterior.

2 - A enigma2 directo por el puerto 8001
De este modo usamos una direccion asi:
http://id.del.deco:8001/servicereference
En este caso usamos el puerto 8001 y va directo a enigma, no pasa por el webif, asi que en este caso, si tenemos abierto el puerto 8001 tenemos que poner autenticacion http en enigma.

Es decir, que si tenemos los puertos 80 o el que usemos para el webif y el 8001 abiertos en el router tendriamos que poner autentificacion http en enigma y en el webif para poder estar seguros.

Ahora bien, si lo teniamos asi, hay algunos programas como el vlc y algun otro que dan problemas y no van o te piden el password todo el rato y no tira. Para evitar este problema viene de serie el streamproxy instalado.

Que hace el streamproxy?
intercepta una peticion del tipo http://id.del.deco:8001/servicereference que iria directamente a enigma y la convierte a http://127.0.0.1/web/stream.m3u?ref=servicereference por lo que ya no usa el servidor de stream de enigma y lo hace todo con el webif, asi que bastaria con tener configurado en el webif la autenticacion del stream. No creo que te saltes nada de la proteccion, ya que no usa el servidor de stream de enigma.

Ahora, como he dicho anteriormente, si cambiamos el puerto del streamproxy, como enigma trabaja con el 8001 podemos acceder por este puerto sin pasar por el webif, habria que tener cuidado de no abrirlo en el router y punto.
 
  • Me gusta
Reactions: Jubri

mily

Usuario
Amigo OpenSPA
12 Jul 2012
25
2
0
en cuanto cambias el puerto del openwebif, le das al verde y renicias el deco el oscam no arrancha, al cambiar el puerto otra vez al 8001 vuelve a funcionar perfectamente, alguna solucion?
 

morser

OpenSpa Team
Miembro del equipo
21 Mar 2007
7.207
1.307
0
57
en cuanto cambias el puerto del openwebif, le das al verde y renicias el deco el oscam no arrancha, al cambiar el puerto otra vez al 8001 vuelve a funcionar perfectamente, alguna solucion?
No sera que le has puesto al streamproxy el mismo puerto que necesita el oscam? Intentalo con otro numero de puerto diferente.
 

Тайна го

Usuario Destacado
Loco por OpenSPA
5 Nov 2016
1.411
1.361
0
43
Un detalle a tener en cuenta. El streamproxy intercepta todas las peticiones que vengan por el puerto especificado. Normalmente esta puesto el puerto 8001 porque es el que usa enigma para el streaming, si lo cambiamos por ejemplo al 8010 y hacemos una peticion de streaming por ese puerto, el streamproxy lo solicitara via webif, pero si hacemos la misma peticion por el puerto 8001 deberia de ir directamente a enigma sin pasar por el streamproxy ni webif y si no tenemos habilitada la autetificacion para stream en enigma, enviara el stream sin peticion de user y pass. No deberia de pasar nada siempre que no tengamos abierto el puerto 8001 en el router, simplemente tener cuidado con esto si cambiais el puerto en el streamproxy.

No es asi por lo menos como yo lo entiendo y en las pruebas realizadas:

imagen openspa.

Cambio puerto de streamproxy a 8005, y pongo en vlc 192.168.1.33:8005/1:0:19:7537:426:1:C00000:0:0:0:

Resultado: Me pide user y pass lo pongo y visionado ok.

Pongo en vlc: 192.168.1.33:8001/1:0:19:7537:426:1:C00000:0:0:0:

Resultado:

Código:
Su entrada no puede abrirse:
VLC es incapaz de abrir el MRL «http://192.168.1.33:8001/1:0:19:7537:426:1:C00000:0:0:0:». Vea el registro para más detalles.

Ya que yo entiendo que pasamos el stream al puerto elejido en /etc/inetd.conf ya que ahi lo estamos definiendo, por lo tanto los otros puertos no estarian habilitados para ello.
 

morser

OpenSpa Team
Miembro del equipo
21 Mar 2007
7.207
1.307
0
57
No es asi por lo menos como yo lo entiendo y en las pruebas realizadas:

imagen openspa.

Cambio puerto de streamproxy a 8005, y pongo en vlc 192.168.1.33:8005/1:0:19:7537:426:1:C00000:0:0:0:

Resultado: Me pide user y pass lo pongo y visionado ok.

Pongo en vlc: 192.168.1.33:8001/1:0:19:7537:426:1:C00000:0:0:0:

Resultado:

Código:
Su entrada no puede abrirse:
VLC es incapaz de abrir el MRL «http://192.168.1.33:8001/1:0:19:7537:426:1:C00000:0:0:0:». Vea el registro para más detalles.

Ya que yo entiendo que pasamos el stream al puerto elejido en /etc/inetd.conf ya que ahi lo estamos definiendo, por lo tanto los otros puertos no estarian habilitados para ello.

Tengo mis dudas, aunque la verdad es que no lo he probado. Si no me equivoco, cuando no tenemos instalado el streamproxy, no aparece en el inetd.conf ninguna entrada sobre el puerto 8001 y funciona, ya que en enigma se define un socket que esta escuchando el puerto 8001, independientemente de lo que tengamos en el inetd.conf.

Código:
eStreamServer::eStreamServer()
 : eServerSocket(8001, eApp)
{
    m_instance = this;
    e2avahi_announce(NULL, "_e2stream._tcp", 8001);
}

Al tener en el inetd.conf la entrada al streamproxy, cuando este esta instalado, lo ponemos antes que enigma y por lo tanto, cuando enigma lo va a usar se encuentra que ya esta en uso, por eso pasa todo por el streamproxy.

Con lo cual, yo entiendo que si el streamproxy esta escuchando otro puerto diferente, el socket de enigma por el 8001 deberia de seguir funcionando, pero ya te digo que no lo he probado.

Has reiniciado enigma despues del cambio? lo digo porque si ya estaba iniciado enigma cuando has hecho el cambio, ya se habia encontrado con el puerto usado y por eso igual no vuelve a crear el socket hasta despues de reiniciar enigma.
 
  • Me gusta
Reactions: Тайна го

Тайна го

Usuario Destacado
Loco por OpenSPA
5 Nov 2016
1.411
1.361
0
43
Tengo mis dudas, aunque la verdad es que no lo he probado. Si no me equivoco, cuando no tenemos instalado el streamproxy, no aparece en el inetd.conf ninguna entrada sobre el puerto 8001 y funciona, ya que en enigma se define un socket que esta escuchando el puerto 8001, independientemente de lo que tengamos en el inetd.conf.

Código:
eStreamServer::eStreamServer()
 : eServerSocket(8001, eApp)
{
    m_instance = this;
    e2avahi_announce(NULL, "_e2stream._tcp", 8001);
}

Al tener en el inetd.conf la entrada al streamproxy, cuando este esta instalado, lo ponemos antes que enigma y por lo tanto, cuando enigma lo va a usar se encuentra que ya esta en uso, por eso pasa todo por el streamproxy.

Con lo cual, yo entiendo que si el streamproxy esta escuchando otro puerto diferente, el socket de enigma por el 8001 deberia de seguir funcionando, pero ya te digo que no lo he probado.

Has reiniciado enigma despues del cambio? lo digo porque si ya estaba iniciado enigma cuando has hecho el cambio, ya se habia encontrado con el puerto usado y por eso igual no vuelve a crear el socket hasta despues de reiniciar enigma.

Si mirando el codigo es tal como lo comentas, pero en la practica no me reproducia, exacto era por el tema de socket, una vez reiniciado enigma funciona el streaming si autentificacion, por lo que como has comentado si cambiamos puerto streamproxy no tener 8001 abierto fuera de red
 

norhap

Usuario Destacado
Vip OpenSPA
5 Ene 2010
4.354
994
0
el streamproxy lo solicitara via webif, pero si hacemos la misma peticion por el puerto 8001 deberia de ir directamente a enigma sin pasar por el streamproxy ni webif y si no tenemos habilitada la autetificacion para stream en enigma, enviara el stream sin peticion de user y pass.
exacto, el streamproxy solicita la autentificación por Webif nada de E2, es más si la autentificas por E2 el stream se genera sin pedir user y pass siempre y cuando no tengas autentificado el streaming por http en el OpenWebif, cuando digo sin pedir user pass es a modo de fallo de tuner ( esto es lo que hago y el ejemplo que me citas en el otro post de como lo hago Тайна го) nada de vlc ni stream por OpenWebif.

Nociones de Seguridad:

streamproxy en sistema instalado: la autentificación http por streaming en OpenWebif es la importante la que NUNCA se debe dejar deshabilitada, se vulnera si dejas la de E2 autentificada y NO la del OpenWebif.

sin streamproxy instalado en sistema: Aunque habilites las dos opciones en OpenWebif autentificacion http y la http para streaming es vulnerable por ahi, la que importa es la autentificación http por E2.
 
Última edición:

mily

Usuario
Amigo OpenSPA
12 Jul 2012
25
2
0
No sera que le has puesto al streamproxy el mismo puerto que necesita el oscam? Intentalo con otro numero de puerto diferente.
no, pero he puesto otro puerto distinto al que intentaba y ya funciona no se que habra sido...

muchas gracias!
 

jaroprofe

Usuario
Fan de OpenSPA
1 Abr 2010
249
19
0
¿Este método funciona para todas las versiones del openspa y para todos los decos?
Lo digo pq lo he hecho en mi Azbox Premium + con OpenSpa 3.0 y cuando entro en openwif me aparece lo siguiente:
Código:
web.Server Traceback (most recent call last):

<type 'exceptions.KeyError'>: 'remotegrabscreenshot'
/usr/lib/python2.7/site-packages/twisted/web/server.py, line 132 in process
130
131
132
133
/usr/lib/python2.7/site-packages/twisted/web/server.py, line 167 in render
165
166
167
168
/home/openspa/openspa-oe-core/build-azboxhd/tmp/work/azboxhd-oe-linux/enigma2-plugin-extensions-openwebif-0.1+git4+235c2ce167d154b9973643f7128e68ab75faf703-r9.72/git/plugin/controllers/base.py, line 118 in render
116
117
118
119
/home/openspa/openspa-oe-core/build-azboxhd/tmp/work/azboxhd-oe-linux/enigma2-plugin-extensions-openwebif-0.1+git4+235c2ce167d154b9973643f7128e68ab75faf703-r9.72/git/plugin/controllers/base.py, line 141 in prepareMainTemplate
139
140
141
142
/home/openspa/openspa-oe-core/build-azboxhd/tmp/work/azboxhd-oe-linux/enigma2-plugin-extensions-openwebif-0.1+git4+235c2ce167d154b9973643f7128e68ab75faf703-r9.72/git/plugin/controllers/models/config.py, line 52 in getRemoteGrabScreenshot
50
51
52
53
/usr/lib/enigma2/python/Components/config.py, line 1577 in __getattr__
1575
1576
1577
1578

<type 'exceptions.KeyError'>: 'remotegrabscreenshot'
 

redsenator

D.E.P....8 de Mayo de 2018.
Fan de OpenSPA
7 Mar 2014
598
69
0
74
Hola me ocurre lo mismo version 7.2.004 ULTIMO 4k
web.Server Traceback (most recent call last):
exceptions.KeyError: 'responsive_enabled'
/usr/lib/python2.7/site-packages/twisted/web/server.py:190 in process
189
190
191
/usr/lib/python2.7/site-packages/twisted/web/server.py:241 in render
240
241
242
/mnt/storage/jenkinsWS/OpenSpa/openspa-7.2/builds/openspa/vuultimo4k/tmp/work/all-oe-linux/enigma2-plugin-extensions-openwebif/1.2+gitAUTOINC+24cc36708a-r0/git/plugin/controllers/base.py:140 in render
139
140
141
/mnt/storage/jenkinsWS/OpenSpa/openspa-7.2/builds/openspa/vuultimo4k/tmp/work/all-oe-linux/enigma2-plugin-extensions-openwebif/1.2+gitAUTOINC+24cc36708a-r0/git/plugin/controllers/root.py:77 in P_index
76
77
78
/usr/lib/enigma2/python/Components/config.py:1855 in __getattr__
1854
1855
1856
exceptions.KeyError: 'responsive_enabled'

Cual es el problema ? Gracias
:)
 

redsenator

D.E.P....8 de Mayo de 2018.
Fan de OpenSPA
7 Mar 2014
598
69
0
74
Hola me ocurre lo mismo version 7.2.004 ULTIMO 4k
web.Server Traceback (most recent call last):
exceptions.KeyError: 'responsive_enabled'
/usr/lib/python2.7/site-packages/twisted/web/server.py:190 in process
189
190
191
/usr/lib/python2.7/site-packages/twisted/web/server.py:241 in render
240
241
242
/mnt/storage/jenkinsWS/OpenSpa/openspa-7.2/builds/openspa/vuultimo4k/tmp/work/all-oe-linux/enigma2-plugin-extensions-openwebif/1.2+gitAUTOINC+24cc36708a-r0/git/plugin/controllers/base.py:140 in render
139
140
141
/mnt/storage/jenkinsWS/OpenSpa/openspa-7.2/builds/openspa/vuultimo4k/tmp/work/all-oe-linux/enigma2-plugin-extensions-openwebif/1.2+gitAUTOINC+24cc36708a-r0/git/plugin/controllers/root.py:77 in P_index
76
77
78
/usr/lib/enigma2/python/Components/config.py:1855 in __getattr__
1854
1855
1856
exceptions.KeyError: 'responsive_enabled'

Cual es el problema ? Gracias
:)

Os comento a los que hayan tenido este problema como solucionarlo de una forma algo chapuza al no saber cual es la causa.
Guardar el plugin.pyo que tengaís para poderlo volver a actualizar después poner el plugin.pyo con el parche tal como se esplica en el primer post una vez que reiniceís y modifiqueís el puerto deseado para streamer vereís como en mi caso la web no se ve correctamente pues bien poner ahora vuestro plugin.pyo original y reiniciais gui ya os funcionará la web bien de nuevo eso si el plugin ya no permite cambiar de nuevo el puerto de streamer pero en el primer paso que cambiaste vuestro puerto el pluigin parcheado hizo la tarea y redirecciona el streamer a traves del puerto que seleccionasteís.
Si de nuevo quereís cambiar el puerto pues toca hacer todo el proceso de nuevo.
Salu2 a To2
:):)
 

Тайна го

Usuario Destacado
Loco por OpenSPA
5 Nov 2016
1.411
1.361
0
43
Os comento a los que hayan tenido este problema como solucionarlo de una forma algo chapuza al no saber cual es la causa.
Guardar el plugin.pyo que tengaís para poderlo volver a actualizar después poner el plugin.pyo con el parche tal como se esplica en el primer post una vez que reiniceís y modifiqueís el puerto deseado para streamer vereís como en mi caso la web no se ve correctamente pues bien poner ahora vuestro plugin.pyo original y reiniciais gui ya os funcionará la web bien de nuevo eso si el plugin ya no permite cambiar de nuevo el puerto de streamer pero en el primer paso que cambiaste vuestro puerto el pluigin parcheado hizo la tarea y redirecciona el streamer a traves del puerto que seleccionasteís.
Si de nuevo quereís cambiar el puerto pues toca hacer todo el proceso de nuevo.
Salu2 a To2
:):)

Comentar, un poco el proceso, ya que en tu caso te ocurre al darle a guardar una vez cambiado el puerto, no al entrar en openwebif. Pensaba que era nada mas entrar.

Prueba con esta version modificada bajo la ultima version de openspa (en mi caso con giga 4k y ultima openspa sin problemas)

descarga prueba

Tras sobreescribrir el que tengas reinicia gui del receptor y luego prueba a ver si ya no te da error al guardar.
 

redsenator

D.E.P....8 de Mayo de 2018.
Fan de OpenSPA
7 Mar 2014
598
69
0
74
Muchas gracias, esta noche lo pruebo, y si efectivamente el error de navegación de Webif es despues de haber cambiado el puerto.

Gracias de nuevo ya contaré un saludo.
:)