Cómo instalar Jitsi Meet en Ubuntu 22.04

El autor seleccionó el Open Internet/Free Speech Fund para recibir una donación como parte del programa Write for DOnations .

Introducción

Jitsi Meet es una aplicación de videoconferencia de código abierto basada en WebRTC . Un servidor Jitsi Meet ofrece salas de videoconferencia para varias personas a las que se puede acceder con solo un navegador y que ofrecen una funcionalidad comparable a una llamada en conferencia de Zoom o Skype. La ventaja de una conferencia Jitsi es que todos los datos pasan únicamente a través de su servidor. El cifrado TLS de extremo a extremo garantiza que nadie pueda espiar la llamada. Con Jitsi, puede asegurarse de que su información privada se mantenga así.

En este tutorial, instalará y configurará un servidor Jitsi Meet en Ubuntu 22.04. La configuración predeterminada de Jitsi permite que cualquier persona que pueda explorar el servidor cree una nueva sala de conferencias, lo que no es ideal para un servidor disponible públicamente en Internet. También configurará Jitsi Meet para que solo los usuarios registrados puedan crear nuevas salas de conferencias. Después de crear la sala de conferencias, cualquier persona puede unirse a ella si tiene la dirección única y la contraseña opcional.

Prerrequisitos

Antes de comenzar esta guía, necesitará lo siguiente:

  • Un servidor Ubuntu 22.04 con un usuario no root habilitado con sudo y un firewall, que puede configurar siguiendo la Configuración inicial del servidor con Ubuntu 22.04 . El tamaño del servidor que necesita dependerá del ancho de banda disponible y la cantidad de participantes que espera en las conferencias. La siguiente tabla le dará una idea de lo que se requiere.
  • Un nombre de dominio configurado para apuntar a su servidor. Utilice la Guía de inicio rápido de DNS para apuntar dominios a servidores de DigitalOcean. Esta guía utiliza el nombre de dominio de ejemplojitsi.your_domain.

Al elegir un servidor para ejecutar su instancia de Jitsi Meet, debe tener en cuenta los recursos del sistema para alojar salas de conferencias. La siguiente información comparativa se recopiló de una máquina virtual de un solo núcleo con configuraciones de video de alta calidad:

UPC Ancho de banda del servidor
Dos participantes 5% 30 Kbps de subida, 100 Kbps de bajada
Tres participantes 15% 5 Mbps de subida, 3 Mbps de bajada

El aumento en el uso de recursos entre dos y tres participantes se debe a que Jitsi enrutará los datos de las llamadas directamente entre los clientes cuando haya dos. Los datos de las llamadas se enrutan a través del servidor Jitsi Meet cuando hay más de dos clientes presentes.

Inicie sesión en su servidor como usuario no root y con sudo habilitado antes de comenzar el Paso 1.

Paso 1: Configuración del nombre de host del sistema

En este paso, cambiará el nombre de host del sistema para que coincida con el nombre de dominio que desea utilizar para su instancia de Jitsi Meet. También resolverá localmente ese nombre de host a la IP pública de su servidor. Jitsi Meet utiliza ambas configuraciones cuando instala y genera sus archivos de configuración.

En primer lugar, configure el nombre de host del sistema con el nombre de dominio que utilizará para su instancia de Jitsi. El siguiente comando configurará el nombre de host actual y modificará el /etc/hostnameque contiene el nombre de host del sistema entre reinicios:

  1. sudo hostnamectl set-hostname jitsi.your_domain

Ingrese su contraseña cuando se le solicite. El comando que ejecutó se desglosa de la siguiente manera:

  • hostnamectl:Una utilidad del conjunto de herramientas systemd para administrar el nombre de host del sistema.
  • set-hostname:Establece el nombre de host del sistema.

Compruebe que el nombre de host se haya configurado con el siguiente comando:

  1. hostname

Este comando devolverá el nombre de host que configuraste con el hostnamectlcomando:

Outputjitsi.your-domain

A continuación, deberá configurar una asignación local del nombre de host del servidor a su dirección IP pública. Para ello, abra el archivo /etc/hostscon nano o su editor de texto favorito:

  1. sudo nano /etc/hosts

El contenido de este archivo se parece al siguiente:

/etc/hosts

# Your system has configured 'manage_etc_hosts' as True.# As a result, if you wish for changes to this file to persist# then you will need to either# a.) make changes to the master file in /etc/cloud/templates/hosts.debian.tmpl# b.) change or remove the value of 'manage_etc_hosts' in#     /etc/cloud/cloud.cfg or cloud-config from user-data#127.0.1.1 server1 server1127.0.0.1 localhost# The following lines are desirable for IPv6 capable hosts::1 localhost ip6-localhost ip6-loopbackff02::1 ip6-allnodesff02::2 ip6-allrouters

