Configuración de seguridad de Jitsi Meet

El siguiente post es una continuación del anterior, instalación de Jitsi Meet en un servidor privado, en que se explicaba como crear una instancia de Jitsi Meet. El objetivo es limitar el acceso libre a la aplicación limitando los usuarios que pueden crear salas y, por lo tanto, ser moderadores de la sesión. Para ello, se crearán usuarios que tengan que autenticarse mediante una contraseña, con lo que se limita la creación de salas.

Configuración de seguridad

A continuación, se muestran los pasos que hay que dar para limitar el uso a usuarios autorizados, para lo que habrá que concetarse al servidor mediante consola, con usuario root o con permisos sudo.

1. Cambiar la configuración por defecto.

Abrir el sisguiente archivo de configuración mediante la siguiente línea de código:

nano /etc/prosody/conf.avail/subdominio.dominio.com.cfg.lua

Nótese que subdominio.domino.com hay que cambiarlo por el host elegido en la instalación de Jitsi Meet.

Buscar la siguiente línea y,

authentication = "anonymous"

cambiarla por:

authentication = "internal_plain"

Al final se añade el virtualhost virtual para las autenticaciones.

VirtualHost "guest.subdominio.dominio.com"
authentication = "anonymous"
c2s_require_encryption = false

Nótese que subdominio.domino.com hay que cambiarlo por el host elegido en la instalación de Jitsi Meet.

2. Añadir una línea de código a un archivo de configuración.

Abrir el siguiente archivo.

nano /etc/jitsi/jicofo/sip-communicator.properties

Añadir la siguiente línea.

org.jitsi.jicofo.auth.URL=XMPP:subdominio.dominio.com

Nótese que subdominio.domino.com hay que cambiarlo por el host elegido en la instalación de Jitsi Meet.

3. Añadir a los usuarios.

Añadir usuarios mediante la siguiente línea de código.

prosodyctl register usuario subdominio.dominio.com password

Nótese que subdominio.domino.com hay que cambiarlo por el host elegido en la instalación de Jitsi Meet, usuario por el usuario real que va a ser creado y, password por la contraseña asociada al usuario.

Para borrar los usuarios (este paso solamente es necesario si se quiere dar de baja a un usuario creado con anterioridad):

prosodyctl deluser usuario@subdominio.dominio.com

Nótese que subdominio.domino.com o hay que cambiarlo por el host elegido en la instalación de Jitsi Meet y usuario por el usuario real que va a ser borrado.

Modificar el siguiente fichero:

/etc/jitsi/meet/subdominio.dominio.com-config.js

Nótese que subdominio.domino.com o hay que cambiarlo por el host elegido en la instalación de Jitsi Meet.

Descomentar la siguiente línea, es decir, tiene que quedar sin // delante, como a continuación:

anonymousdomain: 'guest.subdominio.dominio.com'

Nótese que subdominio.domino.com hay que cambiarlo por el host elegido en la instalación de Jitsi Meet.

5. Para finalizar, se reinician los sevicios.

systemctl restart prosody.service
systemctl restart jicofo.service
systemctl restart jitsi-videobridge2.service

En principio el sistema ya estaría limitado a los usuarios registrados y plenamente operativo. Cuando se intenta acceder a la aplicación a través de la web, el sistema pedirá un usuario y contraseña válidos, sin los cuáles no se podrá acceder. Si un usuario está intentando aceder a una sesión programada con antelación, no podrá hasta que el usuario autorizado cree la sala y por lo tanto tenga en exclusiva los permisos de moderador.

Espero que os haya servido.

Referencias

Collado, E. (2020). No sólo de hosting y redes vive el hombre. Recuperado de https://www.eduardocollado.com/2020/04/25/instalacion-y-configuracion-de-jitsi/

Cooper, E (2020). DigitalOcean: Cómo instalar Jitsi Meet en Ubuntu 18.04. Extraido de https://www.digitalocean.com/community/tutorials/how-to-install-jitsi-meet-on-ubuntu-18-04-es

Jitsi (s.f). Extraido de https://jitsi.org/

Voidnull (2019). Cómo instalar Jitsi en Ubuntu 18.04. Extraido de https://voidnull.es/como-instalar-jitsi-en-ubuntu-18-04/

Instalación de Jitsi Meet en un servidor privado

En estos tiempos marcados por la Covid 19, las videoconferencias han sido fundamentales en entornos profesionales, académicos y personales. El confinamiento y la implantación masiva del teletrabajo ha supuesto un gran aumento del tráfico de internet y, como consecuencia, la saturación puntual de las conexiones de internet, el colapso puntual de algunas de las plataformas de videoconferencias más utilizas y, notables problemas de seguridad en comunicaciones que se entienden privadas y confidenciales.

En el presente post se quiere destacar Jitsi-meet sobre todas las demás. Jitsi es un conjunto de proyectos de código abierto que permiten crear e implementar de manera sencilla soluciones de videoconferencia seguras, que engloba además aplicaciones de VoIP y mensajería instantánea a través de la web.

Es ampliamente conocida la plataforma de videoconferencia Jitsi Meet (meet.jit.si) que puede ser utilizada de forma totalmente gratuita. Lo que no es tan conocido que se trata de un proyecto de código abierto que está libremente disponible para su uso y desarrollo, con lo cual puede ser instalado en prácticamente cualquier servidor.

