Está en la página 1de 11

6 DAYS Upcoming Tech Talk: Build an App With Laravel in 1 Hour

TUTORIAL

Cómo instalar Jitsi Meet en Debian 10


Debian 10

By Elliot Cooper
Published on June 11, 2020  5.7k
 Español 

El autor seleccionó a 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 videoconferencias de código abierto basada en WebRTC.  Un servidor de Jitsi Meet ofrece salas de
videoconferencia para varias personas a las que puede acceder sin necesidad de usar nada más que su navegador y ofrece una
funcionalidad comparable a la de las llamadas de conferencia de Zoom o Skype.  El beneficio de las conferencias de Jitsi es que
todos sus datos pasan únicamente a través de su servidor, y el cifrado TLS de extremo a extremo asegura que nadie pueda
entrometerse en sus llamadas. Con Jitsi, puede asegurarse de que su información privada permanezca así.

En este tutorial, instalará y configurará un servidor de Jitsi Meet en Debian 10. La configuración predeterminada permite a
cualquiera crear una nueva sala de conferencias. Este no es lo ideal para un servidor que esté públicamente disponible en Internet,
así que también deberá configurar Jitsi Meet para que solo los usuarios registrados puedan crear nuevas salas de conferencias.
Después de haber creado una sala de conferencias, todos los usuarios que tengan la dirección única, y la contraseña opcional,
podrán unirse.

Requisitos previos
Para completar esta guía, necesitará lo siguiente:

Un servidor de Debian 10 configurado conforme al tutorial Configuración inicial de servidores para Debian 10, con un usuario sudo
no root. El tamaño del servidor que necesite dependerá, mayormente, del ancho de banda disponible y la cantidad de
participantes que prevé que usen el servidor. La siguiente tabla le dará una idea de lo que se necesita.

Un nombre de dominio configurado para que apunte a su servidor. Para saber cómo apuntar dominios a Droplets de DigitalOcean,
siga el tutorial Cómo configurar un nombre de host con DigitalOcean. En esta guía, se utiliza el nombre de dominio de ejemplo
jitsi.your-domain .

Cuando elija un servidor para ejecutar su instancia de Jitsi Meet, deberá considerar los recursos del sistema necesarios para alojar
salas de conferencias. La siguiente información de referencia se obtuvo de una máquina virtual de un solo núcleo con ajustes de
video de alta calidad:

CPU Ancho de banda del servidor

Dos participantes 3% 30 Kbps de subida, 100 Kbps de bajada

Tres participantes 15 % 7 Mbps de subida, 6,5 Mbps de bajada

El aumento en el uso de recursos entre dos y tres participantes se debe a que Jitsi redirige los datos de la llamada directamente
entre los clientes cuando hay dos de ellos. Cuando hay más de dos clientes presentes, los datos de la llamada se redirigen a través
del servidor de Jitsi Meet. S C R OL L T O T OP
Paso 1: Configurar el nombre de host del sistema
En este paso, cambiará el nombre de host del sistema para que coincida con el nombre del dominio que quiere usar en su instancia
de Jitsi Meet y resolverá ese nombre de host con la IP del host local: 127.0.0.1 . Jitsi Meet utiliza estos dos ajustes al instalar y
generar sus archivos de configuración.

Primero, establezca el nombre de host del sistema con el nombre de dominio que utilizará en su instancia de Jitsi. El siguiente
comando establecerá el nombre de host actual y modificará /etc/hostname , que mantiene el nombre de host entre reinicios:

$ sudo hostnamectl set-hostname jitsi.your-domain

El comando que ejecutó se desglosa de la siguiente manera:

hostnamectl es un componente del conjunto de herramientas systemd que se utiliza para gestionar el nombre de host del sistema.

set-hostname establece el nombre de host del sistema.

Compruebe que el resultado sea correcto ejecutando lo siguiente:

$ hostname

Esto devuelve el nombre de host que estableció con el comando hostnamectl :

Output
jitsi.your-domain

A continuación, establecerá una asignación local del nombre de host a la dirección IP de bucle: 127.0.0.1 . Hágalo abriendo el
archivo /etc/hosts con un editor de texto:

$ sudo nano /etc/hosts

A continuación, añada la siguiente línea:

/etc/hosts

127.0.0.1 jitsi.your-domain

