Matrix adalah ekosistem baru untuk komunikasi terdesentralisasi secara real-time untuk pesan instan federasi terbuka dan layanan VoIP. Ini menyediakan RESTful HTTP JSON API untuk membangun server obrolan terdistribusi dan federasi tanpa satu titik kontrol dan kegagalan dan menyediakan semua referensi untuk API.
Synapse adalah implementasi dari server rumah matriks yang dibuat oleh tim matriks dan ditulis dengan Python/Twisted. Dengan perangkat lunak ini, kita dapat menerapkan cara matriks untuk komunikasi terdesentralisasi, kita dapat membuat server rumah kita dan menyimpan semua informasi pribadi pengguna, riwayat obrolan, membuat ruang untuk digunakan sendiri, dll.
Dalam tutorial ini, kami akan menunjukkan cara menginstal dan mengkonfigurasi Synapse Matrix di Ubuntu 20.04. Kami akan menyiapkan Matrix Synapse dengan Nginx sebagai proxy terbalik dan mengamankan instalasi menggunakan SSL yang disediakan oleh Letsencrypt.
Prasyarat
Untuk panduan ini, kami akan menginstal Matrix Synapse pada Ubuntu 20.04 terbaru dengan 1Gb RAM, 25GB ruang disk kosong, dan 2CPU. Selain itu, Anda harus memiliki akses ke server Anda dengan hak akses root di dalamnya.
Apa yang akan kita lakukan?
- Instal Sinapsis Matriks
- Mengonfigurasi Sinapsis Matriks
- Buat SSL Letsencrypt
- Siapkan Nginx sebagai Proxy Terbalik
- Siapkan UFW Firewall
- Daftarkan Pengguna Baru
- Pengujian
Langkah 1 - Instal Matrix Synapse
Pertama, kita akan menginstal Matrix Synapse ke Server Ubuntu 20.04 terbaru. Untuk melakukannya, kita perlu menambahkan kunci GPG dan repositori resmi Matrix Synapse.
Sebelum melangkah lebih jauh, instal beberapa dependensi paket menggunakan perintah apt di bawah ini.
sudo apt install -y lsb-release wget apt-transport-https
Setelah itu, tambahkan kunci GPG dan repositori Matrix Synapse untuk sistem berbasis 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
Sekarang perbarui semua daftar repositori paket dan instal paket Matrix Synapse.
sudo apt update
sudo apt install matrix-synapse-py3
Sekarang Anda akan diminta untuk konfigurasi nama domain.
Ketik nama domain Anda untuk instalasi Matrix Synapse dan pilih 'OK ' untuk melanjutkan.
Untuk 'Statistik Data Anonim', pilih 'Tidak '.
Dan instalasi Matrix Synapse telah selesai.
Selanjutnya, mulai layanan 'matrix-synapse' dan tambahkan ke boot sistem.
systemctl start matrix-synapse
systemctl enable matrix-synapse
Matrix Synapse aktif dan berjalan, periksa menggunakan perintah berikut.
systemctl status matrix-synapse
ss -plnt
Di bawah ini adalah hasil yang akan Anda dapatkan.
Akibatnya, Synapse Matrix berjalan dengan port TCP default '8008' di Ubuntu 20.04.
Langkah 2 - Konfigurasikan Sinaps Matriks
Pada langkah ini, kita akan mengonfigurasi 'bind-addresses' untuk sinapsis Matrix, menonaktifkan pendaftaran di server kita, dan menyiapkan rahasia bersama pendaftaran.
Sebelum melangkah lebih jauh, buat rahasia pendaftaran Matrix Synapse menggunakan perintah berikut.
cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1
Sekarang Anda akan mendapatkan kunci acak, salin kuncinya, dan simpan di catatan Anda.
GH7AP4Zcthz02Cmg58sqUgonm7zlwH0f
Selanjutnya, masuk ke direktori '/etc/matrix-synapse' dan edit konfigurasi 'homeserver.yaml' menggunakan editor vim.
cd /etc/matrix-synapse/
vim homeserver.yaml
Pindah ke bagian 'listeners' dan ubah nilai 'bind-addresses' dengan alamat IP lokal seperti di bawah ini.
listeners:
- port: 8008
tls: false
type: http
x_forwarded: true
bind_addresses: ['127.0.0.1']
resources:
- names: [client, federation]
compress: false
Sekarang nonaktifkan Matrix Synapse jika Anda menjalankan node hanya untuk Anda.
enable_registration: false
Ubah 'registration_shared_secret' dengan frasa sandi acak yang dibuat di atas.
registration_shared_secret: "GH7AP4Zcthz02Cmg58sqUgonm7zlwH0f"
Simpan dan tutup.
Selanjutnya, restart layanan Matrix Synapse untuk menerapkan konfigurasi baru.
systemctl restart matrix-synapse
Periksa layanan menggunakan perintah berikut.
ss -plnt
systemctl status matrix-synapse
Di bawah ini adalah hasil yang akan Anda dapatkan.
Akibatnya, layanan Matrix Synapse aktif dan berjalan dengan konfigurasi baru.
Langkah 3 - Buat SSL Letsencrypt
Pada langkah ini, kami akan membuat SSL Letsencrypt menggunakan alat certbot. Matrix Synapse akan berjalan di bawah koneksi HTTPS yang aman menggunakan sertifikat SSL yang disediakan oleh Letsencrypt.
Instal alat certbot menggunakan perintah apt di bawah ini.
sudo apt install certbot -y
Setelah itu, buat sertifikat SSL baru menggunakan perintah certbot di bawah ini, dan pastikan untuk mengubah alamat email dan nama domain Anda sendiri.
certbot certonly --rsa-key-size 2048 --standalone --agree-tos --no-eff-email --email [email protected] -d hakase-labs.io
Setelah semuanya selesai, sertifikat SSL Anda akan tersedia di direktori '/etc/letsencrypt/live/domain.com/'.
ls -lah /etc/letsencrypt/live/domain.com/
'fullchain.pem' adalah kunci publik, dan 'privkey.pem' adalah kunci pribadi.
Langkah 4 - Siapkan Nginx sebagai Proxy Terbalik
Untuk tutorial ini, kita akan menjalankan Matrix Synapse di bawah proxy Nginx Reverse. Dan untuk langkah ini, kita akan menginstal paket Nginx dan mengaturnya sebagai Proxy Terbalik.
Server web Nginx akan berjalan pada 3 port, port HTTP default '80', port HTTPS aman '443', dan port TCP '8448' yang akan digunakan untuk federasi Matrix Synapse.
Instal paket Nginx menggunakan perintah apt di bawah ini.
sudo apt install nginx -y
Setelah semua instalasi selesai, buka direktori '/etc/nginx/sites-available' dan buat konfigurasi virtualhost baru bernama 'matrix' menggunakan editor vim.
cd /etc/nginx/sites-available/
vim matrix
Ubah nama domain dan jalur sertifikat SSL dengan milik Anda, rekatkan konfigurasi ke dalamnya.
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;
}
}
Simpan dan tutup.
Selanjutnya, aktifkan virtualhost 'matriks' dan uji konfigurasi Nginx. Juga, pastikan tidak ada kesalahan.
ln -s /etc/nginx/sites-available/matrix /etc/nginx/sites-enabled/
nginx -t
Sekarang restart layanan Nginx dan tambahkan ke boot sistem.
systemctl restart nginx
systemctl enable nginx
Setelah itu, periksa layanan Nginx menggunakan perintah di bawah ini.
ss -plnt
systemctl status nginx
Di bawah ini adalah hasil yang akan Anda dapatkan.
Akibatnya, layanan Nginx aktif dan berjalan di Ubuntu 20.04 dengan tiga port berbeda, port HTTP default 80 yang akan secara otomatis dialihkan ke port HTTPS aman, dan port '8448' yang akan digunakan untuk Matrix Synapse Federation.
Langkah 5 - Firewall UFW
Untuk tutorial ini, kita akan menjalankan Matrix Synapse di Ubuntu 20.04 dengan firewall UFW diaktifkan.
Tambahkan ssh, http, https, dan port TCP '8448' ke firewall UFW menggunakan perintah di bawah ini.
for svc in ssh http https 8448
do
ufw allow $svc
done
Setelah itu, jalankan dan aktifkan firewall UFW.
ufw enable
Ketik 'y ' untuk mengonfirmasi dan firewall UFW aktif dan berjalan, periksa semua aturan yang tersedia di firewall UFW menggunakan perintah di bawah ini.
ufw status numbered
Di bawah ini adalah hasil yang akan Anda dapatkan.
Hasilnya, konfigurasi firewall UFW telah selesai.
Langkah 6 - Daftarkan Pengguna
Pada tahap ini, instalasi dan konfigurasi server rumah sinapsis matriks selesai. Dan pada langkah ini, kami akan menunjukkan cara menambahkan pengguna matriks baru dari server baris perintah.
Untuk membuat pengguna matriks baru, jalankan perintah di bawah ini.
sudo register_new_matrix_user -c /etc/matrix-synapse/homeserver.yaml http://localhost:8008
Sekarang ketik nama pengguna dan kata sandi untuk pengguna Anda, untuk menjadikan pengguna sebagai administrator, ketik 'ya'.
New user localpart [root]: changbin
Password:
Confirm password:
Make admin [no]:
Sending registration request...
Success!
Hasilnya, pengguna Matrix baru telah dibuat.
Langkah 7 - Pengujian
Untuk langkah ini, kami akan menguji instalasi server Matrix Synapse kami.
- Menguji Federasi Sinaps Matriks
Buka URL Penguji Federasi Sinapsis Matrix di bawah ini.
https://federationtester.matrix.org/
Sekarang ketik nama domain Matrix Synapse Anda dan klik 'Go ', dan Anda akan mendapatkan hasil sukses seperti di bawah ini.
Seperti yang bisa dilihat, Matrix Synapse Federation bekerja melalui port '8448'.
- Uji Login Matriks dengan Pengguna dan Kata Sandi
Buka klien Matrix berbasis web yang disebut 'riot.im' sebagai URL di bawah ini.
https://riot.im/app/
Klik 'Masuk ' dan Anda dapat menggunakan server Matrix Synapse kustom Anda.
Ketik nama domain Anda dan klik 'Berikutnya '.
Sekarang ketik nama pengguna dan kata sandi Anda, lalu klik 'Masuk '.
Anda akan ditanyai pertanyaan keamanan tambahan.
Setelah Anda masuk, Anda akan mendapatkan halaman berikut.
Hasilnya, penginstalan Matrix Synapse dengan proksi terbalik Nginx dan Federasi yang diaktifkan di Ubuntu 20.04 telah berhasil diselesaikan.