Matrix Synapse Chat te installeren op Ubuntu 20.04 LTS

Matrix is een nieuw ecosysteem voor gedecentraliseerde communicatie in real-time voor open gefedereerde instant messaging en VoIP diensten. Het biedt RESTful HTTP JSON API’s voor het bouwen van gedistribueerde en gefedereerde chatservers zonder één enkel punt van controle en falen en geeft alle referenties voor de API’s.

Synapse is een implementatie van de matrix thuisserver die gemaakt is door een matrix team en geschreven is in Python/Twisted. Met deze software kunnen we de matrix manier voor gedecentraliseerde communicatie implementeren, we kunnen onze thuisserver maken en alle persoonlijke info van gebruikers opslaan, chat geschiedenis, de kamer voor eigen gebruik aanmaken, enz.

In deze zelfstudie laten we je zien hoe je Matrix Synapse installeert en configureert op Ubuntu 20.04. We zullen de Matrix Synapse instellen met de Nginx als reverse proxy en de installatie beveiligen met de SSL van Letsencrypt.

Vereisten

Voor deze gids installeren we de Matrix Synapse op de nieuwste Ubuntu 20.04 met 1Gb RAM, 25GB vrije schijfruimte, en 2CPUs. Ook moet je toegang tot je server hebben met het root privilege erop.

Wat gaan we doen?

  • Installeer Matrix Synapse
  • Configureer Matrix Synapse
  • Genereer SSL Letsencrypt
  • Stel Nginx in als omgekeerde proxy
  • Stel UFW Firewall in
  • Registreer nieuwe gebruiker
  • Testen van

Stap 1 – Installeer Matrix Synapse

Eerst installeren we Matrix Synapse op de nieuwste Ubuntu 20.04 Server. Om dat te doen, moeten we de GPG sleutel en de officiële repository van Matrix Synapse toevoegen.

Voordat je verder gaat, installeer je eerst enkele afhankelijkheden van pakketten met het apt commando hieronder.

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

Voeg daarna de GPG sleutel en repository van de Matrix Synapse toe voor het Debian/Ubuntu systeem.

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

Voeg Matrix Synapse repository toe voor Ubuntu 20.04

Werk nu de repositielijst van alle pakketten bij en installeer de Matrix Synapse pakketten.

sudo apt update
sudo apt install matrix-synapse-py3

Nu wordt je gevraagd om de domeinnaam configuratie.

setup domeinnaam Matrix synapse

Typ je domeinnaam voor de Matrix Synapse installatie en kies‘OK‘ om verder te gaan.

Kies voor de ‘Anonieme gegevensstatistiek’‘Nee‘.

Geen anonieme gegevens zenden

En de installatie van Matrix Synapse is voltooid.

Start nu de ‘matrix-synapse’ service en voeg hem toe aan het systeem opstarten.

systemctl start matrix-synapse
systemctl enable matrix-synapse

De Matrix Synapse is aan de praat, controleer het met het volgende commando.

systemctl status matrix-synapse
ss -plnt

Hieronder staat het resultaat dat je krijgt.

Controleer de servicestatus van Matrix Synapse

Het resultaat is dat de Matrix Synapse draait met standaard TCP poort ‘8008’ op de Ubuntu 20.04.

Stap 2 – Matrix Synapse configureren

In deze stap configureren we de ‘bind-adressen’ voor Matrix synapse, schakelen we de registratie op onze server uit, en stellen we het registratie gedeelde geheim in.

Genereer, voor je verder gaat, het Matrix Synapse registratie geheim met het volgende commando.

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

Nu krijg je de willekeurige sleutel, kopieer de sleutel, en bewaar hem op je notitie.

GH7AP4Zcthz02Cmg58sqUgonm7zlwH0f

Ga vervolgens naar de ‘/etc/matrix-synapse’ directory en bewerk de configuratie ‘homeserver.yaml’ met vim editor.

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

Ga naar de sectie ‘listeners’ en verander de waarde ‘bind-addresses’ met het lokale IP adres zoals hieronder.

listeners:

  - port: 8008
    tls: false
    type: http
    x_forwarded: true
    bind_addresses: ['127.0.0.1']

    resources:
      - names: [client, federation]
        compress: false

Schakel nu de Matrix Synapse uit als je de node alleen voor jezelf laat draaien.

enable_registration: false

Verander de ‘registration_shared_secret’ met de willekeurige passphrase die bovenaan gegenereerd is.

registration_shared_secret: "GH7AP4Zcthz02Cmg58sqUgonm7zlwH0f"

Bewaar en sluit.

Herstart vervolgens de Matrix Synapse dienst om de nieuwe configuratie toe te passen.

systemctl restart matrix-synapse

Controleer de dienst met het volgende commando.

ss -plnt
systemctl status matrix-synapse

Hieronder staat het resultaat dat je krijgt.

Matrix Synapse configureren

Het resultaat is dat de Matrix Synapse dienst werkt met een nieuwe configuratie.

Stap 3 – Genereer SSL Letsencrypt

In deze stap zullen we de SSL Letsencrypt genereren met het certbot gereedschap. De Matrix Synapse zal onder de beveiligde HTTPS verbinding draaien met de SSL certificaten die door Letsencrypt worden geleverd.