Asignar el nombre de dominio de su servidor de Jitsi a 127.0.0.1 le permite utilizar varios procesos en red que aceptan
conexiones locales los unos de los otros en la dirección IP 127.0.0.1 . Estas conexiones se autentican y cifran con un certificado
TLS, que se registra en su nombre de dominio. El hecho de asignar de forma local un nombre de dominio a 127.0.0.1 permite
utilizar el certificado TLS para estas conexiones de red locales.

Guarde y cierre su archivo.

Ahora, su servidor tiene el nombre de host que Jitsi requiere para la instalación. En el siguiente paso, abrirá los puertos del firewall
que requieren Jitsi y el instalador de certificados TLS.

Paso 2: Configurar el firewall


Cuando siguió la Guía de configuración inicial de servidores para Debian 10, habilitó el firewall UFW y abrió el puerto SSH. El
S C R OL L T O T OP
servidor de Jitsi requiere que algunos puertos estén abiertos para poder comunicarse con los clientes de las llamadas. Además, el
proceso de instalación de TLS requiere un puerto abierto para poder autenticar la solicitud del certificado.

Estos son los puertos que abrirá:

80/tcp , que se utiliza en la solicitud del certificado TLS.

443/tcp , que se utiliza para la página web de creación de salas de conferencias.

4443/tcp,10000/udp , que se utilizan para transmitir y recibir el tráfico cifrado de las llamadas.

Ejecute los siguientes comandos ufw para abrir estos puertos:

$ sudo ufw allow 80 /tcp


$ sudo ufw allow 443 /tcp
$ sudo ufw allow 4443 /tcp
$ sudo ufw allow 10000 /udp

Compruebe que todos se hayan añadido con el comando ufw status :

$ sudo ufw status

Verá el siguiente resultado si los puertos están abiertos:

Output
Status: active

To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
80/tcp ALLOW Anywhere
443/tcp ALLOW Anywhere
4443/tcp ALLOW Anywhere
10000/udp ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443/tcp (v6) ALLOW Anywhere (v6)
4443/tcp (v6) ALLOW Anywhere (v6)
10000/udp (v6) ALLOW Anywhere (v6)

Ahora, el servidor está listo para la instalación de Jitsi, que realizará en el siguiente paso.

Paso 3: Instalar Jitsi Meet


En este paso, añadirá el repositorio estable de Jitsi a su servidor y, luego, instalará el paquete de Jitsi Meet desde ese repositorio.
Esto garantiza que siempre ejecute el paquete estable de Jitsi Meet más reciente.

Primero, instale el paquete gnupg que permite al sistema gestionar las claves criptográficas GPG

$ sudo apt install gnupg

A continuación, descargue la clave GPG de Jitsi con la herramienta de descarga wget :

$ wget https://download.jitsi.org/jitsi-key.gpg.key
S C R OL L T O T OP
El administrador de paquetes apt utilizará esta clave GPG para validar los paquetes que descargue del repositorio de Jitsi.

Ahora, añada la clave GPG que descargó al conjunto de claves de apt usando la utilidad apt-key :

$ sudo apt-key add jitsi-key.gpg.key

Ahora, puede eliminar el archivo de la clave GPG, dado que ya no lo necesita:

$ rm jitsi-key.gpg.key

Ahora, añadirá el repositorio de Jitsi a su servidor al crear un archivo de código fuente nuevo que contenga el repositorio de Jitsi.
Abra y cree el archivo nuevo con su editor:

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

Añada esta línea al archivo para el repositorio de Jitsi:

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

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

Guarde y salga del editor de texto.

Por último, realice una actualización del sistema para recopilar la lista de paquetes del repositorio de Jitsi y, luego, instale el
paquete jitsi-meet :

$ sudo apt update


$ sudo apt install jitsi-meet

Durante la instalación de jitsi-meet , se le solicitará que ingrese el nombre del dominio que quiere utilizar en su instancia de Jitsi
Meet (por ejemplo, jitsi.your-domain ).

Nota: Mueva el cursor del campo de nombre de host para resaltar el botón OK con la tecla TAB . Presione ENTER cuando OK esté
resaltado para confirmar el nombre de host.

A continuación, se le mostrará un nuevo cuadro de diálogo que le preguntará si quiere que Jitsi cree y utilice un certificado TLS
autofirmado o que utilice uno que ya tenga:

S C R OL L T O T OP
Si no tiene un certificado TLS para su dominio de Jitsi, seleccione la primera opción: Generate a new self-signed certificate
Generar un nuevo certificado autofirmado).

