Cómo instalar Matrix Synapse Chat en Ubuntu 20.04 LTS
Matrix es un nuevo ecosistema de comunicación descentralizada en tiempo real para servicios abiertos federados de mensajería instantánea y VoIP. Proporciona API RESTful HTTP JSON para construir servidores de chat distribuidos y federados sin un único punto de control y fallo, y proporciona todas las referencias para las API.
Synapse es una implementación del servidor doméstico de matrix creada por un equipo de matrix y escrita en Python/Twisted. Con este software, podemos implementar la forma matrix de comunicación descentralizada, podemos crear nuestro servidor doméstico y almacenar toda la información personal de los usuarios, el historial de chat, crear la sala para uso propio, etc.
En este tutorial, te mostraremos cómo instalar y configurar Matrix Synapse en Ubuntu 20.04. Configuraremos Matrix Synapse con Nginx como proxy inverso y aseguraremos la instalación utilizando el SSL proporcionado por Letsencrypt.
Requisitos previos
Para esta guía, instalaremos Matrix Synapse en el último Ubuntu 20.04 con 1Gb de RAM, 25GB de espacio libre en disco y 2CPUs. Además, debes tener acceso a tu servidor con privilegios de root.
¿Qué vamos a hacer?
- Instalar Matrix Synapse
- Configurar Matrix Synapse
- Generar SSL Letsencrypt
- Configurar Nginx como Proxy Inverso
- Configurar UFW Firewall
- Registrar nuevo usuario
- Probando
Paso 1 – Instalar Matrix Synapse
En primer lugar, instalaremos Matrix Synapse en el último servidor Ubuntu 20.04. Para ello, necesitamos añadir la clave GPG y el repositorio oficial de Matrix Synapse.
Antes de continuar, instala algunas dependencias de los paquetes utilizando el comando apt que aparece a continuación.
sudo apt install -y lsb-release wget apt-transport-https
Después, añade la clave GPG y el repositorio de Matrix Synapse para el sistema basado en Debian/Ubuntu.
sudo wget -qO /usr/share/keyrings/matrix-org-archive-keyring.gpg https://packages.matrix.org/debian/matrix-org-archive-keyring.gpg echo "deb [signed-by=/usr/share/keyrings/matrix-org-archive-keyring.gpg] https://packages.matrix.org/debian/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/matrix-org.list
Ahora actualiza la lista de repositorios de todos los paquetes e instala los paquetes de Matrix Synapse.
sudo apt update sudo apt install matrix-synapse-py3
Ahora se te pedirá la configuración del nombre de dominio.
Escribe tu nombre de dominio para la instalación de Matrix Synapse y selecciona«Aceptar» para continuar.
Para la «Estadística de datos anónimos», elige«No«.
Y la instalación de Matrix Synapse habrá finalizado.
A continuación, inicia el servicio ‘matrix-synapse’ y añádelo al arranque del sistema.
systemctl start matrix-synapse systemctl enable matrix-synapse
Matrix Synapse ya está en marcha, compruébalo con el siguiente comando.
systemctl status matrix-synapse ss -plnt
A continuación se muestra el resultado que obtendrás.
Como resultado, Matrix Synapse se está ejecutando con el puerto TCP predeterminado ‘8008’ en Ubuntu 20.04.
Paso 2 – Configurar Matrix Synapse
En este paso, configuraremos las ‘bind-addresses’ para Matrix synapse, desactivaremos el registro en nuestro servidor y configuraremos el secreto compartido de registro.
Antes de continuar, genera el secreto de registro de Matrix Synapse utilizando el siguiente comando.
cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1
Ahora obtendrás la clave aleatoria, copia la clave y guárdala en tu nota.
GH7AP4Zcthz02Cmg58sqUgonm7zlwH0f
A continuación, ve al directorio ‘/etc/matrix-synapse’ y edita la configuración ‘homeserver.yaml’ utilizando el editor vim.
cd /etc/matrix-synapse/ vim homeserver.yaml
Ve a la sección ‘listeners’ y cambia el valor ‘bind-addresses’ por la dirección IP local como se indica a continuación.
listeners: - port: 8008 tls: false type: http x_forwarded: true bind_addresses: ['127.0.0.1'] resources: - names: [client, federation] compress: false
Ahora desactiva Matrix Synapse si estás ejecutando el nodo sólo para ti.
enable_registration: false
Cambia el valor ‘registration_shared_secret’ con la frase de contraseña aleatoria generada arriba.
registration_shared_secret: "GH7AP4Zcthz02Cmg58sqUgonm7zlwH0f"
Guarda y cierra.
A continuación, reinicia el servicio Matrix Synapse para aplicar la nueva configuración.
systemctl restart matrix-synapse
Comprueba el servicio utilizando el siguiente comando.
ss -plnt systemctl status matrix-synapse
A continuación se muestra el resultado que obtendrás.
Como resultado, el servicio Matrix Synapse está funcionando con una nueva configuración.
Paso 3 – Generar SSL Letsencrypt
En este paso, generaremos el SSL Letsencrypt utilizando la herramienta certbot. Matrix Synapse se ejecutará bajo una conexión segura HTTPS utilizando los certificados SSL proporcionados por Letsencrypt.
Instala la herramienta certbot utilizando el comando apt que aparece a continuación.
sudo apt install certbot -y
Después, genera un nuevo certificado SSL utilizando el comando certbot que aparece más abajo, y asegúrate de cambiar la dirección de correo electrónico y el nombre de dominio por los tuyos.
certbot certonly --rsa-key-size 2048 --standalone --agree-tos --no-eff-email --email [email protected] -d hakase-labs.io
Una vez completado todo, tus certificados SSL estarán disponibles en el directorio ‘/etc/letsencrypt/live/domain.com/’.
ls -lah /etc/letsencrypt/live/domain.com/
El ‘fullchain.pem’ es la clave pública, y el ‘privkey.pem’ es la clave privada.
Paso 4 – Configurar Nginx como Proxy Inverso
Para este tutorial, ejecutaremos Matrix Synapse bajo el proxy inverso Nginx. Y para este paso, instalaremos los paquetes Nginx y lo configuraremos como Proxy Inverso.
El servidor web Nginx se ejecutará en 3 puertos, el puerto HTTP por defecto ’80’, el puerto HTTPS seguro ‘443’, y el puerto TCP ‘8448’ que se utilizará para la federación de Matrix Synapse.
Instala los paquetes Nginx utilizando el comando apt que se indica a continuación.
sudo apt install nginx -y
Una vez completada la instalación, ve al directorio ‘/etc/nginx/sites-available’ y crea una nueva configuración de virtualhost llamada ‘matrix’ utilizando el editor vim.
cd /etc/nginx/sites-available/ vim matrix
Cambia el nombre de dominio y la ruta de los certificados SSL por los tuyos, y pega la configuración en él.
server { listen 80; server_name hakase-labs.io; return 301 https://$host$request_uri; } server { listen 443 ssl; server_name hakase-labs.io; ssl_certificate /etc/letsencrypt/live/hakase-labs.io/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/hakase-labs.io/privkey.pem; location /_matrix { proxy_pass http://localhost:8008; proxy_set_header X-Forwarded-For $remote_addr; # Nginx by default only allows file uploads up to 1M in size # Increase client_max_body_size to match max_upload_size defined in homeserver.yaml client_max_body_size 10M; } } # This is used for Matrix Federation # which is using default TCP port '8448' server { listen 8448 ssl; server_name hakase-labs.io; ssl_certificate /etc/letsencrypt/live/hakase-labs.io/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/hakase-labs.io/privkey.pem; location / { proxy_pass http://localhost:8008; proxy_set_header X-Forwarded-For $remote_addr; } }
Guárdala y ciérrala.
A continuación, activa el virtualhost ‘matrix’ y prueba la configuración de Nginx. Asegúrate también de que no se produce ningún error.
ln -s /etc/nginx/sites-available/matrix /etc/nginx/sites-enabled/ nginx -t
Ahora reinicia el servicio Nginx y añádelo al arranque del sistema.
systemctl restart nginx systemctl enable nginx
Después, comprueba el servicio Nginx utilizando el siguiente comando.
ss -plnt systemctl status nginx
A continuación se muestra el resultado que obtendrás.
Como resultado, el servicio Nginx está funcionando en el Ubuntu 20.04 con tres puertos diferentes, el puerto HTTP por defecto 80 que será redirigido automáticamente al puerto seguro HTTPS, y el puerto ‘8448’ que se utilizará para Matrix Synapse Federation.
Paso 5 – Firewall UFW
Para este tutorial, ejecutaremos Matrix Synapse en Ubuntu 20.04 con el cortafuegos UFW activado.
Añade los puertos ssh, http, https y el puerto TCP ‘8448’ al cortafuegos UFW utilizando el siguiente comando.
for svc in ssh http https 8448 do ufw allow $svc done
Después, ejecuta y habilita el cortafuegos UFW.
ufw enable
Escribe‘y‘ para confirmar y el cortafuegos UFW estará en funcionamiento, comprueba todas las reglas disponibles en el cortafuegos UFW utilizando el comando que aparece a continuación.
ufw status numbered
A continuación se muestra el resultado que obtendrás.
Como resultado, la configuración del cortafuegos UFW se ha completado.
Paso 6 – Registrar Usuario
En este paso, la instalación y configuración del servidor home matrix synapse ha finalizado. Y en este paso, te mostraremos cómo añadir un nuevo usuario matrix desde el servidor de línea de comandos.
Para crear un nuevo usuario matrix, ejecuta el siguiente comando.
sudo register_new_matrix_user -c /etc/matrix-synapse/homeserver.yaml http://localhost:8008
Ahora escribe el nombre de usuario y la contraseña de tu usuario, para que el usuario sea administrador, escribe «sí».
New user localpart [root]: changbin Password: Confirm password: Make admin [no]: Sending registration request... Success!
Como resultado, se habrá creado el nuevo usuario Matrix.
Paso 7 – Pruebas
En este paso probaremos nuestra instalación del servidor Matrix Synapse.
– Probar la Federación Matrix Synapse
Ve a la siguiente URL para probar la Federación Matrix Synapse.
https://federationtester.matrix.org/
Ahora escribe tu nombre de dominio Matrix Synapse y haz clic en el botón«Ir«, y obtendrás el resultado satisfactorio que se muestra a continuación.
Como puedes ver, la Federación Matrix Synapse funciona a través del puerto ‘8448’.
– Prueba de inicio de sesión en Matrix con usuario y contraseña
Ve al cliente Matrix basado en web llamado ‘riot.im’ como URL abajo.
https://riot.im/app/
Haz clic en el botón‘Iniciar sesión‘ y podrás utilizar tu servidor Matrix Synapse personalizado.
Escribe el nombre de tu dominio y haz clic en «Siguiente«.
Ahora escribe tu nombre de usuario y contraseña, y haz clic en el botón ‘Iniciarsesión‘.
Se te harán preguntas de seguridad adicionales.
Una vez que hayas iniciado sesión, aparecerá la siguiente página.
Como resultado, la instalación de Matrix Synapse con el proxy inverso Nginx y la Federación activados en Ubuntu 20.04 se ha completado con éxito.