Luego, agregue la siguiente línea debajo de la 127.0.0.1 localhostlínea:

/etc/hosts

...public_ip jitsi.your_domain...

Por ejemplo, si la IP pública de su servidor es 1.2.3.4, el archivo actualizado se vería así:

/etc/hosts

# Your system has configured 'manage_etc_hosts' as True.# As a result, if you wish for changes to this file to persist# then you will need to either# a.) make changes to the master file in /etc/cloud/templates/hosts.debian.tmpl# b.) change or remove the value of 'manage_etc_hosts' in#     /etc/cloud/cloud.cfg or cloud-config from user-data#127.0.1.1 server1 server1127.0.0.1 localhost1.2.3.4 jitsi.your_domain# The following lines are desirable for IPv6 capable hosts::1 localhost ip6-localhost ip6-loopbackff02::1 ip6-allnodesff02::2 ip6-allrouters

Guarde y cierre el archivo.

Ahora, su servidor tiene la configuración de nombre de host y dirección IP que Jitsi requiere cuando se instala. En el siguiente paso, abrirá los puertos de firewall que Jitsi y el instalador del certificado TLS necesitan.

Paso 2: Configuración del firewall

Cuando siguió la configuración inicial del servidor con Ubuntu 22.04 , habilitó el firewall UFW y abrió el puerto SSH. El servidor Jitsi necesita algunos puertos adicionales abiertos para comunicarse con los participantes de la llamada. El proceso de instalación de TLS también requiere un puerto abierto para autenticar la solicitud de registro del certificado.

Si aún no ha permitido el tráfico SSH a través de UFW, ejecute el siguiente comando:

  1. sudo ufw allow OpenSSH

A continuación, abra los siguientes puertos para Jitsi:

  • 80/tcp:Puerto utilizado en la solicitud de registro del certificado TLS.
  • 443/tcp:Puerto utilizado para la página web de creación de salas de conferencias.
  • 10000/udp 3478/udp 5349/tcp:Puertos que transmitirán y recibirán el tráfico de llamadas cifradas.

Ejecute los siguientes ufwcomandos para abrir estos puertos:

  1. sudo ufw allow 80/tcp
  2. sudo ufw allow 443/tcp
  3. sudo ufw allow 3478/udp
  4. sudo ufw allow 5349/tcp
  5. sudo ufw allow 10000/udp

Comprueba que se hayan añadido todos con el ufw statuscomando:

  1. sudo ufw status

Recibirá el siguiente resultado para indicar que estos puertos están abiertos (incluido OpenSSH):

OutputStatus: activeTo                         Action      From--                         ------      ----OpenSSH                    ALLOW       Anywhere80/tcp                     ALLOW       Anywhere443/tcp                    ALLOW       Anywhere3478/udp                   ALLOW       Anywhere5349/tcp                   ALLOW       Anywhere10000/udp                  ALLOW       AnywhereOpenSSH (v6)               ALLOW       Anywhere (v6)80/tcp (v6)                ALLOW       Anywhere (v6)443/tcp (v6)               ALLOW       Anywhere (v6)3478/udp (v6)              ALLOW       Anywhere (v6)5349/tcp (v6)              ALLOW       Anywhere (v6)10000/udp (v6)             ALLOW       Anywhere (v6)

Es posible que vea el siguiente estado inactivo en lugar de los puertos si no ha habilitado UFW:

OutputStatus: inactive

Si es así, debe habilitarlo ufw. Ejecute el siguiente comando y responda y cuando se le solicite que lo habilite ufw:

  1. sudo ufw enable

Vuelva a verificar el estado para asegurarse de que los puertos estén abiertos.

Con los puertos abiertos, el servidor está listo para la instalación de Jitsi, que completará en el siguiente paso.

Paso 3: Instalar Jitsi Meet

Ahora agregará los repositorios APT de Jitsi y Prosody a su servidor. Prosody es un servidor de chat XMPP de código abierto que Jitsi utiliza para mensajería y autenticación de administrador. Luego instalará el paquete Jitsi Meet desde su repositorio, lo que garantizará que siempre esté ejecutando el último paquete Jitsi Meet estable.

Primero, descargue la clave GPG de Jitsi con la curlutilidad de descarga:

  1. curl https://download.jitsi.org/jitsi-key.gpg.key -o jitsi-key.gpg.key

