Cómo instalar Matrix Synapse Chat en Ubuntu 20.04 LTS

Agregue el repositorio Matrix Synapse para Ubuntu 20.04

Matrix es un nuevo ecosistema para la comunicación descentralizada en tiempo real para servicios abiertos de mensajería instantánea federada y VoIP. Proporciona API RESTful HTTP JSON para crear servidores de chat federados y distribuidos sin un único punto de control y falla, y proporciona todas las referencias para las API.

Synapse es una implementación del servidor doméstico de matriz creado por un equipo de matriz y escrito en Python/Twisted. Con este software, podemos implementar la forma matricial para la comunicación descentralizada, podemos crear nuestro 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, le mostraremos cómo instalar y configurar Matrix Synapse en Ubuntu 20.04. Configuraremos Matrix Synapse con Nginx como un 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 1 Gb de RAM, 25 GB de espacio libre en disco y 2 CPU. Además, debe tener acceso a su servidor con privilegios de root.

¿Lo que haremos?

  • Instalar Matrix Synapse
  • Configurar Matrix Synapse
  • Generar SSL Letsencrypt
  • Configurar Nginx como proxy inverso
  • Configurar el cortafuegos UFW
  • Registrar nuevo usuario
  • Pruebas

Paso 1: instale Matrix Synapse

Primero, instalaremos Matrix Synapse en el último servidor Ubuntu 20.04. Para hacer eso, necesitamos agregar la clave GPG y el repositorio oficial de Matrix Synapse.

Antes de continuar, instale algunas dependencias de paquetes usando el comando apt a continuación.

sudo apt install -y lsb-release wget apt-transport-https

Después de eso, agregue 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

Agregue el repositorio Matrix Synapse para Ubuntu 20.04

Ahora actualice la lista de repositorios de todos los paquetes e instale los paquetes de Matrix Synapse.

sudo apt update
sudo apt install matrix-synapse-py3

Ahora se le pedirá la configuración del nombre de dominio.

configurar el nombre de dominio Matrix synapse

Escriba su nombre de dominio para la instalación de Matrix Synapse y seleccione ‘OK‘ continuar.

Para la ‘Estadística de datos anónimos’, elija ‘No‘.

Sin envío de datos anónimos

Y la instalación de Matrix Synapse se ha completado.

A continuación, inicie el servicio ‘matrix-synapse’ y agréguelo al arranque del sistema.

systemctl start matrix-synapse
systemctl enable matrix-synapse

Matrix Synapse está en funcionamiento, verifíquelo con el siguiente comando.

systemctl status matrix-synapse
ss -plnt

A continuación se muestra el resultado que obtendrá.

Comprobar el estado del servicio Matrix Synapse

Como resultado, Matrix Synapse se ejecuta con el puerto TCP predeterminado ‘8008’ en Ubuntu 20.04.

Paso 2: configurar Matrix Synapse

En este paso, configuraremos las ‘direcciones de enlace’ para Matrix Synapse, deshabilitaremos el registro en nuestro servidor y configuraremos el secreto compartido de registro.

Antes de continuar, genere el secreto de registro de Matrix Synapse usando el siguiente comando.

cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1

Ahora obtendrá la clave aleatoria, copiará la clave y la guardará en su nota.

GH7AP4Zcthz02Cmg58sqUgonm7zlwH0f

Luego, vaya al directorio ‘/etc/matrix-synapse’ y edite la configuración ‘homeserver.yaml’ usando el editor vim.

cd /etc/matrix-synapse/
vim homeserver.yaml

Vaya a la sección ‘oyentes’ y cambie el valor ‘bind-addresses’ con la dirección IP local como se muestra 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 deshabilite Matrix Synapse si está ejecutando el nodo solo para usted.

enable_registration: false

Cambie el ‘registration_shared_secret’ con la frase de contraseña aleatoria generada en la parte superior.

registration_shared_secret: "GH7AP4Zcthz02Cmg58sqUgonm7zlwH0f"

Guardar y cerrar.

A continuación, reinicie el servicio Matrix Synapse para aplicar la nueva configuración.

systemctl restart matrix-synapse

Verifique el servicio usando el siguiente comando.

ss -plnt
systemctl status matrix-synapse

A continuación se muestra el resultado que obtendrá.

Configurar Matrix Synapse

Como resultado, el servicio Matrix Synapse está en funcionamiento con una nueva configuración.

Paso 3 – Genera SSL Letsencrypt

En este paso, generaremos el SSL Letsencrypt utilizando la herramienta certbot. Matrix Synapse se ejecutará bajo la conexión HTTPS segura utilizando los certificados SSL proporcionados por Letsencrypt.

Instale la herramienta certbot usando el comando apt a continuación.

sudo apt install certbot -y

Después de eso, genere un nuevo certificado SSL usando el comando certbot a continuación y asegúrese de cambiar la dirección de correo electrónico y el nombre de dominio con los suyos.

certbot certonly --rsa-key-size 2048 --standalone --agree-tos --no-eff-email --email [email protected] -d hakase-labs.io

Generar SSL Letsencrypt para Matrix Synapse

Una vez que todo esté completo, sus certificados SSL estarán disponibles en el directorio ‘/etc/letsencrypt/live/domain.com/’.

