lunes, 20 de febrero de 2017

Proyecto Servidor de Streaming || RED5 Media Server


RED5 Media Server

Instalación:

Lo primero que tenemos que hacer es crear nuestra maquina Lubunu/Ubuntu y como configuración importante de la maquina virtual lo unico destacado es que el adaptador de red este en modo puente (para futuras pruebas con clientes).

A continuación y una vez este todo instalado, lo primero que haremos sera actualizar los repositorios de nuestra maquina y tener todo a la ultima versión y al día, basta con:

sudo apt-get update
sudo apt-get upgrade

Uno vez este todo actualizado, ya podemos ponernos manos a la obra con la instalación de RED5, lo primero que necesitamos como requisito indispensable es la instalación de java, ya que RED5 hace uso de el y de Flash web.

Para ello:

sudo apt-get install default -jre
sudo apt-get install default -jdk

Cuando ya lo tengamos instalado, vamos a descargarnos la ultima versión de RED5 desde:


Preferiblemente la versión comprimida, ya que mas adelante tenemos que descomprimirla mediante comandos.




Una vez lo tengamos descargado, mediante la terminal iremos al directorio donde lo descargamos y lo descomprimiremos mediante el comando:

sudo tar -xzvf [Nombre del archivo descargado]



Una vez lo tengamos descomprimido se nos habrá creado la carpeta red5-server la cual vamos a tener que copiar en un directorio especifico.

Para copiarla vamos a usar el comando nautilus ya que tenemos que copiarla en la carpeta "share" del usuario y sin usar nautilus y sin ser root no nos dejara, por ello ejecutaremos el comando nautilus como root.

Una vez con la interfaz de nautilus, copiamos la carpeta a /usr/share

Ahora nos dirigiremos a /usr/share/red5-server y si ejecutamos el script red5.sh ya se nos iniciara el servicio RED5

sudo ./red5.sh

Una vez ejecutado si vamos al navegador y ponemos localhost:5080 se nos abrirá la interfaz de RED5

Aunque parezca que ya funciona si trasteamos un poco nos dirá que necesitamos Adobe Flash Player para hacer que todo funcione correctamente, para ello basta con ejecutar el comando:

sudo apt-get install flashplugin-installer

y reiniciar el navegador, aunque por si acaso, detenemos el script y lo volvemos a 
ejecutar y ahora si abrimos el navegador. Si volvemos a acceder a la interfaz 
de RED5 y nos fijamos, veremos como ahora en la parte central de la pagina 
de inicio ya nos caragara el video de presentacion de RED5 lo cual significa 
que hemos instalado correctamente el flash player.


Funcionamiento:

Para empezar a realizar pruebas lo mejor es instalar una demo para RED5 llamada oflaDemo


Esta demo nos permitirá entre otras funciones, compartir vídeos para que por ejemplo un cliente pueda verlos (algo como Netflix en la actualidad).

Streaming:

Para hacer streaming vamos a necesitar un software adicional que sea capaz de retransmitir a el servidor (RMTP) que le indiquemos, en nuestro caso usaremos Wirecast ya que posee esta opción.

Wirecast tiene una versión de prueba que podemos descargar en:


Una vez lo tengamos, podemos por ejemplo capturar nuestro escritorio y retransmitirlo al servidor a través de la demo Publisher de RED5.




miércoles, 8 de febrero de 2017

Server | Apache : Certificación segura


Apache

A lo largo de esta entrada, vamos a crear una certificación de autoridad y vamos a añadirla a nuestro navegador web, Así mismo a través de una petición y una clave, las añadiremos a uno de nuestros host virtuales de apache y probaremos el protocolo seguro https en uno de nuestros sitios web.

Lo primero que necesitamos es la herramienta tinyca2, la instalamos, y la ejecutamos


Aquí tendremos que crear una certificación de autoridad, por ejemplo algo como


Una vez la creemos, nos aparecerá por pantalla, y en la terminal saldrán todos los comandos que se han ejecutado para llevar a cabo la creación del mismo


Ahora crearemos la petición para crear una certificación para nuestro "cliente" basado en la autoridad certificadora de nuestro servidor


