Matrix, Synapse server: Comunicaciones unificadas en tu propio servidor

La verdad conocía el proyecto Matrix desde hace rato y siempre me había parecido algo muy pero muy interesante y potente. En los últimos tiempos el proyecto ha mejorado mucho, los clientes están disponibles para cualquier plataforma y la instalación del servidor se ha vuelto bastante sencilla. Es por eso que he decidido incluirlo en mi “proyecto” de servidor de privacidad.

He realizado la instalación y configuración en un servidor de 5 dólares con la distribución Linux Fedora 37 para aprovechar la presencia del servidor en los repositorios en lugar de proceder a la instalación desde las fuentes. Una vez iniciado y actualizado el servidor, se instala el paquete:

dnf install matrix-synapse -y

luego para crear los distintos archivos de configuración se ejecuta:

/usr/bin/synapse_homeserver --generate-config -H privacidad.xyz -c /etc/synapse/homeserver.yaml --report-stats=yes

  • privacidad.xyz es el nombre de dominio asociado al servidor

  • /etc/synapse/homeserver.yaml es el nombre y carpeta donde se creará el archivo de configuración

  • --report-stats=yes si se quieren enviar o no las estadísticas de uso a los desarrolladores

el paso a seguir es modificar el archivo de configuración porque algunas configuraciones predefinidas no se adaptan perfectamente al servidor en uso:

nano /etc/synapse/homeserver.yaml

se borra el contenido del archivo y se copia:

server_name: "privacidad.xyz"

pid_file: /run/synapse/homeserver.pid

listeners:

- port: 8448

tls: true

type: http

x_forwarded: true

resources:

- names: [client, federation]

compress: false

tls_certificate_path: "/etc/synapse/fullchain.pem"

tls_private_key_path: "/etc/synapse/privkey.pem"

federation_client_minimum_tls_version: 1.2

turn_uris: [turn:turn.privacidad.xyz]

turn_shared_secret: "92a77cbcc2d55841f8b3850ff56bc3f1"

turn_user_lifetime: 1h

turn_allow_guests: false

database:

name: sqlite3

args:

database: /etc/synapse/homeserver.db

log_config: "/etc/synapse/privacidad.xyz.log.config"

media_store_path: /home/media_store

registration_shared_secret: "^mDfjZKHp-xM_T8_oVe2@3.vLcxu4=7S6fFPZ18m3eRN:9^@0q"

report_stats: true

macaroon_secret_key: "c7=+Tqo_#4#uPkor^K6oyc0cfVTiLE,kzz_RzTp=+d:5r4a84V"

form_secret: "w,~y^;Zv.AZ~I^VZN.&YBAE@wqJVka*4jTV=SamG9IMZS50QK="

signing_key_path: "/etc/synapse/privacidad.xyz.signing.key"

trusted_key_servers:

- server_name: "matrix.org"

Los datos más importantes:

  • server_name: "privacidad.xyz" nombre del dominio asociado al servidor

  • pid_file: /run/synapse/homeserver.pid nombre y carpeta donde se creará el proceso una vez iniciado el programa

  • bloque listeners: todo lo relacionado al puerto de escucha, conexión segura y tipo de conexión que aceptará el servidor

  • tls_certificate_path: y tls_private_key_path: nombre y carpeta donde se encontrarán los certificados que utilizar el servidor para la conexiones TLS

  • siguen unas lineas relacionadas con la configuración de la conexión al servidor STUN/TURN que puede estar instalado en el mismo servidor o en otro

  • tipo de base de datos utilizada y donde se encuentra; en este caso SQLite3

  • log_config: archivo donde se encuentra la configuración de todo lo relacionado con los LOG de Synapse

  • media_store_path: carpeta para guardar elementos media recibidos

  • unas lineas relacionadas con las claves utilizadas por el servidor en la comunicación con los clientes

En esta pagina aparece la lista completa de los parámetros que se pueden utilizar en el archivo de configuración. Como las carpetas /run/synapse y /home/media_store no existen, se crean y se cambian los permisos ya que el servidor arranca con usuario y grupo synapse:

mkdir /run/synapse

chown -Rf synapse:synapse /run/synapse

mkdir /media_store

chown synapse:synapse /media_store/

Luego se abre el archivo de configuración del LOG:

nano /etc/synapse/privacidad.xyz.log.config

y se modifica el parámetro filename para que quede:

filename: /var/log/homeserver.log

Se guardan los cambios, se crea el archivo y se cambian los permisos:

touch /var/log/homeserver.log

chown synapse:synapse /var/log/homeserver.log

Falta la creación de los certificados:

dnf install certbot -y

Luego:

certbot certonly --standalone -m yo@micorreo.org -d privacidad.xyz


 


se copian en la carpeta indicada en el archivo de configuración de Synapse y se cambian los permisos:

cp /etc/letsencrypt/live/tls.kamailio.club/fullchain.pem /etc/synapse

cp /etc/letsencrypt/live/tls.kamailio.club/privkey.pem /etc/synapse

chown synapse:synapse /etc/synapse/fullchain.pem

chown synapse:synapse /etc/synapse/privkey.pem

Ya podemos iniciar el servidor:

systemctl start synapse

y configurar para que arranque con el sistema:

systemctl enable synapse

Si no aparecen errores ya se pueden crear los primeros dos usuarios, uno como administrador y uno normal:

register_new_matrix_user -u admin -p password -t bot -a -c /etc/synapse/homeserver.yaml

Sending registration request...

Success!

register_new_matrix_user -u fulano -p password -t bot --no-admin -c /etc/synapse/homeserver.yaml

Sending registration request...

Success!

Ahora podemos descargar el cliente disponible para todas las plataformas y registrar el primer usuario:


en la pagina que sigue indicar usuario y contraseña y listo. He probado chat, llamadas audio, videollamadas y Videoconferencias (se apoya en Jitsi) y la verdad me pareció muy bueno.

Vota el Articulo: 

No votes yet
Evalúa la calidad del articulo
Subscribe to Comments for "Matrix, Synapse server: Comunicaciones unificadas en tu propio servidor" Subscribe to VozToVoice - All comments