A continuación, se explica detalladamente como instalar Jitsi Meet en un servidor privado (se trata de una instancia VPS), de tal manera que se tenga una aplicación equivalente a la que está a disposición en meet.jit.si, pero que permite autogestionar los servicios de videoconferencia en momentos puntuales de sobrecarga de las aplicaciones más utilizadas, en condiciones de seguridad y privacidad.

La instalación de Jistsi Meet se ha efectuado en una instancia VPS con sistema operativo Ubuntu 18.04 y servidor web Apache.

Requisitos previos

Antes de realizar la instalación de Jitsi-meet, se debe configurar correctamente el host. En primer lugar debe registrarse la dirección IP del servidor en el dominio o subdominio que va a ser utilizado. El tipo de registro de DNS es A, tal y como se recoge en la siguiente tabla a modo de ejemplo.

Dominio o subdominioTipoIP
dominio.comA111.111.111.111
subdominio.dominio.comA111.111.111.111
Ejemplos de resgistro de las DNS.

Si no se tiene un dominio propio, se puede conseguir uno de forma gratuita en Feenom, con las extensiones .tk, .ml, ga, .cf y .gq.

Jitsi Meet utiliza Nginx como Proxy Inverso, aunque puede funcionar tanto con Nginx como Apache, aunque si no hay ninguno instalado, se instalará Ngnix por defecto. En este caso la instalación se realiza en una instancia VPS con el servidor web Apache ya instalado. Si Apache no está instalado, se instala de la siguiente manera a través de una conexión con el servidor mediante consola (recordar incluir el comando sudo si no se está como usuario root):

apt-get update
apt-get install apache2

Pasos para la instalación

A continuación, se muestran los pasos que hay que dar para la instalación de Jitsi Meet. Para ello hay que conectarse al servidor mediante consola, con usuario root o con permisos sudo.

1. Instalación de la llave de Jitsi para el repositorio.

wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | apt-key add -

2. Instalación del repositorio. En primer lugar se abre el siguiente archivo.

nano /etc/apt/sources.list.d/jitsi-stable.list

Se inserta la siguiente línea y se cierra.

deb https://download.jitsi.org stable/

3. Actualización del repositorio e instalación de Jitsi-meet.

apt-get update
apt-get install jitsi-meet

Durante la instalación se solicitará el nombre del host para poderse conectar a través de internet e instalar posteriormente el certificado let’s encrypt. Se debe insertar el mismo que se ha configurado con anterioridad. Por ejemplo: dominio.com o subdominio.dominio.com.

A continuación se dará la opción de generar un certificado autofirmado o instalar otro más tarde. Se selecciona la primera opción de generar un nuevo certificado autofirmado.

Apertura de puertos

Una vez instalado Jitsi Meet, el programa requiere que algunos puertos estén abiertos para poder comunicarse con los usuarios de videoconferencias y poderse autenticar en la solicitud del certificado.

PuertosUtilidad
80/tcpSolicitud del certificado TLS.
443/tcpCreación de salas de conferencias.
4443/tcp y 10000/udpTransmisión y recepción del tráfico cifrado de las llamadas.
Puertos que deben estar abiertos en la instancia VPS.

Los proveedores de servicios de instancias VPS suelen ofrecer herramientas para abrir y cerrar los distintos puertos.

Instalación del certificado let’s encrypt

Una vez que han sido abiertos los puertos correspondientes, procede la instalación del certificado let’s encrypt para que las comunicaciones sean cifradas y evitar la utilización de un certificado autofirmado, que los navegadores suelen interpretar como una amenaza, aunque no sea realmente así.

Si el programa certbot no está instalado, el primer paso es instalarlo mediante la siguiente línea de comandos.

add-apt-repository ppa:certbot/certbot
apt install certbot

A continuación se instala el certificado let’s encrypt.

/usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh

El sistema pedirá insertar una cuenta de correo electrónico.

Final de la instalación

En principio, el programa ya estaría instalado y perfectamente operativo. Para ello, habría que escribir en un navegador la dirección del host utilizado. Por ejemplo: dominio.com o subdominio.dominio.com.

La configuración por defecto permite que cualquier usuario pueda crear una sesión de videoconferencia, convirtiéndose de esta manera en moderador de la sesión, tal y como sería si se utilizase la plataforma de videoconferencia Jitsi Meet (meet.jit.si).

Para aumentar la seguridad, se puede incorporar una contraseña que evite que puedan unirse usuarios no deseados, aunque existen maneras para poder limitar el derecho de creación de salas a través de la creación de un usuario y contraseña, que se abordará en un post posterior.

Hay que recordar que Jitsi-meet está optimizado para el navegador Chrome o su versión libre Chromium. La utilización con otros navegadores puede conllevar alteraciones del servicio de videoconferencia.

Espero que este post os haya servido de ayuda y os anime a crear vuestra propia instancia de Jitsi Meet. De todas formas, en el siguiente enlace se pueden encontrar instancias de Jitsi alternativas totalmente operativas.

Referencias

Collado, E. (2020). No sólo de hosting y redes vive el hombre. Recuperado de https://www.eduardocollado.com/2020/04/25/instalacion-y-configuracion-de-jitsi/

Cooper, E (2020). DigitalOcean: Cómo instalar Jitsi Meet en Ubuntu 18.04. Extraído de https://www.digitalocean.com/community/tutorials/how-to-install-jitsi-meet-on-ubuntu-18-04-es

Jitsi (s.f). Extraído de https://jitsi.org/

Voidnull (2019). Cómo instalar Jitsi en Ubuntu 18.04. Extraido de https://voidnull.es/como-instalar-jitsi-en-ubuntu-18-04/