En este comando, -oespecifica el nombre del archivo donde se guardarán los datos de la clave descargada. El aptadministrador de paquetes utilizará esta clave GPG para validar los paquetes que descargará del repositorio Jitsi.

A continuación, agregue la clave GPG al conjunto de claves de su sistema con el siguiente gpgcomando:

  1. sudo gpg --output /usr/share/keyrings/jitsi-key.gpg --dearmor jitsi-key.gpg.key

Con este gpgcomando, se --outputgenera un nombre de archivo para guardar el llavero y --dearmordescomprimir la clave en un formato que pueda utilizar APT.

Ahora agregará el repositorio Jitsi a su servidor creando un nuevo archivo de fuentes APT que contenga el repositorio Jitsi. Abra y cree el nuevo archivo con el siguiente comando:

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

Añade esta línea al /etc/apt/sources.list.d/jitsi-stable.listarchivo:

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

deb [signed-by=/usr/share/keyrings/jitsi-key.gpg] https://download.jitsi.org stable/

Guardar y salir del editor.

A continuación, deberá seguir los mismos pasos para agregar el paquete Prosody. Descargue la clave GPG de Prosody:

  1. curl https://prosody.im/files/prosody-debian-packages.key -o prosody-debian-packages.key

Luego, agrega la clave al llavero de tu servidor:

  1. sudo gpg --output /usr/share/keyrings/prosody-keyring.gpg --dearmor prosody-debian-packages.key

A continuación, abra un nuevo archivo de fuentes para Prosody:

  1. sudo nano /etc/apt/sources.list.d/prosody.list

Agregue la siguiente línea al archivo de fuentes de Prosody actualmente vacío:

/etc/apt/sources.list.d/prosody.list

deb [signed-by=/usr/share/keyrings/prosody-keyring.gpg] http://packages.prosody.im/debian jammy main

Guardar y salir del editor.

Ahora puedes eliminar las claves GPG que descargaste porque ya no son necesarias:

  1. rm jitsi-key.gpg.key prosody-debian-packages.key

Por último, realice una actualización del sistema para recopilar la lista de paquetes de los nuevos repositorios y luego instale el jitsi-meetpaquete:

  1. sudo apt update
  2. sudo apt install jitsi-meet

Presione ypara confirmar la instalación de los paquetes cuando se le solicite.

Durante la instalación, jitsi-meetse le solicitará que ingrese el nombre de dominio (por ejemplo, jitsi.your-domain) que desea utilizar para su instancia de Jitsi Meet.

Utilice la TABtecla para mover el cursor desde el campo de nombre de host hasta resaltar el botón OK . Presione ENTERcuando OK esté resaltado para enviar el nombre de host.

Luego se le mostrará un nuevo cuadro de diálogo que le preguntará si desea que Jitsi cree y use un certificado TLS autofirmado o use uno existente:

Si no tiene un certificado TLS para su dominio Jitsi, seleccione la opción Generar un nuevo certificado autofirmado .

Tu instancia de Jitsi Meet ya está instalada con un certificado TLS autofirmado. Recibirás advertencias en el navegador si aún no tienes un certificado TLS, por lo que recibirás un certificado TLS firmado en el siguiente paso.

Paso 4: obtención de un certificado TLS firmado

Jitsi Meet utiliza certificados TLS para cifrar el tráfico de llamadas, de modo que nadie pueda espiar su llamada mientras viaja por Internet. Los certificados TLS son el mismo mecanismo que utilizan los sitios web para habilitar páginas protegidas con HTTPS.

Jitsi utiliza la utilidad certbot para obtener y administrar certificados TLS gratuitos, pero seguros y que cumplen con los estándares de la industria. Debe instalar esta utilidad antes de que Jitsi pueda obtener el certificado que necesita.

Instale certbot con el siguiente comando:

  1. sudo apt install certbot

Presione ypara confirmar la instalación del paquete certbot cuando se le solicite.

Jitsi Meet proporciona un script para descargar automáticamente un certificado TLS para su dominio. Ejecute este script de instalación de certificado proporcionado por Jitsi Meet /usr/share/jitsi-meet/scripts/install-letsencrypt-cert.shcon el siguiente comando:

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

El script imprime la siguiente información cuando lo ejecuta y le solicita que proporcione una dirección de correo electrónico:

Output-------------------------------------------------------------------------This script will:- Need a working DNS record pointing to this machine(for domain jitsi.your_domain)- Download certbot-auto from https://dl.eff.org to /usr/local/sbin- Install additional dependencies in order to request Let’s Encrypt certificate- If running with jetty serving web content, will stop Jitsi Videobridge- Configure and reload nginx or apache2, whichever is used- Configure the coturn server to use Let's Encrypt certificate and add required deploy hooks- Add command in weekly cron job to renew certificates regularlyYou need to agree to the ACME server's Subscriber Agreement(https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf)by providing an email address for important account notificationsEnter your email and press [ENTER]:

Esta dirección de correo electrónico se enviará al emisor del certificado https://letsencrypt.orgy se utilizará para notificarle sobre cuestiones de seguridad y otros asuntos relacionados con el certificado. Debe introducir una dirección de correo electrónico aquí para continuar con la instalación.

El script completará la instalación y configuración de un certificado SSL para su servidor Jitsi sin ninguna otra intervención del usuario.

La configuración predeterminada de Jitsi Meet es que cualquier persona que visite la página de inicio de su servidor Jitsi Meet puede crear una nueva sala de conferencias. Este modo predeterminado utilizará los recursos del sistema de su servidor para ejecutar la sala de conferencias y no es recomendable para usuarios no autorizados. En el siguiente paso, actualizará esa configuración.

Paso 5: Bloqueo de la creación de la sala de conferencias

Ahora configurará su servidor Jitsi Meet para permitir que solo los usuarios registrados puedan crear salas de conferencias.

Los archivos que editará fueron generados por el instalador y configurados con su nombre de dominio. La variable jitsi.your_domainse utilizará en lugar de su nombre de dominio en los siguientes ejemplos.

Primero, abre con un editor de texto:/etc/prosody/conf.avail/jitsi.your_domain.cfg.lua

  1. sudo nano /etc/prosody/conf.avail/your_domain.cfg.lua

A continuación, busque la línea que necesita editar en este archivo utilizando la función de búsqueda de nano: CTRL+W. Presione CTRL+Wy luego ingrese authentication = "anonymous"en el campo de búsqueda. Presione ENTERpara ejecutar la búsqueda. Su entrada de búsqueda debería verse como el contenido del cuadro rojo a continuación:

Esta búsqueda llevará el cursor a la línea que necesita editar. Edite la siguiente línea desde su configuración actual:

/etc/prosody/conf.avail/jitsi.tu_dominio.cfg.lua

        authentication = "anonymous"

Para una nueva configuración:

/etc/prosody/conf.avail/jitsi.tu_dominio.cfg.lua

        authentication = "internal_plain"

Esta configuración le dice a Jitsi Meet que fuerce la autenticación de nombre de usuario y contraseña antes de permitir la creación de una sala de conferencias por parte de un nuevo visitante.

En el mismo archivo, agregue la siguiente sección al final del archivo:

/etc/prosody/conf.avail/tu_dominio.cfg.lua

...VirtualHost "guest.jitsi.your_domain"    authentication = "anonymous"    c2s_require_encryption = false    modules_enabled = {            "bosh";            "ping";            "pubsub";            "speakerstats";            "turncredentials";            "conference_duration";    }

Esta configuración permite que cualquier usuario se una a las salas de conferencias creadas por un usuario autenticado. Sin embargo, el invitado debe tener la URL única (y una contraseña opcional) para ingresar.

Aquí, agregaste guest.al frente tu nombre de dominio. Por ejemplo, el nombre correcto para poner aquí jitsi.your_domaines guest.jitsi.your_domain. El guest.nombre de host lo usa Jitsi Meet internamente, por lo que nunca lo ingresarás en un navegador ni necesitarás un registro DNS separado para el guest.nombre de host.

Cuando termine, guarde y cierre el archivo./etc/prosody/conf.avail/jitsi.your_domain.cfg.lua

A continuación, abra otro archivo de configuración con un editor de texto:/etc/jitsi/meet/jitsi.your_domain-config.js

  1. sudo nano /etc/jitsi/meet/jitsi.your_domain-config.js

Utilice CTRL+Wnuevamente la herramienta de búsqueda para buscar anonymousdomain:, lo que lo llevará a la siguiente línea:

/etc/jitsi/meet/tu_dominio-config.js

        // anonymousdomain: 'guest.example.com',

Edite esta línea para que se parezca a la siguiente eliminando las barras dobles //al comienzo de la línea:

/etc/jitsi/meet/tu_dominio-config.js

        anonymousdomain: 'guest.jitsi.your_domain',