Installeer het certbot gereedschap met het onderstaande apt commando.

sudo apt install certbot -y

Genereer daarna een nieuw SSL certificaat met het certbot commando hieronder, en zorg ervoor dat je het emailadres en de domeinnaam met je eigen adres verandert.

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

Genereer SSL Letsencrypt voor Matrix Synapse

Als alles voltooid is, zijn je SSL certificaten beschikbaar in de ‘/etc/letsencrypt/live/domain.com/’ directory.

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

De ‘fullchain.pem’ is de publieke sleutel, en de ‘privkey.pem’ is de private sleutel.

Stap 4 – Stel Nginx in als omgekeerde proxy

Voor deze zelfstudie zullen we de Matrix Synapse draaien onder de Nginx Reverse proxy. En voor deze stap installeren we Nginx pakketten en stellen die in als een Reverse Proxy.

De Nginx webserver zal op 3 poorten draaien, de standaard HTTP poort ’80’, de veilige HTTPS poort ‘443’, en de TCP poort ‘8448’ die gebruikt zal worden voor de Matrix Synapse federatie.

Installeer Nginx pakketten met het onderstaande apt commando.

sudo apt install nginx -y

Zodra de installatie voltooid is, ga je naar de ‘/etc/nginx/sites-available’ directory en maak je met de vim editor een nieuwe virtualhost configuratie met de naam ‘matrix’.

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

Verander de domeinnaam en het pad van SSL certificaten met je eigen, en plak de configuratie erin.

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;
    }
}

Bewaar en sluit.

Activeer vervolgens de ‘matrix’ virtualhost en test de Nginx configuratie. Controleer ook of er geen fout optreedt.

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

Start nu de Nginx service opnieuw op en voeg hem toe aan het systeem opstarten.

systemctl restart nginx
systemctl enable nginx

Stel Nginx in als omgekeerde proxy voor Matrix Synapse

Controleer daarna de Nginx dienst met het onderstaande commando.

ss -plnt
systemctl status nginx

Hieronder staat het resultaat dat je krijgt.

Stel Nginx in als omgekeerde proxy voor Matrix Synapse

Het resultaat is dat de Nginx dienst up and running is op de Ubuntu 20.04 met drie verschillende poorten, de standaard HTTP poort 80 die automatisch doorgestuurd wordt naar de veilige HTTPS poort, en poort ‘8448’ die gebruikt zal worden voor Matrix Synapse Federatie.

Stap 5 – UFW Firewall

Voor deze zelfstudie zullen we de Matrix Synapse draaien op de Ubuntu 20.04 met de UFW firewall ingeschakeld.

Voeg de ssh, http, https, en de TCP poort ‘8448’ toe aan de UFW firewall met het onderstaande commando.

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

Voer daarna de UFW firewall uit en schakel hem in.

ufw enable

Typ‘y‘ om te bevestigen en de UFW firewall is in werking, controleer alle beschikbare regels op de UFW firewall met het onderstaande commando.

ufw status numbered

Hieronder staat het resultaat dat je krijgt.

Schakel UFW Firewall in om Matrix Synapse te beveiligen

Het resultaat is dat de configuratie van de UFW firewall voltooid is.

Stap 6 – Registreer gebruiker

In dit stadium is de installatie en configuratie van de matrix synapse home server voltooid. En in deze stap laten we je zien hoe je een nieuwe matrix gebruiker kunt toevoegen vanaf de commandoregel server.

Om een nieuwe matrix gebruiker aan te maken, voer je het onderstaande commando uit.

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

Typ nu de gebruikersnaam en het wachtwoord voor je gebruiker, en om de gebruiker een administrator te maken, typ je ‘yes’.

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

Het resultaat is dat de nieuwe matrix gebruiker is aangemaakt.

Stap 7 – Testen

Bij deze stap gaan we onze Matrix Synapse server installatie testen.

– Matrix Synapse Federatie testen

Ga naar de Matrix Synapse Federation Tester URL hieronder.

https://federationtester.matrix.org/

Typ nu je Matrix Synapse domeinnaam in en klik op de‘Go‘ knop, en je krijgt het succesvolle resultaat zoals hieronder.

Matrix Synapse Federatie Tester

Zoals te zien is, werkt de Matrix Synapse Federatie via de poort ‘8448’.

– Test Matrix Inloggen met gebruiker en wachtwoord

Ga naar de web-gebaseerde Matrix client met de naam ‘riot.im’ als URL hieronder.

https://riot.im/app/

Klik op de‘Sign In‘ knop en je kunt je aangepaste Matrix Synapse server gebruiken.

Matrix Synapse Meld je aan bij Riot

Typ je domeinnaam en klik op‘Next‘.

Rellen met een eigen domein

Typ nu je gebruikersnaam en wachtwoord, en klik dan op de‘Sign In‘ knop.

Meld je aan bij Matrix Synapse met Riot

Je wordt om extra beveiligingsvragen gevraagd.

Als je ingelogd bent, krijg je de volgende pagina.

Met succes ingelogd in Matrix Synapse met de Riot webapplicatie

Als resultaat is de installatie van Matrix Synapse met de Nginx reverse-proxy en Federation ingeschakeld op Ubuntu 20.04 met succes voltooid.