En la petición sera importante poner como nombre común, el nombre de la web que va a contar con el protocolo https y el certificado que añadiremos, en nuestro caso sera www.aulasri.com (aunque ponga Sergio Rodriguez, es www.aulasri.com)

 

Una vez creada la petición, vamos a firmarla para el cliente




Una vez firmada, y creada la petición, así como el certificado de la autoridad certificadora, vamos a crear un directorio en nuestro Home donde guardaremos, los certificados exportados y las claves



Aquí vamos a exportar el certificado generado a partir de la petición que creamos, lo exportaremos como PKCS ya que con esta opción se nos exporta tanto el certificado como la clave juntos y no por separado (otras opciones que podemos elegir)




Si ahora vamos al directorio donde lo exportamos, veremos el archivo en el cual si ponemos la clave, podremos ver la información del certificado


Ahora vamos a añadir al navegador que utilizamos, nuestra autoridad certificadora, para ello (en caso de Firefox) nos dirigimos a preferencias, avanzado, administrador de certificados, y aquí pulsamos en importar



En caso de que no haber exportado la autoridad certificadora, simplemente nos dirigiremos a ella en tinyca2 y le daremos a exportar




Ahora si que si, ya lo importaríamos en firefox y nos saldría en la sección de autoridades nuestra autoridad certificadora





Ahora nos dirigiremos a Webmin, lo primero que tenemos que mirar es si tenemos el modulo de apache ssl activado, si no lo tenemos, basta con activarlo, cuando ya lo tengamos nos iremos a nuestro host virtual de Apache que queremos que cuente con la certificación y el protocolo https y en las opciones SSL



Donde tenemos que:

1) Activar SSL
2) Indicar las tres rutas para, el certificado para el cliente, la clave privada que exportamos y la autoridad certificadora
3) Cambiar la opción del certificado SSL del cliente a Required

Así mismo no tiene del todo importancia, pero en el host virtual que estamos configurando esto, también podemos poner como puerto por defecto el 443 ( es decir, https)

El siguiente paso que tenemos que hacer en Webmin es ir a las opciones SSL pero a nivel general del modulo Apache, las opciones que encontramos al lado de los host virtuales que tenemos, aquí tenemos que poner la clave que tenemos para nuestro certificado





Uno de los últimos pasos a tener cuenta sera añadir también nuestro certificado (cliente) al navegador, igual que hicimos con el de la autoridad certificadora, lo importamos





Y ahora si intentamos acceder al sitio y todo ha salido bien, lo primero que nos saldrá sera la petición de identificación del usuario con nuestro certificado


 

Y después de esto, funcionará a la perfección con el protocolo https y la certificación




viernes, 3 de febrero de 2017

Server | Apache: Autentificación


Apache

A lo largo de esta entrada vamos a tratar el tema del control de acceso en nuestra maquina servidor a través del servicio Apache.

Para ello, lo primero que vamos a hacer es crear un nuevo directorio donde en el post anterior creamos los directorios/index, por ejemplo en el ww3, dentro de este directorio crearemos uno nuevo llamado private, que sera la parte de la web a la que habrá que acceder mediante autentificación



Aquí crearemos dos archivos, uno sera el index de nuestra pagina y otro sera un archivo oculto que almacenara los usuarios y passwords al cual llamaremos .htpasswords

Una vez creado todo esto, nos dirigiremos desde Webmin al directorio /var/www/ww3/private de aulasri.com y aquí, entraremos en la sección de control de acceso, donde crearemos uno nuevo


Aquí especificaremos entre otros parámetros, el nombre de la autentificación, el tipo, los usuarios que podrán acceder y la ruta que tenemos que indicar donde se almacenaran los usuarios

Si guardamos esta configuración y aplicamos los cambios, al volver a entrar veremos como ahora al lado de la ruta que indicamos nos aparecerá la opción de editar usuarios


Si hacemos click en esta nueva opción, veremos que nos indica que no hay usuarios en dicho fichero, pero se nos ofrece la opción de añadirlos mediante Webmin


Añadiremos pues, tres usuarios para realizar pruebas, dos alumnos y un profesor



