سرورلینوکس

آموزش نصب Jitsi Meet در دبیان 12

در این آموزش جامع، نحوه نصب و پیکربندی سرور کنفرانس ویدیویی Jitsi Meet روی دبیان 12 را در پارمین کلود یاد بگیرید. با راه‌اندازی احراز هویت کاربران و گواهینامه رایگان Let's Encrypt، یک سیستم ارتباط تصویری امن و کاملاً خصوصی بسازید.

مقدمه جیتسی میت (Jitsi Meet) یک اپلیکیشن متن‌باز برای برگزاری کنفرانس‌های ویدیویی است که بر پایه فناوری WebRTC ساخته شده است. یک سرور Jitsi Meet به شما اجازه می‌دهد اتاق‌های کنفرانس ویدیویی چندنفره ایجاد کنید که بدون نیاز به هیچ نرم‌افزار اضافی، تنها از طریق مرورگر قابل دسترسی هستند و قابلیت‌هایی مشابه با تماس‌های کنفرانسی اسکایپ (Skype) یا زوم (Zoom) ارائه می‌دهند. بزرگترین مزیت استفاده از Jitsi این است که تمام داده‌های شما تنها از سرور خودتان عبور می‌کند و رمزنگاری سرتاسری TLS اطمینان حاصل می‌کند که هیچ‌کس نتواند تماس شما را شنود کند. با Jitsi می‌توانید مطمئن باشید که اطلاعات خصوصی شما کاملاً محافظت می‌شود.

(نکته: از آنجایی که نسخه‌های قدیمی‌تر دبیان مانند دبیان 10 به پایان عمر خود رسیده‌اند، در این آموزش مراحل را برای دبیان 12 (Bookworm) که جدیدترین نسخه پایدار است، به‌روزرسانی کرده‌ایم. همچنین روش مدیریت کلیدهای امنیتی برای سازگاری با دبیان 12 مدرن‌سازی شده است.)

در این آموزش، شما یک سرور Jitsi Meet را روی دبیان 12 نصب و پیکربندی خواهید کرد. پیکربندی پیش‌فرض به هر فردی اجازه می‌دهد اتاق کنفرانس جدیدی ایجاد کند که برای سروری که در اینترنت در دسترس عموم قرار دارد، ایده‌آل نیست؛ بنابراین Jitsi Meet را به گونه‌ای تنظیم می‌کنید که تنها کاربران ثبت‌شده بتوانند اتاق‌های جدید ایجاد کنند. پس از ایجاد اتاق توسط یک کاربر، سایر کاربران (بدون نیاز به ثبت‌نام) می‌توانند به شرط داشتن آدرس یکتای اتاق و رمز عبور اختیاری، به آن وارد شوند.

پیش‌نیازها پیش از شروع این راهنما به موارد زیر نیاز دارید:

  • یک سرور دبیان 12 که طبق راهنمای راه‌اندازی اولیه سرور پیکربندی شده باشد، شامل یک کاربر غیر روت (non-root) با دسترسی sudo. سایز سرور شما عمدتاً به پهنای باند موجود و تعداد شرکت‌کنندگانی که انتظار دارید از سرور استفاده کنند بستگی دارد. جدول زیر ایده‌ای کلی از منابع مورد نیاز به شما می‌دهد.
  • یک نام دامنه که به سرور شما اشاره داشته باشد. می‌توانید با مراجعه به مستندات دامنه‌ها و DNS در پارمین کلود (Parmin Cloud)، نحوه اتصال دامنه‌ها به سرورهای ابری پارمین کلود را یاد بگیرید. در این راهنما از دامنه نمونه jitsi.your-domain استفاده شده است.

هنگام انتخاب سرور برای اجرای Jitsi Meet، باید منابع سیستمی مورد نیاز برای میزبانی اتاق‌های کنفرانس را در نظر بگیرید. اطلاعات بنچمارک زیر بر روی یک ماشین مجازی تک‌هسته‌ای با تنظیمات ویدیویی باکیفیت جمع‌آوری شده است:

تعداد شرکت‌کنندگانمصرف CPUپهنای باند سرور
دو نفر3%30Kbps آپلود، 100Kbps دانلود
سه نفر15%7Mbps آپلود، 6.5Mbps دانلود

دلیل این جهش ناگهانی در مصرف منابع بین دو و سه نفر این است که وقتی فقط دو کاربر حضور دارند، Jitsi داده‌های تماس را مستقیماً بین کلاینت‌ها مسیریابی می‌کند. اما وقتی بیش از دو کلاینت وجود داشته باشند، داده‌های تماس از طریق سرور Jitsi Meet عبور می‌کنند.


مرحله ۱ — تنظیم نام میزبان (Hostname) سیستم

در این مرحله، نام میزبان سیستم را با دامنه‌ای که قصد دارید برای Jitsi Meet خود استفاده کنید تنظیم کرده و آن را به آدرس IP لوکال‌هاست (127.0.0.1) نگاشت می‌کنید. Jitsi Meet هنگام نصب و تولید فایل‌های پیکربندی از این تنظیمات استفاده می‌کند.

ابتدا نام میزبان سیستم را روی دامنه مورد نظر خود تنظیم کنید:

bash

sudo hostnamectl set-hostname jitsi.your-domain

با دستور زیر بررسی کنید که این کار با موفقیت انجام شده است:

bash

hostname

این دستور باید نام میزبانی که تنظیم کرده‌اید را برگرداند:

text

Output

jitsi.your-domain

سپس، یک نگاشت محلی از نام میزبان سرور به آدرس IP لوپ‌بک (127.0.0.1) ایجاد کنید. این کار را با باز کردن فایل /etc/hosts با یک ویرایشگر متن انجام دهید:

bash

sudo nano /etc/hosts

خط زیر را به آن اضافه کنید:

/etc/hosts

text

127.0.0.1 jitsi.your-domain

این کار به سرور Jitsi Meet اجازه می‌دهد تا از چندین پردازش شبکه‌ای استفاده کند که اتصالات محلی را از یکدیگر روی آدرس IP 127.0.0.1 می‌پذیرند. این اتصالات با استفاده از یک گواهینامه TLS که به نام دامنه شما ثبت شده است، احراز هویت و رمزنگاری می‌شوند. فایل را ذخیره کرده و خارج شوید.


مرحله ۲ — پیکربندی فایروال

اگر راهنمای راه‌اندازی اولیه سرور را دنبال کرده باشید، فایروال UFW را فعال کرده و پورت SSH را باز کرده‌اید. سرور Jitsi برای ارتباط با کلاینت‌های تماس و همچنین فرآیند نصب گواهینامه TLS به باز بودن چند پورت نیاز دارد.

پورت‌هایی که باید باز کنید عبارتند از:

  • 80/tcp برای درخواست گواهینامه TLS.
  • 443/tcp برای صفحه وب ایجاد اتاق کنفرانس.
  • 4443/tcp و 10000/udp برای انتقال و دریافت ترافیک رمزنگاری‌شده تماس.

دستورات ufw زیر را برای باز کردن این پورت‌ها اجرا کنید:

bash

sudo ufw allow 80/tcp

sudo ufw allow 443/tcp

sudo ufw allow 4443/tcp

sudo ufw allow 10000/udp

با دستور ufw status بررسی کنید که همگی اضافه شده‌اند:

bash

sudo ufw status

سرور اکنون برای نصب Jitsi آماده است.


مرحله ۳ — نصب Jitsi Meet

در این مرحله، مخزن پایدار Jitsi را به سرور خود اضافه کرده و پکیج Jitsi Meet را از آن نصب می‌کنید.

ابتدا پکیج‌های پیش‌نیازی را نصب کنید:

bash

sudo apt update

sudo apt install gnupg curl apt-transport-https

در دبیان 12 (و سیستم‌های مدرن)، کلیدهای GPG باید به صورت امن در مسیر keyring ذخیره شوند. کلید GPG مخزن Jitsi را دانلود و اضافه کنید:

bash