ls -lah /etc/letsencrypt/live/domain.com/

‘fullchain.pem’ es la clave pública y ‘privkey.pem’ es la clave privada.

Paso 4: configure Nginx como un proxy inverso

Para este tutorial, ejecutaremos Matrix Synapse bajo el proxy Nginx Reverse. Y para este paso, instalaremos los paquetes de Nginx y lo configuraremos como un proxy inverso.

El servidor web Nginx se ejecutará en 3 puertos, el puerto HTTP predeterminado ’80’, el puerto HTTPS seguro ‘443’ y el puerto TCP ‘8448’ que se utilizará para la federación Matrix Synapse.

Instale los paquetes Nginx usando el comando apt a continuación.

sudo apt install nginx -y

Una vez completada toda la instalación, vaya al directorio ‘/etc/nginx/sites-available’ y cree una nueva configuración de virtualhost llamada ‘matrix’ usando el editor vim.

cd /etc/nginx/sites-available/
vim matrix

Cambie el nombre de dominio y la ruta de los certificados SSL con los suyos, luego pegue 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;
}
}

Guardar y cerrar.

A continuación, active el virtualhost ‘matrix’ y pruebe la configuración de Nginx. Además, asegúrese de que no haya ningún error.

ln -s /etc/nginx/sites-available/matrix /etc/nginx/sites-enabled/
nginx -t

Ahora reinicie el servicio Nginx y agréguelo al arranque del sistema.

systemctl restart nginx
systemctl enable nginx

Configure Nginx como un proxy inverso para Matrix Synapse

Después de eso, verifique el servicio Nginx usando el siguiente comando.

ss -plnt
systemctl status nginx

A continuación se muestra el resultado que obtendrá.

Configure Nginx como un proxy inverso para Matrix Synapse

Como resultado, el servicio Nginx está funcionando en Ubuntu 20.04 con tres puertos diferentes, el puerto HTTP predeterminado 80 que se redirigirá automáticamente al puerto HTTPS seguro y el puerto ‘8448’ que se usará para Matrix Synapse Federation.

Paso 5 – Cortafuegos UFW

Para este tutorial, ejecutaremos Matrix Synapse en Ubuntu 20.04 con el firewall UFW habilitado.

Agregue ssh, http, https y el puerto TCP ‘8448’ al firewall UFW usando el siguiente comando.

for svc in ssh http https 8448
do
ufw allow $svc
done

Después de eso, ejecute y habilite el firewall UFW.

ufw enable

Escribe ‘y‘ para confirmar que el firewall de UFW está en funcionamiento, verifique todas las reglas disponibles en el firewall de UFW con el siguiente comando.

ufw status numbered

A continuación se muestra el resultado que obtendrá.

Habilite el firewall UFW para proteger Matrix Synapse

Como resultado, se completó la configuración del firewall UFW.

Paso 6 – Registrar Usuario

En esta etapa, se completa la instalación y configuración del servidor principal Matrix Synapse. Y en este paso, le mostraremos cómo agregar un nuevo usuario de matriz desde el servidor de línea de comandos.

Para crear un nuevo usuario de matriz, ejecute el siguiente comando.

sudo register_new_matrix_user -c /etc/matrix-synapse/homeserver.yaml http://localhost:8008

Ahora escriba el nombre de usuario y la contraseña de su usuario, para convertir al usuario en administrador, escriba ‘sí’.

New user localpart [root]: changbin
Password: 
Confirm password: 
Make admin [no]: 
Sending registration request...
Success!

Como resultado, se ha creado el nuevo usuario de Matrix.

Paso 7 – Prueba

Para este paso, probaremos la instalación de nuestro servidor Matrix Synapse.

– Prueba Matrix Synapse Federation

Vaya a la URL de Matrix Synapse Federation Tester a continuación.

https://federationtester.matrix.org/

Ahora escriba su nombre de dominio de Matrix Synapse y haga clic en ‘Vamos‘, y obtendrá el resultado exitoso como se muestra a continuación.

Probador de federación Matrix Synapse

Como se puede ver, Matrix Synapse Federation está trabajando a través del puerto ‘8448’.

– Inicio de sesión de matriz de prueba con usuario y contraseña

Vaya al cliente Matrix basado en la web llamado ‘riot.im’ como URL a continuación.

https://riot.im/app/

Haga clic en el ‘Registrarse‘ y puede usar su servidor Matrix Synapse personalizado.

Matrix Synapse Iniciar sesión con Riot

Escriba su nombre de dominio y haga clic en ‘próximo‘.

Riot usando un dominio personalizado

Ahora escriba su nombre de usuario y contraseña, luego haga clic en ‘Registrarse‘ botón.

Iniciar sesión en Matrix Synapse usando Riot

Se le pedirán preguntas de seguridad adicionales.

Una vez que haya iniciado sesión, obtendrá la siguiente página.

Inicie sesión correctamente en Matrix Synapse usando la aplicación web Riot

Como resultado, la instalación de Matrix Synapse con el proxy inverso de Nginx y la federación habilitada en Ubuntu 20.04 se completó con éxito.

Deja una respuesta

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