
مقدمه جیتسی میت (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 گسترش دهید.
از همراهی شما با پارمین کلود سپاسگزاریم.




