
Synapse: homeserver Matrix scritto in Python/Twisted.
element-hq/synapse <https://github.com/element-hq/synapse>_Synapse è un homeserver open-source di Matrix <https://matrix.org/>_ sviluppato
dal 2019 al 2023 come parte della Matrix.org Foundation. La Matrix.org
Foundation non è in grado di sostenere la manutenzione di Synapse e
continua ad essere sviluppato da Element <https://github.com/element-hq/synapse>;
inoltre hai la possibilità di scegliere altri homeserver Matrix <https://matrix.org/ecosystem/servers/>.
Vedi il post sul blog Il futuro di Synapse e Dendrite <https://matrix.org/blog/2023/11/06/future-of-synapse-dendrite/>_
per maggiori informazioni.
=========================================================================
In breve, Matrix è uno standard aperto per le comunicazioni su internet, che supporta
federazione, crittografia e VoIP. Matrix.org ha altro da dire sugli obiettivi del progetto Matrix <https://matrix.org/docs/guides/introduction>, e la specifica formale <https://spec.matrix.org/> descrive i dettagli tecnici.
.. contents::
La documentazione di Synapse descrive come installare Synapse <https://matrix-org.github.io/synapse/latest/setup/installation.html>. Raccomandiamo di utilizzare
immagini Docker <https://matrix-org.github.io/synapse/latest/setup/installation.html#docker-images-and-ansible-playbooks> o pacchetti Debian da Matrix.org <https://matrix-org.github.io/synapse/latest/setup/installation.html#matrixorg-packages>_.
.. _federation:
Synapse ha una varietà di opzioni di configurazione <https://matrix-org.github.io/synapse/latest/usage/configuration/config_documentation.html>_
che possono essere utilizzate per personalizzare il suo comportamento dopo l'installazione.
Ci sono ulteriori dettagli su come configurare Synapse per la federazione qui <https://matrix-org.github.io/synapse/latest/federate.html>_.
.. _reverse-proxy:
Si consiglia di mettere un reverse proxy come
nginx <https://nginx.org/en/docs/http/ngx_http_proxy_module.html>,
Apache <https://httpd.apache.org/docs/current/mod/mod_proxy_http.html>,
Caddy <https://caddyserver.com/docs/quick-starts/reverse-proxy>,
HAProxy <https://www.haproxy.org/> o
relayd <https://man.openbsd.org/relayd.8>_ davanti a Synapse. Un vantaggio di
farlo è che significa che puoi esporre la porta https predefinita (443) ai
client Matrix senza dover eseguire Synapse con privilegi di root.
Per informazioni sulla configurazione, vedi la documentazione del reverse proxy <https://matrix-org.github.io/synapse/latest/reverse_proxy.html>_.
Le istruzioni per aggiornare Synapse sono nelle note di aggiornamento_.
Si prega di controllare queste istruzioni poiché l'aggiornamento potrebbe richiedere passaggi aggiuntivi per alcune
versioni di Synapse.
.. _the upgrade notes: https://matrix-org.github.io/synapse/develop/upgrade.html
Synapse utilizza una serie di dipendenze di piattaforma come Python e PostgreSQL,
e mira a seguire le versioni upstream supportate. Vedi la
politica di obsolescenza <https://matrix-org.github.io/synapse/latest/deprecation_policy.html>_
per maggiori dettagli.
Matrix serve dati grezzi forniti dall'utente in alcune API -- in particolare gli endpoint del repository di contenuti_.
.. _content repository endpoints: https://matrix.org/docs/spec/client_server/latest.html#get-matrix-media-r0-download-servername-mediaid
Sebbene facciamo uno sforzo ragionevole per mitigare gli attacchi XSS (ad
esempio, utilizzando CSP_), un homeserver Matrix non dovrebbe essere ospitato su un
dominio che ospita altre applicazioni web. Questo si applica soprattutto alla condivisione
del dominio con client web Matrix e altre applicazioni sensibili come
webmail. Vedi
https://developer.github.com/changes/2014-04-25-user-content-security per maggiori
informazioni.
.. _CSP: https://github.com/matrix-org/synapse/pull/1021
Idealmente, l'homeserver non dovrebbe essere semplicemente su un sottodominio diverso, ma su
un dominio registrato_ completamente diverso (noto anche come sito di primo livello o
eTLD+1). Questo perché alcuni attacchi_ sono ancora possibili finché le due
applicazioni condividono lo stesso dominio registrato.
.. _registered domain: https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis-03#section-2.3
.. _some attacks: https://en.wikipedia.org/wiki/Session_fixation#Attacks_using_cross-subdomain_cookie
Per illustrare questo con un esempio, se il tuo Element Web o un'altra applicazione web sensibile
è ospitata su A.example1.com, dovresti idealmente ospitare Synapse su
example2.com. Un certo livello di protezione è offerto ospitandolo su
B.example1.com invece, quindi anche questo è accettabile in alcuni scenari.
Tuttavia, non dovresti mai ospitare il tuo Synapse su A.example1.com.
Nota che tutto quanto sopra si riferisce esclusivamente al dominio utilizzato nell'impostazione
public_baseurl di Synapse. In particolare, non ha alcuna influenza sul dominio
menzionato negli MXID ospitati su quel server.
Seguire questo consiglio garantisce che anche se viene trovato un XSS in Synapse, l'impatto su altre applicazioni sarà minimo.
Il modo più semplice per provare la tua nuova installazione di Synapse è connettersi ad essa da un client web.
A meno che tu non stia eseguendo un'istanza di test di Synapse sulla tua macchina locale, in
generale, dovrai abilitare il supporto TLS prima di poter connetterti con successo
da un client: vedi
certificati TLS <https://matrix-org.github.io/synapse/latest/setup/installation.html#tls-certificates>_.
Un modo semplice per iniziare è accedere o registrarsi tramite Element su
https://app.element.io/#/login o https://app.element.io/#/register rispettivamente.
Dovrai cambiare il server a cui ti stai connettendo da matrix.org
e invece specificare un URL Homeserver di https://<server_name>:8448
(o semplicemente https://<server_name> se stai utilizzando un reverse proxy).
Se preferisci utilizzare un altro client, consulta la nostra
suddivisione dei client <https://matrix.org/ecosystem/clients/>_.
Se tutto va bene, dovresti almeno essere in grado di accedere, creare una stanza e iniziare a inviare messaggi.
.. _client-user-reg:
Per impostazione predefinita, la registrazione di nuovi utenti tramite client Matrix è disabilitata. Per abilitarla:
Nella
sezione di configurazione della registrazione <https://matrix-org.github.io/synapse/latest/usage/configuration/config_documentation.html#registration>_
imposta enable_registration: true in homeserver.yaml.
Poi o:
a. configura un CAPTCHA <https://matrix-org.github.io/synapse/latest/CAPTCHA_SETUP.html>_, oppure
b. imposta enable_registration_without_verification: true in homeserver.yaml.
Raccomandiamo vivamente di utilizzare un CAPTCHA, specialmente se il tuo homeserver è esposto a internet pubblico. Senza di esso, chiunque può registrare liberamente account sul tuo homeserver. Questo può essere sfruttato dagli attaccanti per creare spambot che prendono di mira il resto della federazione Matrix.
Il tuo nuovo nome utente sarà formato in parte dal server_name, e in parte
da un localpart che specifichi quando crei l'account. Il tuo nome assumerà la
forma di::
@localpart:my.domain.name