Utilizará el nombre de host que utilizó anteriormente. Esta configuración le indica a Jitsi Meet qué nombre de host interno utilizar para los invitados no autenticados. Guarde y cierre el archivo.guest.jitsi.your_domain

A continuación, crea y abre /etc/jitsi/jicofo/sip-communicator.properties:

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

Agregue la siguiente línea para completar los cambios de configuración:

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

org.jitsi.jicofo.auth.URL=XMPP:jitsi.your_domain

Esta configuración dirige uno de los procesos de Jitsi Meet al servidor local que realiza la autenticación de usuario que ahora se requiere. Cuando haya terminado, guarde y cierre el archivo.

Ahora, su instancia de Jitsi Meet está configurada para que solo los usuarios registrados puedan crear salas de conferencias. Después de crear una sala de conferencias, cualquier persona puede unirse a ella sin ser un usuario registrado. Todo lo que necesita es la dirección única de la sala de conferencias y una contraseña opcional establecida por el creador de la sala.

prosodyctlAhora que Jitsi Meet está configurado para requerir usuarios autenticados para la creación de salas, debe registrar a estos usuarios y sus contraseñas. Para ello, utilizará la utilidad.

Ejecute el siguiente comando para agregar un usuario a su servidor:

  1. sudo prosodyctl register user your_domain password

El usuario que agregue aquí no es un usuario del sistema. Solo podrá crear una sala de conferencias y no podrá iniciar sesión en su servidor a través de SSH.

Al ejecutar este comando, es posible que vea la siguiente advertencia:

Advertencia de lua5.1

general             warn        Lua 5.1 has several issues and support is being phased out, consider upgrading

El lua5.1paquete sigue siendo una dependencia obligatoria para Prosody y no supone ningún riesgo de seguridad para el sistema que lo utiliza. La dependencia lua5.1se irá eliminando a medida que se sigan desarrollando Prosody y Jitsi Meet.

Por último, reinicie todos los procesos de Jitsi Meet para cargar la nueva configuración:

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

El servidor Jitsi Meet ya está completamente instalado, configurado y en funcionamiento. En el paso final, creará una nueva sala de conferencias.

Paso 6: Apertura de una sala de conferencias e invitación a los participantes

Ahora puede buscar y comenzar a utilizar su nuevo servidor Jitsi Meet. Abra su navegador e ingrese su nombre de dominio Jitsi (con https) en la barra de direcciones.

Para iniciar una reunión, presione el botón Iniciar reunión en la página de inicio:

Al hacer clic en el botón Iniciar reunión , se iniciará una nueva reunión. Se le preguntará inmediatamente si es el anfitrión (el administrador de la reunión) en el siguiente cuadro de diálogo:

Debes hacer clic en el botón Soy el anfitrión para continuar. Después de hacer clic en ese botón, se te solicitará que ingreses tu nombre de usuario y contraseña de administrador en el siguiente campo:

El nombre de usuario y la contraseña son los que configuraste en el Paso 5 con la prosodyctlutilidad. Ingresa el nombre de usuario y la contraseña y haz clic en Iniciar sesión , lo que creará la nueva reunión y te establecerá como moderador.

Ahora que la reunión está abierta y en marcha, puedes invitar a los participantes. Haz clic en el icono de participantes en el panel inferior:

Esta acción abre un panel en la parte derecha. Haga clic en el botón Invitar a alguien :

Esta acción abrirá el cuadro de diálogo Invitar a más personas . Copie la URL única de la reunión haciendo clic en el icono de copia:

Ahora puede pegar la URL de la reunión en un correo electrónico o programa de chat para enviarla a cualquier persona que desee que asista a la reunión. No necesitarán un nombre de usuario y contraseña para acceder a la reunión después de que la haya creado.

Puede probar esto usted mismo después de haber creado una reunión abriendo una nueva pestaña del navegador en modo incógnito y pegando la URL de la reunión en ella. Podrá unirse a la reunión como un nuevo participante sin necesidad de un nombre de usuario y una contraseña.

Conclusión

En este artículo, implementó un servidor Jitsi Meet que puede usar para alojar salas de videoconferencia privadas y seguras. Puede ampliar su instancia Jitsi Meet con las instrucciones del Manual de Jitsi . Además de acceder a sus conferencias en un navegador, también puede unirse a conferencias con una aplicación de Apple y Google .

SUSCRÍBETE A NUESTRO BOLETÍN 
No te pierdas de nuestro contenido ni de ninguna de nuestras guías para que puedas avanzar en los juegos que más te gustan.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio