Cara menghosting sendiri server Jitsi Meet dengan perlindungan kata sandi
Jitsi Meet adalah aplikasi konferensi video gratis. Ini menawarkan alternatif sumber terbuka untuk aplikasi konferensi video berpemilik, seperti Skype atau Zoom. Siapa pun dapat membuat video meeting Jitsi terenkripsi dengan membuka situs web Jitsi Meet atau menginstal aplikasi Jitsi gratis.
Layanan Jitsi Meet juga dapat dihosting sendiri. Dengan menggunakan server Jitsi Meet sumber terbuka, Anda dapat mengoperasikan konferensi video pribadi yang dienkripsi di Internet, di domain yang Anda kontrol.
Petunjuk berikut menunjukkan cara menginstal server Jitsi Meet di VPS dan mengonfigurasi otorisasi, jadi nama pengguna dan kata sandi diperlukan untuk membuat rapat baru. Langkah-langkah ini memerlukan akun dengan penyedia VPS, seperti Linode atau Digital Ocean, serta nama domain terdaftar.
Buat Debian 9 VPS
Mulailah dengan membuat VPS baru untuk server Jitsi Meet Anda. Di dasbor penyedia VPS Anda, buat host virtual baru yang menjalankan Debian 9, dengan setidaknya 2 GB RAM (disarankan).
Misalnya, jika Anda menggunakan Linode, dari dasbor Linode Anda, pilih Membuat > Linode. Dibawah Pilih Distribusi, Pilih Debian 9 dan paket Linode yang menawarkan RAM 2 GB.
Atau, jika Anda menggunakan Digital Ocean, dari dasbor Digital Ocean Anda, pilih Membuat > Droplet. Dibawah Distribusi, pilih Debian 9.12 x64 dan paket Droplet yang menawarkan RAM 2 GB.
Perbarui data DNS
Tambahkan data DNS A / AAAA ke domain Anda dengan nama subdomain dan alamat IPv4 / IPv6 dari VPS baru Anda.
Misalnya, untuk menghosting Jitsi di video.mydomain.com, login ke akun registrar domain Anda, dan edit data DNS untuk mydomain.com. Tambahkan dua catatan untuk nama host video, satu dengan alamat IPv4 (data “A”), dan satu dengan alamat IPv6 (data “AAAA”).
Jika Anda tidak ingin menggunakan subdomain (misalnya, mydomain.com, bukan video.mydomain.com), biarkan nama host kosong di data A / AAAA.
Tingkatkan dan amankan VPS
Buka jendela terminal atau prompt perintah. SSH ke VPS Anda sebagai pengguna root.
ssh [email protected]ipaddress
Perbarui daftar paket dan perbarui perangkat lunak yang diinstal.
apt update && apt -y upgrade
Instal sudo dan UFW (Uncomplicated Firewall).
apt install -y sudo ufw
Konfigurasikan firewall
Konfigurasikan UFW untuk mengizinkan komunikasi TCP pada port yang digunakan oleh SSH, HTTP, dan HTTPS, dan untuk mengizinkan lalu lintas UDP pada port 10000.
ufw allow ssh ufw allow http ufw allow https ufw allow 10000/udp
Aktifkan firewall.
ufw enable
Tetapkan nama host server ke FQDN Anda, misalnya, video.mydomain.com.
hostnamectl set-hostname video.mydomain.com
Tambahkan FQDN ke file host Anda. Buka file / etc / hosts di editor teks, seperti nano.
nano /etc/hosts
Temukan garisnya 127.0.0.1 localhost dan tambahkan FQDN Anda.
127.0.0.1 localhost video.mydomain.com
Simpan file dan keluar dari editor. (Di nano, tekan Ctrl + O, Memasukkan untuk menyimpan file, dan Ctrl + X untuk keluar.)
Buat pengguna dengan hak sudo
Tambahkan akun pengguna baru. Menggantikan myuser dengan nama pengguna yang Anda inginkan.
adduser myuser
Tambahkan pengguna ini ke grup ‘sudo’, sehingga dapat menjalankan perintah dengan sudo.
usermod -aG sudo myuser
Nonaktifkan SSH root
Buka file konfigurasi daemon SSH di editor teks.
nano /etc/ssh/sshd_config
Temukan garisnya PermitRootLogin ya, dan berubah Iya untuk tidak.
PermitRootLogin no
Simpan file dan keluar dari editor (Ctrl + O, Memasukkan, Ctrl + X dalam nano).
Kemudian, mulai ulang daemon SSH.
systemctl restart sshd
Tambahkan kunci SSH
Langkah-langkah berikut menambahkan kunci SSH ke server untuk memberikan keamanan yang lebih kuat. Langkah-langkah ini opsional, tetapi disarankan.
Jika Anda masih masuk ke sesi SSH Anda, keluarlah.
logout
Jika Anda tidak memiliki kunci SSH yang ada, buat di komputer lokal Anda. (Jika Anda memiliki kunci yang ingin digunakan, lewati langkah ini.)
ssh-keygen
Generating public/private rsa key pair. Enter file in which to save the key (C:Usersneilg/.ssh/id_rsa):
Tekan Enter untuk menggunakan nama file kunci publik / pribadi default.
Saat diminta, pilih frasa sandi yang kuat sebagai lapisan keamanan tambahan.
Enter passphrase (empty for no passphrase): This is my passphrase.
Transfer kunci ke server Anda menggunakan SSH. Di Linux dan macOS:
ssh-copy-id [email protected]ipaddress
Di Windows 10:
cd %USERPROFILE%
type .sshid_rsa.pub | ssh [email protected]ipaddress "mkdir -p ~/.ssh; cat >> ~/.ssh/authorized_keys"
Masuk ke VPS menggunakan kunci SSH Anda.
ssh [email protected]ipaddress
Saat diminta, masukkan kata sandi kunci.
Selanjutnya, nonaktifkan otentikasi SSH berbasis kata sandi di VPS. Buka konfigurasi daemon SSH di editor teks.
sudo nano /etc/ssh/sshd_config
Temukan baris yang bertuliskan #PasswordAuthentication ya. Perubahan Iya untuk tidak, dan hapus # untuk menghapus komentar pada baris.
PasswordAuthentication no
Simpan file dan keluar dari editor. Kemudian, mulai ulang daemon SSH.
sudo systemctl restart sshd
Login SSH sekarang dibatasi untuk pengguna dengan file kunci publik dan pribadi yang mengetahui frasa sandi kunci.
Sebagai praktik yang baik, batasi akses ke direktori .ssh hanya untuk pengguna Anda.
sudo chmod 600 ~/.ssh/*
sudo chmod 700 ~/.ssh
Instal server Jitsi Meet
Langkah-langkah berikut ini menginstal paket server Jitsi Meet di VPS Anda.
Pertama, aktifkan instalasi paket APT melalui HTTPS.
sudo apt install -y apt-transport-https
Tambahkan Jitsi ke daftar repositori APT.
echo 'deb https://download.jitsi.org stable/' | sudo tee
/etc/apt/sources.list.d/jitsi-stable.list
Unduh dan instal kunci enkripsi publik dari repositori Jitsi.
wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | sudo
apt-key add -
Perbarui daftar paket APT Anda.
sudo apt update
Instal server Jitsi Meet.
sudo apt install -y jitsi-meet
Saat diminta untuk nama host dari instalasi saat ini, masukkan FQDN Anda, termasuk subdomain, jika ada.
Memilih Buat sertifikat baru yang ditandatangani sendiri.
Selanjutnya, ganti sertifikat yang ditandatangani sendiri dengan sertifikat tepercaya yang disediakan oleh Let’s Encrypt.
sudo /usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh
Saat diminta, masukkan alamat email untuk menerima peringatan atau pemberitahuan tentang sertifikat Anda.
Enter your email and press [ENTER]: [email protected]
Pembuatan sertifikat membutuhkan waktu kurang dari satu menit. Setelah selesai, server Jitsi Meet Anda akan aktif di Internet di domain Anda. Anda dapat membuat rapat baru dan mengundang pengguna dengan membagikan URL rapat.
Namun, aplikasinya tidak aman. Siapa pun yang masuk ke domain Anda dapat membuat rapat Jitsi baru yang dihosting di server Anda.
Untuk mencegah akses tidak sah, langkah-langkah berikut mengaktifkan otentikasi, jadi nama pengguna dan kata sandi diperlukan sebelum pertemuan dibuat.
Konfigurasi Prosody
Prosody adalah komponen Jitsi Meet yang menyediakan komunikasi XMPP antara pengguna dan server. Langkah-langkah berikut mengkonfigurasi Prosody untuk mengotentikasi pengguna yang membuat pertemuan Jitsi.
Buat domain tamu
Di VPS, alihkan pengguna ke root.
sudo su
Ubah ke direktori /etc/prosody/conf.avail/.
cd /etc/prosody/conf.avail/
Buka file fqdn.cfg.lua di editor teks.
nano video.mydomain.com.cfg.lua
Dalam VirtualHost bagian untuk domain Anda, ubah metode otentikasi dari anonim untuk internal_plain.
VirtualHost "video.mydomain.com" ... authentication = "internal_plain" ...
Di atas yang ada VirtualHost bagian untuk situs Anda, masukkan yang baru VirtualHost bagian. Nama ini VirtualHost adalah tamu.fqdn. Misalnya, sisipkan baris berikut untuk membuat tamu baru VirtualHost untuk situs video.mydomain.com.
VirtualHost "guest.video.mydomain.com" authentication = "anonymous" c2s_require_encryption = false modules_enabled = { "bosh"; "pubsub"; "ping"; "speakerstats"; "turncredentials"; "conference_duration"; }
Simpan file dan keluar dari editor. Kemudian, keluar dari akun root.
exit
Pasang modul storage_memory
Modul Prosody opsional, storage_memory, memungkinkan penyimpanan memori sementara untuk informasi persisten, termasuk data sesi pengguna. Kode sumber modul tersedia dari repositori Mercurial Prosody.
Instal Mercurial di VPS Anda.
sudo apt install -y mercurial
Buat direktori sementara dan ubah ke itu.
mkdir ~/temp && cd ~/temp
Gandakan repositori modul prosodi ke direktori baru, prosody_modules.
hg clone 'https://hg.prosody.im/prosody-modules/' prosody-modules
Salin file mod_storage_memory.lua ke direktori / usr / lib / prosody / modules.
sudo cp prosody-modules/mod_storage_memory/*.lua /usr/lib/prosody/modules/.
Buat domain anonim Jitsi
Konfigurasikan Jitsi Meet untuk menggunakan domain anonim bagi pengguna yang diundang ke rapat.
Buka file / etc / jitsi / meet /fqdn-config.js di editor teks.
sudo nano /etc/jitsi/meet/video.mydomain.com-config.js
Dalam config variabel, di tuan rumah kunci, tambahkan kunci baru bernama domain anonim, dengan nilai tamu.fqdn.
Misalnya, jika domain tamu Anda adalah guest.video.mydomain.com, entri akan muncul seperti berikut. Perhatikan bahwa baris diakhiri dengan koma.
var config = { ... hosts: { ... domain: 'video.mydomain.com', anonymousdomain: 'guest.video.mydomain.com', ... }, ... }
Simpan file dan tutup editor teks.
Konfigurasi Jicofo
Jicofo (Jitsi Conference Focus) adalah komponen Jitsi Meet yang mengelola sesi pengguna. Langkah-langkah berikut mengkonfigurasi SIP Jicofo (Session Initiation Protocol) untuk menggunakan otentikasi XMPP.
Buka file /etc/jitsi/jicofo/sip-communicator.properties di editor teks.
sudo nano /etc/jitsi/jicofo/sip-communicator.properties
Tambahkan baris baru dengan konfigurasi berikut. Menggantikan video.mydomain.com dengan FQDN Anda.
org.jitsi.jicofo.auth.URL=XMPP:video.mydomain.com
Simpan file dan keluar dari editor.
Buat pengguna admin Jitsi
Fungsi administratif prosodi diakses menggunakan prosodyctl perintah (“Kontrol prosodi”).
Untuk membuat pengguna / kata sandi untuk Jitsi Meet, jalankan perintah prosodyctl mendaftar username fqdn password.
sudo prosodyctl register alice video.mydomain.com secretpassword123
Ulangi perintah ini untuk setiap pengguna tambahan yang ingin Anda buat.
Hanya pengguna yang membuat rapat baru yang membutuhkan akun. Menghubungkan ke rapat yang ada tidak memerlukan otorisasi.
Mulai ulang layanan
Untuk menerapkan konfigurasi baru, mulai ulang layanan yang terpengaruh.
sudo systemctl restart {prosody,jicofo,jitsi-videobridge2,nginx}
Sekarang, hanya pengguna dengan kombinasi nama pengguna / kata sandi yang benar yang dapat membuat pertemuan baru di server Jitsi Anda.
Membuat pertemuan baru
Ikuti langkah-langkah berikut untuk membuat rapat baru di server Jitsi Anda.
Di browser
Di laptop atau komputer desktop, buka browser ke alamat server Jitsi Anda.
Dibawah Mulailah rapat baru, ketikkan nama untuk rapat tersebut, dan klik Pergilah.
Nama ini muncul di URL yang Anda bagikan dengan para undangan. Nama rapat tidak peka huruf besar-kecil.
Klik Saya tuan rumahnya.
Masukkan nama pengguna dan kata sandi Jitsi yang Anda buat, dan klik OK.
Jika otentikasi berhasil, konferensi segera ditayangkan.
Anda hanya perlu mengautentikasi sekali per sesi browser. Untuk melupakan login Anda saat ini, bersihkan cookie browser Anda, lihat: Bagaimana cara mengaktifkan, menonaktifkan, melihat, atau menghapus cookie Internet?
Di aplikasi seluler
Dapatkan aplikasi Jitsi untuk iOS di App Store, atau untuk Android di Play Store.
Buka aplikasi Jitsi Meet. Ketuk tombol menu dan pilih Pengaturan.
Dalam pengaturan, di bawah URL Server, masukkan domain server Jitsi Anda.
Kembali ke jendela aplikasi utama. Masukkan nama rapat baru, dan ketuk buat / gabung.
Keran baik.
Masukkan nama pengguna dan kata sandi Jitsi yang Anda buat, dan ketuk baik.
Jika aplikasi tampak berhenti saat “Menghubungkan”, tunggu beberapa detik hingga autentikasi selesai.