Ahora, su instancia de Jitsi Meet está instalada con un certificado TLS autofirmado. Esto generará advertencias del navegador; por
lo tanto, obtendrá un certificado TLS firmado en el siguiente paso.

Paso 4: Obtener un certificado TLS firmado


Jitsi Meet utiliza certificados TLS para cifrar el tráfico de las llamadas de modo que nadie pueda escucharlas mientras se
transmiten por Internet. Los certificados TLS son los mismos que utilizan los sitios web para habilitar URL HTTPS.

Jitsi Meet ofrece un programa para descargar de forma automática un certificado TLS para su nombre de dominio que utiliza la
utilidad Certbot. Deberá instalar este programa para poder ejecutar la secuencia de comandos de instalación del certificado.

Primero, instale el paquete certbot con el siguiente comando:

$ sudo apt install certbot

Ahora, su servidor está listo para ejecutar el programa de instalación del certificado TLS proporcionado por Jitsi Meet:

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

Cuando ejecute la secuencia de comandos, se le presentará el siguiente mensaje que solicita una dirección de correo electrónico:

Output
-------------------------------------------------------------------------
This script will:
- Need a working DNS record pointing to this machine(for domain jitsi.example.com)
- 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 regularly

You 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 notifications
Enter your email and press [ENTER]:

Esta dirección de correo electrónico se presentará al emisor de certificados https://letsencrypt.org y se utilizará para notificarlo
sobre cuestiones de seguridad y otros asuntos relacionados con el certificado TLS. Debe ingresar una dirección de correo
S C R OL L T O T OP
electrónico aquí para proceder con la instalación. La instalación se completará sin más mensajes.
Cuando finalice, su instancia de Jitsi Meet estará configurada para utilizar un certificado TLS firmado para su nombre de dominio.
La renovación de certificados también se realizará de forma automática, ya que el instalador colocó una secuencia de comandos
de renovación en /etc/cron.weekly/letsencrypt-renew que se ejecutará cada semana.

Ahora, su servidor de Jitsi Meet está activo y disponible para realizar pruebas. Abra un navegador y diríjase al nombre de su
dominio. Puede crear una sala de conferencias nueva e invitar a otros a unirse.

Con la configuración predeterminada de Jitsi Meet, cualquier persona que visite la página de inicio de su servidor de Jitsi Meet
puede crear una sala de conferencias nueva. Se utilizarán los recursos del sistema de su servidor para ejecutar las salas de
conferencias, por lo que no es deseable que usuarios no autorizados puedan crearlas. En el siguiente paso, configurará su instancia
de Jitsi Meet para que únicamente usuarios registrados puedan crear salas de conferencias.

Paso 5: Bloquear la creación de conferencias


En este paso, configurará su instancia de Jitsi Meet para que únicamente usuarios registrados puedan crear salas de conferencias.
Los archivos que modificará fueron generados por el instalador y están configurados con su nombre de dominio.

En los siguientes ejemplos, se utilizará la variable your_domain , en lugar de un nombre de dominio.

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

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

Modifique esta línea:

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

...
authentication = "anonymous"
...

Con lo siguiente:

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

...
authentication = "internal_plain"
...

Esta configuración le indica a Jitsi Meet que exija la autenticación de nombre de usuario y contraseña antes de permitirles a
visitantes nuevos crear salas de conferencias.

A continuación, en el mismo archivo, añada la siguiente sección al final:

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

...
VirtualHost "guest. your_domain "
authentication = "anonymous"
c2s_require_encryption = false

Esta configuración permite que usuarios anónimos se unan a salas de conferencias creadas por usuarios autenticados. Sin
embargo, para poder ingresar a una sala, los invitados deben contar con la dirección única y la contraseña opcional.
S C R OL L T O T OP
Aquí, añadió guest. adelante de su nombre de dominio. Por ejemplo, para jitsi.your-domain , ingresaría guest.jitsi.your-domain .
El nombre de host con guest. solo lo utiliza Jitsi Meet de forma interna. Nunca lo ingresará en un navegador ni tendrá que crear un
registro de DNS para él.

Abra otro archivo de configuración en /etc/jitsi/meet/your_domain-config.js con un editor de texto:

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

Modifique esta línea:

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

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

Con lo siguiente:

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

...
anonymousdomain: 'guest. your_domain ',
...

Una vez más, al usar el nombre de host guest. your_domain que utilizó antes, esta configuración le indica a Jitsi Meet el nombre de
host interno que debe utilizar para los invitados no autenticados.