Una vez añadidos, si vamos al documento que creamos veremos como se han añadido dichos usuarios y las contraseñas cifradas


De esta forma, si aplicamos cambios, como siempre, y intentamos acceder a la zona private de aulasri.com veremos como se nos pide identificación


Para probar distintos usuarios y parámetros podemos probar por ejemplo a que solo pueda identificarse determinado usuario, en este caso por ejemplo el alumno1


De esta forma por ejemplo el usuario profesor no podría identificarse



Ahora vamos a probar otro método de proteger un directorio, para ello, iremos a nuestra carpeta private y borraremos el archivo con los usuarios y contraseñas


Ahora, en Webmin, en el apartado otros, podemos encontrar una opción llamada Protected Web Directories


Aquí seleccionaremos el directorio a proteger entre otros posibles parámetros que se nos ofrecen


Después de esto, si accedemos a nuestro directorio private veremos como se nos han creado automáticamente dos nuevos ficheros


Desde este apartado en Webmin también se nos permite añadir usuarios



Otras de las opciones disponibles y de las que podemos hacer uso, se encuentra en las opciones de Apache, si entramos en estas opciones a través del propio directorio protegido


Luego en la sección de control de acceso


Aquí encontraremos unas opciones para restringir el acceso, las cuales nos permitirian por ejemplo denegar el acceso a toda una red



De esta forma, podemos denegar el acceso a todos pero permitirlo por ejemplo para servidor.aulasri.com


Importante entonces, que marquemos la opción "Deny then allow"


jueves, 2 de febrero de 2017

Server | Apache: Prioridades


Apache

A lo largo de esta entrada se va a desarrollar la explicación propia para las prioridades del servicio apache y los Host Virtuales que tengamos.

Para ver estas prioridades, vamos a tener que realizar unas configuraciones.

Vamos a ir a nuestro directorio /var/www aunque con permisos, para ello ejecutamos en consola el comando pcmanfm y acto seguido nos dirigimos a la ruta ya mencionada donde crearemos un nuevo directorio llamado www2


Dentro de este nuevo directorio crearemos un archivo del tipo index.html donde pondremos algún código de ejemplo que nos diga mediante un titulo o párrafo alguna frase.


Ahora para probar el funcionamiento de lo que acabamos de añadir, tenemos dos opciones o bien creamos un nuevo host virtual o bien escogemos el que se nos creaba por defecto y le modificamos los parámetros de la siguiente forma


Dejando como Document Root la ruta del directorio que habíamos creado y como Server Name nuestro ya conocido servidor.aulasri.com

De esta forma, al acceder a través del navegador a dicha dirección nos mostrara nuestro archivo index.html asociado a ese Server Name


Si ahora creamos otro Host Virtual con otra dirección IP y por ejemplo como Document Root el predeterminado de Apache que tenemos en la carpeta /var/www/html y como puerto por defecto el 80

 


[MUY IMPORTANTE siempre aplicar los cambios para ver reflejado lo que modificamos/añadimos]

Veremos como ahora al acceder a dicha dirección nos carga efectivamente la pagina por defecto de Apache



De esta forma según a donde accedamos y bajo que parámetros nos cargara una cosa u otra.

Si creamos mas directorios y mas host virtuales como los que vamos a ver en la imagen de a continuación


Ya entran en juego las prioridades de las cuales hablamos al principio de la entrada, es decir:

1º La IP: si no coincide lo descarta, si encuentra "any" lo dejaría pero si hay alguno que coincida con la misma IP se queda con ese. En cambio si no le queda ninguna IP se iría directamente al "por defecto", es decir, "Default Server".

2º El puerto: este sería el siguiente criterio, de los que no han sido aún descartados se buscaría el que tuviera el mismo puerto, si solo hay uno se quedaría con ese, si tiene un puerto diferente lo descartaría, si está la opción "any" también valdría (siempre en el caso que no estuviera el número de puerto correcto).

3º El Nombre: si hay dos se quedaría con el primero alfabéticamente mirando el nombre de fichero.

4º El Archivo

Aunque de los anteriores los mas usados son tanto la IP como el puerto