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
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.
Typ je domeinnaam voor de Matrix Synapse installatie en kies‘OK‘ om verder te gaan.
Kies voor de ‘Anonieme gegevensstatistiek’‘Nee‘.
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.
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.
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
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
Controleer daarna de Nginx dienst met het onderstaande commando.
ss -plnt
systemctl status nginx
Hieronder staat het resultaat dat je krijgt.
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.
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.
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.
Klik op de‘Sign In‘ knop en je kunt je aangepaste Matrix Synapse server gebruiken.
Typ je domeinnaam en klik op‘Next‘.
Typ nu je gebruikersnaam en wachtwoord, en klik dan op de‘Sign In‘ knop.
Je wordt om extra beveiligingsvragen gevraagd.
Als je ingelogd bent, krijg je de volgende pagina.
Als resultaat is de installatie van Matrix Synapse met de Nginx reverse-proxy en Federation ingeschakeld op Ubuntu 20.04 met succes voltooid.