curl https://download.jitsi.org/jitsi-key.gpg.key | sudo gpg –dearmor -o /usr/share/keyrings/jitsi-keyring.gpg

اکنون فایل مخزن Jitsi را ایجاد کنید:

bash

echo “deb [signed-by=/usr/share/keyrings/jitsi-keyring.gpg] https://download.jitsi.org stable/” | sudo tee /etc/apt/sources.list.d/jitsi-stable.list

در نهایت، یک به‌روزرسانی سیستم انجام داده و پکیج jitsi-meet را نصب کنید:

bash

sudo apt update

sudo apt install jitsi-meet

در طول نصب jitsi-meet، از شما خواسته می‌شود نام دامنه‌ای (مثلاً jitsi.your-domain) که می‌خواهید برای نمونه Jitsi خود استفاده کنید را وارد کنید.

نکته: برای جابجایی مکان‌نما از فیلد نام میزبان به دکمه <OK> از کلید TAB استفاده کنید. وقتی <OK> هایلایت شد، کلید ENTER را برای تایید بزنید.

سپس یک کادر محاوره‌ای جدید نمایش داده می‌شود که می‌پرسد آیا می‌خواهید Jitsi یک گواهینامه TLS خودامضا (Self-signed) ایجاد کند یا از گواهی موجود استفاده کنید. اگر گواهینامه TLS برای دامنه خود ندارید، گزینه اول یعنی Generate a new self-signed certificate را انتخاب کنید.

نمونه Jitsi Meet شما اکنون با یک گواهینامه TLS خودامضا نصب شده است. این موضوع باعث ایجاد هشدار امنیتی در مرورگر می‌شود، بنابراین در مرحله بعد یک گواهینامه معتبر دریافت خواهید کرد.


مرحله ۴ — دریافت گواهینامه امضا شده TLS

Jitsi Meet از گواهینامه‌های TLS برای رمزنگاری ترافیک تماس استفاده می‌کند تا هیچ‌کس نتواند تماس شما را هنگام عبور از اینترنت شنود کند.

Jitsi Meet برنامه‌ای برای دانلود خودکار گواهینامه TLS ارائه می‌دهد که از ابزار Certbot استفاده می‌کند. ابتدا پکیج certbot را نصب کنید:

bash

sudo apt install certbot

اکنون اسکریپت نصب گواهینامه ارائه‌شده توسط Jitsi را اجرا کنید:

bash

sudo /usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh

هنگام اجرای این اسکریپت، از شما خواسته می‌شود یک آدرس ایمیل وارد کنید. این ایمیل به سازمان صادرکننده گواهی (Let’s Encrypt) ارسال شده و برای اطلاع‌رسانی در مورد مسائل امنیتی و انقضای گواهی استفاده می‌شود. ایمیل خود را وارد کرده و ENTER را بزنید. نصب بدون درخواست‌های بعدی تکمیل خواهد شد.

پس از اتمام کار، نمونه Jitsi شما برای استفاده از گواهینامه معتبر پیکربندی می‌شود. تمدید گواهینامه‌ها نیز به‌طور خودکار انجام می‌شود زیرا نصب‌کننده یک اسکریپت تمدید هفتگی در مسیر /etc/cron.weekly/letsencrypt-renew قرار داده است.

سرور Jitsi Meet شما اکنون در حال اجراست. می‌توانید مرورگر خود را باز کرده و آدرس دامنه خود را وارد کنید تا یک اتاق کنفرانس جدید ایجاد کنید.

اما پیکربندی پیش‌فرض اجازه می‌دهد هر فردی که به صفحه اصلی سرور شما مراجعه می‌کند، اتاق کنفرانس ایجاد کند. این کار منابع سرور شما را مصرف می‌کند. در مرحله بعد، Jitsi را طوری پیکربندی می‌کنید که فقط کاربران ثبت‌شده بتوانند اتاق ایجاد کنند.


مرحله ۵ — محدود کردن ایجاد اتاق‌های کنفرانس

