Pengembangan Federasi

Menjalankan secara lokal

Pasang dependensi yang dijelaskan di pengembangan Docker. Kemudian, jalankan berikut

cd docker/federation
./start-local-instances.bash

Pengujian federasi membangun lima peladen:

PeladenNama PenggunaLokasiCatatan
lemmy-alphalemmy_alpha127.0.0.1:8540terfederasi dengan seluruh peladen lainnya
lemmy-betalemmy_beta127.0.0.1:8550terfederasi dengan seluruh peladen lainnya
lemmy-gammalemmy_gamma127.0.0.1:8560terfederasi dengan seluruh peladen lainnya
lemmy-deltalemmy_delta127.0.0.1:8570hanya memperbolehkan federasi dengan lemmy-beta
lemmy-epsilonlemmy_epsilon127.0.0.1:8580menggunakan daftar-hitam, memblokir lemmy-alpha

Anda bisa masuk ke setiap itu dengan nama peladen dan lemmy sebagai kata sandinya, misal (lemmy_alpha, lemmy).

Untuk memulai federasi antar peladen, kunjungi salah satu dari itu dan cari satu pengguna, komunitas, atau pos, seperti ini. Mohon dicatat bahwa bagian-belakang Lemmy berjalan di porta yang berbeda dari antarmuka, jadi Anda harus menambahkan angka porta di bilah URL dengan satu.

  • !main@lemmy-alpha:8541
  • http://lemmy-beta:8551/post/3
  • @lemmy-gamma@lemmy-gamma:8561

Kontainer Firefox merupakan cara terbaik untuk menguji interaksi mereka.

Jalankan di sebuah peladen

Gunakan hanya untuk pengujian, tidak di peladen aktif, dan ketahuilah bahwa mengaktifkan federasi dapat merusak peladen Anda.

Ikuti instruksi pemasangan normal, entah menggunakan Ansible atau secara manual. Kemudian, ganti baris image: dessalines/lemmy:v0.x.x di /lemmy/docker-compose.yml dengan image: dessalines/lemmy:federation. Tambah dan konfigurasi blok federasi ini ke lemmy.hjson Anda.

Setelah itu, dan kapan pun yang Anda inginkan untuk memperbarui ke versi terbaru, jalankan perintah ini di peladen:

cd /lemmy/
sudo docker-compose pull
sudo docker-compose up -d

Model Keamanan

  • Verifikasi tanda digital HTTP : Ini menjamin bahwa aktifitas memang datang dari aktifitas yang diklaim
  • check_is_apub_valid : Memastikan bahwa itu ada di daftar peladen yang diperbolehkan
  • Pemeriksaan tingkat rendah : Untuk memastikan bahwa pengguna bisa membuat/memperbarui/menghapus pos di peladen yang sama dengan pos tersebut

Untuk poin terakhir, harap dicatat bahwa kita tidak memeriksa apakah aktor yang mengirimkan aktifitas membuat sebuah pos sebenarnya sama dengan pembuat pos, atau pengguna yang menghapus pos merupakan moderator/admin. Hal tersebut diperiksa oleh kode API, dan merupakan tanggung jawab setiap peladen untuk memeriksa izin pengguna. Ini tidak meninggalkan vektor serangan apa pun, karena sebagai pengguna peladen normal tidak bisa melakukan aksi yang melanggar peraturan API. Satu-satunya yang bisa melakukannya adalah admin (dan perangkat lunak yang digunakan oleh admin). Tapi admin bisa melakukan apa pun di peladen, termasuk mengirim aktifitas dari akun pengguna lainnya. Jadi kita tidak akan mendapatkan keamanan apa pun dengan memeriksa izin mod dan serupa.