A continuación, abra /etc/jitsi/jicofo/sip-communicator.properties :

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

Añada la siguiente línea para completar los cambios de configuración:

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

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

Esta configuración apunta uno de los procesos de Jitsi Meet al servidor local que realiza la autenticación de usuarios que se
requiere.

Ahora, su instancia de Jitsi Meet está configurada para que únicamente usuarios registrados puedan crear salas de conferencias.
Cuando se cree una sala de conferencias, cualquier persona podrá unirse sin necesidad de ser un usuario registrado. Lo único que
necesitará es la dirección única de sala de conferencias única y la contraseña opcional establecida por el creador de la sala.

Ahora que Jitsi Meet se configuró para que solo usuarios autenticados puedan crear salas, debe registrar esos usuarios y sus
contraseñas. Usará la utilidad prosodyctl para hacerlo.

Ejecute el siguiente comando para añadir un usuario a su servidor:

$ sudo prosodyctl register user your_domain password

Los usuarios que añade aquí no son usuarios de sistema. Solo pueden crear salas de conferencias, pero no pueden Sacceder a su
C R OL L T O T OP

servidor mediante SSH.


Finalmente, reinicie Jitsi Meet y los procesos de Nginx para cargar la nueva configuración:

$ sudo systemctl restart prosody.service


$ sudo systemctl restart jicofo.service
$ sudo systemctl restart jitsi-videobridge2.service
$ sudo systemctl restart nginx

Ahora, la instancia de Jitsi Meet solicitará un nombre de usuario y una contraseña en un cuadro de diálogo para la creación de
salas de conferencias.

Ahora, tiene un servidor de Jitsi Meet instalado y configurado de forma segura.

Conclusión
En este artículo, implementó un servidor de Jitsi Meet que puede utilizar para alojar salas de videoconferencias seguras y privadas.
Puede ampliar su instancia de Jitsi Meet con instrucciones de la wiki de Jitsi Meet.

¿Qué calidad tuvo la traducción? 👍 👎

Was this helpful? Yes No    


0

Report an issue

About the authors

Elliot Cooper Kathryn Hancox

I have been a Linux Systems Administrator and Editor


technical content creator for more than 20 years. I am
passionate about using and promoting OSS.

S C R OL L T O T OP
Still looking for an answer?

 Ask a question  Search for more help

REL ATED

Join the DigitalOcean Community

Join 1M other developers and:


Get help and share knowledge in Q&A
Subscribe to topics of interest
Get courses & tools that help you grow as a developer or small business owner

Join Now

Cómo centralizar los registros con Journald en Debian 10


Tutorial

Cómo ejecutar múltiples versiones de PHP en un servidor usando Apache y PHP FPM en Debian 10
Tutorial

Comments

0 Comments

Leave a comment...

Sign In to Comment

This work is licensed under a Creative


Commons Attribution-NonCommercial-
ShareAlike 4.0 International License.

S C R OL L T O T OP
GET OUR BIWEEKLY NEWSLETTER HOLLIE'S HUB FOR GOOD

Sign up for Infrastructure as a Working on improving health


Newsletter. and education, reducing
inequality, and spurring
economic growth? We'd like to
help.

BECOME A CONTRIBUTOR

You get paid; we donate to tech


nonprofits.

Featured on Community Kubernetes Course Learn Python 3 Machine Learning in Python Getting started with Go Intro to Kubernetes

DigitalOcean Products Virtual Machines Managed Databases Managed Kubernetes Block Storage Object Storage Marketplace VPC
Load Balancers

Welcome to the developer cloud

DigitalOcean makes it simple to launch in the


cloud and scale up as you grow – whether you’re
running one virtual machine or ten thousand.

Learn More

Company Products Community


S C R OL L T O T OP
About Pricing Tutorials
Leadership Products Overview Q&A
© 2021 DigitalOcean, LLC. All rights reserved. Blog Droplets Tools and Integrations
Careers Kubernetes Tags
Partners Managed Databases Write for DigitalOcean
Referral Program Spaces Presentation Grants
Press Marketplace Hatch Startup Program
Legal Load Balancers Shop Swag
Security & Trust Center Block Storage Research Program
API Documentation Open Source
Documentation Code of Conduct
Release Notes

Contact

Get Support
Trouble Signing In?
Sales
Report Abuse
System Status
Share your ideas

S C R OL L T O T OP

También podría gustarte