در این مرحله، سرور Jitsi را پیکربندی می‌کنید تا تنها کاربران ثبت‌شده بتوانند اتاق کنفرانس ایجاد کنند. در مثال‌های زیر، متغیر your_domain به جای نام دامنه شما استفاده شده است.

ابتدا فایل /etc/prosody/conf.avail/your_domain.cfg.lua را با یک ویرایشگر متن باز کنید:

bash

sudo nano /etc/prosody/conf.avail/your_domain.cfg.lua

این خط را پیدا کرده:

lua

authentication = “anonymous”

و به شکل زیر تغییر دهید:

lua

authentication = “internal_plain”

این پیکربندی به Jitsi می‌گوید که قبل از اجازه ایجاد اتاق، احراز هویت با نام کاربری و رمز عبور را الزامی کند.

سپس، در همان فایل، بخش زیر را به انتهای آن اضافه کنید:

lua

VirtualHost “guest.your_domain”

authentication = “anonymous”

c2s_require_encryption = false

این پیکربندی به کاربران مهمان (ناشناس) اجازه می‌دهد به اتاق‌هایی که توسط کاربر احراز هویت‌شده ایجاد شده است بپیوندند. در اینجا شما guest. را به ابتدای نام دامنه خود اضافه کردید (مثلاً guest.jitsi.your-domain). این نام میزبان فقط به صورت داخلی توسط Jitsi استفاده می‌شود و نیازی نیست آن را در مرورگر وارد کرده یا رکورد DNS برای آن بسازید.

فایل را ذخیره کرده و ببندید. سپس فایل پیکربندی دیگر را در مسیر /etc/jitsi/meet/your_domain-config.js باز کنید:

bash

sudo nano /etc/jitsi/meet/your_domain-config.js

این خط را پیدا کرده:

javascript

// anonymousdomain: ‘guest.example.com’,

و آن را به شکل زیر ویرایش کنید (توجه که دو خط slash را حذف کردیم):

javascript

anonymousdomain: ‘guest.your_domain’,

در ادامه، فایل /etc/jitsi/jicofo/sip-communicator.properties را باز کنید:

bash

sudo nano /etc/jitsi/jicofo/sip-communicator.properties

و خط زیر را برای تکمیل تغییرات پیکربندی به آن اضافه کنید:

text

org.jitsi.jicofo.auth.URL=XMPP:your_domain

این تنظیمات یکی از پردازش‌های Jitsi را به سرور محلی هدایت می‌کند که اکنون احراز هویت کاربر را انجام می‌دهد.

حالا باید کاربران و رمز عبور آن‌ها را ثبت کنید. از ابزار prosodyctl برای این کار استفاده کنید. دستور زیر را برای افزودن یک کاربر اجرا کنید:

bash

sudo prosodyctl register user your_domain password

کاربری که اینجا اضافه می‌کنید یک کاربر سیستم (Linux) نیست، بلکه فقط قادر به ایجاد اتاق کنفرانس خواهد بود و نمی‌تواند با SSH وارد سرور شود.

در نهایت، سرویس‌های Jitsi و Nginx را برای اعمال تنظیمات جدید ری‌استارت کنید:

bash

sudo systemctl restart prosody.service

sudo systemctl restart jicofo.service

sudo systemctl restart jitsi-videobridge2.service

sudo systemctl restart nginx

نمونه Jitsi Meet شما اکنون هنگام ایجاد اتاق کنفرانس، با یک کادر محاوره‌ای نام کاربری و رمز عبور را درخواست می‌کند. سرور شما با موفقیت راه‌اندازی و به صورت امن پیکربندی شده است.

نتیجه‌گیری در این مقاله، شما یک سرور Jitsi Meet مستقر کردید که می‌توانید از آن برای میزبانی اتاق‌های کنفرانس ویدیویی امن و خصوصی استفاده کنید. می‌توانید نمونه Jitsi خود را با راهنمایی‌های موجود در Jitsi Meet Wiki گسترش دهید.

از همراهی شما با پارمین کلود سپاسگزاریم.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

همچنین ببینید
بستن
دکمه بازگشت به بالا