Cómo instalar Matrix Synapse Chat en Ubuntu 18.04 LTS
Matrix es un nuevo ecosistema de comunicación descentralizada en tiempo real para servicios abiertos de mensajería instantánea y VoIP federados. Proporciona APIs 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 APIs.
Synapse es una implementación del servidor doméstico de matrix creada por el equipo de matrix y escrita en Python/Twisted. Con este software, podemos implementar la forma de comunicación descentralizada de matrix, podemos crear nuestro propio servidor doméstico y almacenar toda la información personal del usuario, el historial de chat, crear la sala para uso propio, etc.
En este tutorial, te mostraremos paso a paso cómo instalar y configurar Matrix Synapse en Ubuntu 18.04. Configuraremos Matrix Synapse en la dirección IP local, y configuraremos el servidor web Nginx como proxy inverso para él, e implementaremos la conexión HTTPS entre los clientes y el servidor web Nginx del front-end.
Requisitos previos
- Ubuntu 18.04
- Privilegios de root
- Nombre de dominio o subdominio de la matriz – matrix.hakase-labs.io
¿Qué vamos a hacer?
- Actualizar y mejorar el sistema Ubuntu 18.04
- Instalar Matrix Synapse
- Configurar Matrix Synapse
- Generar SSL Letsencrypt
- Instalar y configurar Nginx como proxy inverso para Matrix Synapse
- Configurar el cortafuegos UFW
- Configurar un nuevo usuario de Matrix
- Prueba de
Paso 1 – Actualizar el sistema
Accede a tu servidor Ubuntu, actualiza el repositorio y actualiza todos los paquetes con el comando apt que aparece a continuación.
sudo apt update
sudo apt upgrade
Y todos los paquetes de Ubuntu han sido actualizados.
Paso 2 – Instalar Matrix Synapse
En este paso, instalaremos el software matrix synapse utilizando los paquetes de Debian del repositorio oficial de matrix.
Añade la clave de matrix y el repositorio ejecutando todos los comandos siguientes.
wget -qO - https://matrix.org/packages/debian/repo-key.asc | sudo apt-key add -
sudo add-apt-repository https://matrix.org/packages/debian/
El comando actualizará automáticamente el repositorio.
Ahora instala matrix synapse utilizando el comando apt como se indica a continuación.
sudo apt install matrix-synapse -y
Durante la instalación, te preguntará por el nombre del servidor de matrix – escribe el nombre de dominio de matrix ‘matrix.hakase-labs.io’.
Y para el informe de datos anónimos, elige ‘No’.
Cuando la instalación de matrix synapse se haya completado, inicia el servicio y habilítalo para que se inicie siempre al arrancar el sistema.
sudo systemctl start matrix-synapse
sudo systemctl enable matrix-synapse
La sinapsis de la matriz está ahora en funcionamiento utilizando la configuración por defecto en los puertos ‘8008’ y ‘8448’. Compruébalo con el comando netstat.
netstat -plntu
Paso 3 – Configurar Matrix Synapse
Tras la instalación de matrix synapse, lo configuraremos para que se ejecute bajo la dirección IP local, desactivaremos el registro de matrix synapse y activaremos el registro-secreto compartido.
Antes de editar la configuración del servidor local, tenemos que generar la clave secreta compartida.
Ejecuta el siguiente comando.
cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1
Y obtendrás la clave generada. Copia la clave resultante.
Ahora tenemos que editar el archivo de configuración del servidor doméstico ‘homeserver.yaml’ en el directorio ‘/etc/matrix-synapse/’. Cambia el directorio actual a ‘/etc/matrix-synapse’ y edita el archivo de configuración utilizando vim.
cd /etc/matrix-synapse/
vim homeserver.yaml
Cambia el puerto de escucha HTTP y HTTPS ‘8008’ y ‘8448’ por la dirección IP local ‘127.0.0.1’.
port: 8448 bind_addresses: - '127.0.0.1' - port: 8008 bind_addresses: ['127.0.0.1']
Desactiva el registro de matrix synapse, descomenta la configuración ‘registration_shared_secret’ y pega la clave secreta generada.
enable_registration: False registration_shared_secret: "MtkF9JOkNHsRRISyR5L91KAQlrrPhyWX"
Guarda y sal.
Nota:
registration_shared_secret: Si se establece, permite el registro de cualquier persona que también tenga el secreto compartido, incluso si el registro está desactivado.
Ahora reinicia los servicios de matrix synapse.
sudo systemctl restart matrix-synapse
Comprueba el servicio homeserver con el siguiente comando.
netstat -plntu
Obtendrás que el servicio matrix synapse está ahora en la dirección IP local.
Y hemos completado la instalación y configuración de matrix synapse.
Paso 4 – Generar certificados SSL Letsencrypt
En este tutorial, habilitaremos HTTPS para el proxy inverso Nginx, y generaremos los archivos de certificados SSL de Letsencrypt.
Instala la herramienta letsencrypt con el comando apt que aparece a continuación.
sudo apt install letsencrypt -y
La herramienta Letsencrypt está instalada en el sistema, ahora genera los archivos del certificado SSL para el nombre de dominio de matrix ‘matrix.hakase-labs.io’ utilizando el comando certbot como se muestra a continuación.
certbot certonly --rsa-key-size 2048 --standalone --agree-tos --no-eff-email --email [email protected] -d matrix.hakase-labs.io
La herramienta Letsencrypt generará los archivos del certificado SSL ejecutando el servidor web temporal «independiente» para su verificación.
Y cuando se complete, obtendrás el resultado como se muestra a continuación.
Los archivos del certificado SSL para el nombre de dominio matrix synapse ‘matrix.hakase-labs.io’ se generan dentro del directorio ‘/etc/letsencrypt/live/’.
Paso 5 – Instalar y configurar Nginx como proxy inverso
En este paso, instalaremos el servidor web Nginx y lo configuraremos como proxy inverso para el servidor home que se ejecuta en el puerto ‘8008’.
Instala el servidor web Nginx utilizando el comando apt que aparece a continuación.
sudo apt install nginx -y
Una vez completada la instalación, inicia el servicio y habilítalo para que se inicie siempre al arrancar el sistema
sudo systemctl start nginx
sudo systemctl enable nginx
A continuación, crearemos una nueva configuración de host virtual para el nombre de dominio de la matriz ‘matrix.hakase-labs.io’.
Ve al directorio de configuración ‘/etc/nginx’ y crea un nuevo archivo de host virtual ‘matrix’.
cd /etc/nginx/
vim sites-available/matrix
Pega allí la siguiente configuración.
server { listen 80; server_name matrix.hakase-labs.io; return 301 https://$server_name$request_uri; } server { listen 443 ssl; listen [::]:443 ssl; server_name matrix.hakase-labs.io; ssl_certificate /etc/letsencrypt/live/matrix.hakase-labs.io/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/matrix.hakase-labs.io/privkey.pem; # If you don't wanna serve a site, comment this out root /var/www/html; index index.html index.htm; location /_matrix { proxy_pass http://127.0.0.1:8008; proxy_set_header X-Forwarded-For $remote_addr; } }
Guarda y sal.
Activa el archivo de host virtual y prueba la configuración.
ln -s /etc/nginx/sites-available/matrix /etc/nginx/sites-enabled/
nginx -t
Asegúrate de que no hay ningún error, y luego reinicia los servicios de Nginx.
sudo systemctl restart nginx
La instalación y configuración de Nginx como proxy inverso para el servidor doméstico de Matrix Synapse ha finalizado.
Paso 6 – Configurar el cortafuegos UFW
En este tutorial, sólo abriremos tres puertos para nuestros servicios. Sólo permitiremos la conexión SSH, HTTP y HTTPS en la configuración del cortafuegos UFW.
Añade los servicios SSH, HTTP y HTTPS a la configuración del cortafuegos UFW ejecutando el siguiente comando.
ufw allow ssh
ufw allow http
ufw allow https
Ahora habilita el servicio del cortafuegos UFW y luego comprueba el estado.
ufw enable
ufw status
Y obtendrás el resultado que se muestra a continuación.
Y ya hemos completado la configuración del cortafuegos UFW.
Paso 7 – Crear un nuevo usuario de Matrix
En este paso, la instalación y configuración del servidor doméstico de Matrix Synapse se ha completado. Y en este paso, te mostraremos cómo añadir un nuevo usuario de la matriz desde el servidor de línea de comandos.
Para crear un nuevo usuario de la matriz, ejecuta el siguiente comando.
register_new_matrix_user -c /etc/matrix-synapse/homeserver.yaml https://127.0.0.1:8448
Ahora tienes que introducir el nombre de usuario, la contraseña y decidir si el usuario tendrá privilegios de administrador o no.
A continuación se muestra el resultado en mi sistema.
Y hemos creado un nuevo usuario matriz llamado ‘hakase’ con privilegios de administrador.
Paso 8 – Prueba
Descarga la aplicación de escritorio Riot para tu sistema operativo e instálala.
Abre el software Riot y obtendrás la página de inicio de sesión de Matrix como se indica a continuación.
Escribe el nombre de usuario y la contraseña de Matrix, luego elige la opción «Servidor personalizado» y escribe el nombre de dominio personalizado «matrix.hakase-labs.io».
Haz clic en el botón «Iniciar sesión».
Y ahora obtendrás el panel de control de Riot.
El servidor doméstico de Matrix Synapse está funcionando bajo la conexión HTTPS del proxy inverso Nginx, y el usuario ‘hakase’ ha iniciado la sesión en el servidor doméstico de Matrix utilizando el escritorio de la aplicación Riot.
Configuración del usuario de la matriz.
Usuario del chat de Matrix como grupo.