آموزش نصب BigBlueButton
آموزش نصب BigBlueButton بصورت کامل بر روی سیستم عامل Ubuntu
این آموزش شما را از طریق نصب BigBlueButton 2.7 راهنمایی می کند (که از این پس به سادگی BigBlueButton نصب و استفاده می شود).
BigBlueButton یک برنامه وب یک صفحه ای کاملاً پاسخگو است که از قابلیت های داخلی مرورگر برای ارسال و دریافت صدا و فیلم استفاده می کند ، سرور BigBlueButton برای رسیدگی به رسانه ها ، تماس های API ورودی ، پردازش اسلایدهای آپلود شده و تبدیل رسانه های ضبط شده به ضبط ، چندین فرآیند برگشت را اجرا می کند .
Full HTML5 client
BigBlueButton برای رابط کاربری خود از یک سرویس دهنده کامل HTML5 استفاده می کند. این بدان معنی است که همان کلاینت روی دسک تاپ ، لپ تاپ ، chromebook و دستگاه های تلفن همراه شما (iOS 12.2+ و Android 6.0+) اجرا می شود و ما Chrome و FireFox را توصیه می کنیم زیرا این مرورگرها بهترین پشتیبانی را برای webRTC ارائه می دهند.
کلاینت BigBlueButton موارد فوق را ارائه می دهد :
- بارگذاری 2 برابر سریعتر از نسخه قبلی
- اشتراک گذاری صوتی ، فیلم و صفحه با کیفیت بالا (با استفاده از WebRTC)
- یادداشت های مشترک برای ویرایش چند کاربر (با استفاده از پروژه عالی EtherPad )
- کاملاً در دسترس خوانندگان صفحه است
- ویدیوهای YouTube را در طول جلسه به اشتراک بگذارید
می توانید آخرین نسخه کلاینت HTML5 را در https://test.bigbluebutton.org/ امتحان کنید .
گزینه های نصب
هنگام نصب BigBlueButton دو گزینه وجود دارد: bbb-install.shو یا مرحله به مرحله.
صرف نظر از انتخاب شما ، برای نصب موفقیت آمیز مورد نیاز خود
- به دست آوردن سرور اختصاصی ،
- اطمینان حاصل کنید که سرور حداقل مجموعه نیازهای BigBlueButton را برآورده می کند ،
- یک نام میزبان اختصاص دهید (توصیه می شود SSL را تنظیم کنید) ، و
- فایروال سرور را پیکربندی کنید (در صورت لزوم).
دو گزینه در زیر آمده است.
نصب bbb installsh
اگر می خواهید سرور BigBlueButton را به سرعت راه اندازی کنید (یا قبلاً سرورهای BigBlueButton را راه اندازی کرده اید) ، سپس bbb-install.sh شما را در حدود 15 دقیقه با یک دستور واحد راه اندازی می کنید.
نصب مرحله به مرحله
اگر می خواهید بیشتر از مؤلفه های BigBlueButton را بفهمید ، از این دستورالعمل های گام به گام در این راهنما استفاده می کنید.
قبل از نصب
برای نصب موفقیت آمیز BigBlueButton توصیه می شود با یک سرور 64 بیتی خام Ubuntu 20.04 که به طور اختصاصی برای BigBlueButton در نظر گرفته شده است شروع کنید.
منظور از خام این است که سرور هیچ برنامه وب قبلی نصب نشده باشد (مانند plesk ، webadmin یا apache) که پورت های 80 یا 443 را اشغال کرده باشد. منظور از اختصاص داده شده این است که این سرور به جز اجرای BigBlueButton و برنامه های مربوط به آن مانند Greenlight برای هیچ کار دیگری مورد استفاده قرار نگیرد.
حداقل مورد نیاز سرور
حداقل نیازمندی های سرور برای نصب BigBlueButton 2.7
- سیستم عامل Ubuntu 20.04 64 بیتی با هسته Linux 5.x
- 8 گیگابایت حافظه RAM (پیشنهاد می شود 16 گیگابایت یا بیشتر باشد)
- 4 هسته CPU (پیشنهاد می شود 8 هسته یا بیشتر)
- پورت های TCP 80 و 443 باز و در دسترس باشند
- پورت های UDP 16384 – 32768 در دسترس باشند
- پورت 80 آزاد باشد و توسط هیچ برنامه دیگری (مانند Apache یا Nginx) اشغال نشده باشد
توصیه های بیشتر برای سرورهای محیط تولید (Production)
- حداقل 500 گیگابایت فضای دیسک آزاد (برای ذخیره سازی ضبط جلسات، بیشتر بهتر است)
- پهنای باند 250 مگابیت در ثانیه متقارن یا بیشتر
- سخت افزار اختصاصی (Dedicated Hardware)
- داشتن یک نام میزبان (Hostname) معتبر (مانند: bbb.example.com) برای صدور گواهی SSL
- آدرس های IPv4 و IPv6
BigBlueButton از FreeSWITCH برای پردازش بسته های صوتی استفاده می کند. FreeSWITCH در یک محیط مجازیسازی نشده (غیر کانتینری) بهترین عملکرد را دارد. برای جزئیات بیشتر می توانید به تنظیمات توصیه شده FreeSWITCH مراجعه کنید.
نیازمندی های حداقلی برای توسعه محلی (Development)
اگر قصد تست یا توسعه محلی دارید، می توانید با منابع کمتر BigBlueButton را اجرا کنید:
- 2 هسته CPU
- نصب بر روی یک ماشین مجازی (VM) یا LXC Container
- فقط آدرس IPv4 (بدون نیاز به نام دامنه)
با این حال، بدون پیکربندی SSL، امکان استفاده از قابلیت های WebRTC مانند اشتراک گذاری میکروفون، وب کم یا صفحه نمایش وجود ندارد. مرورگرها تنها در صورتی اجازه دسترسی به رسانه ها را می دهند که ارتباط از طریق HTTPS برقرار شده باشد.
اجرای BigBlueButton بر روی Amazon EC2
اگر می خواهید BigBlueButton را روی AWS اجرا کنید، توصیه می شود از نمونه c5.xlarge (یا نمونه هایی با CPU قوی تر) استفاده کنید. این نمونه ها عملکردی نزدیک به یک سرور اختصاصی ارائه می دهند.
نیازمندی های کاربران نهایی
- استفاده از آخرین نسخه مرورگرهای Firefox یا Chrome
- اتصال اینترنت با حداقل پهنای باند زیر:
- فقط صدا: 0.2 Mbps
- صدا و وب کم: 2 Mbps
- صدا، وب کم و اشتراک گذاری صفحه: 4 Mbps یا بیشتر
بررسی های پیش از نصب BigBlueButton 2.7
پیش از شروع نصب BigBlueButton 2.7 روی Ubuntu 20.04 ، لازم است چند بررسی اولیه روی سرور انجام دهید تا مطمئن شوید شرایط حداقلی لازم فراهم است. این بررسیها کمک می کند در حین نصب با مشکلات کمتری مواجه شوید.
1- بررسی Locale سرور
ابتدا بررسی کنید که Locale سرور روی en_US.UTF-8 تنظیم شده باشد:
cat /etc/default/locale
خروجی مورد انتظار:
LANG=”en_US.UTF-8″
اگر مقدار دیگری مشاهده کردید، با دستورات زیر Locale را اصلاح کنید:
sudo apt-get install language-pack-en
sudo update-locale LANG=en_US.UTF-8
سپس از جلسه SSH خارج شوید و دوباره وارد شوید. دوباره دستور زیر را اجرا کنید:
cat /etc/default/locale
باید تنها خط زیر نمایش داده شود:
LANG=”en_US.UTF-8″
اگر خطی مانند LC_ALL=en_US.UTF-8 مشاهده کردید، آن را از فایل /etc/default/locale حذف کنید.
همچنین با دستور زیر بررسی کنید:
sudo systemctl show-environment
خروجی باید شامل این مقدار باشد:
LANG=en_US.UTF-8
در صورت نبودن، دستور زیر را اجرا کنید و مجدد بررسی نمایید:
sudo systemctl set-environment LANG=en_US.UTF-8
بررسی میزان حافظه RAM
با دستور زیر میزان حافظه سرور را بررسی کنید:
free -h
برای نصب BigBlueButton حداقل 8 گیگابایت RAM لازم است (16 گیگابایت توصیه می شود).
اگر مقدار حافظه کمتر از 8GB باشد، سرور شما مناسب نیست.
بررسی نسخه سیستم عامل
مطمئن شوید سیستم عامل سرور شما Ubuntu 20.04 64-bit است:
cat /etc/lsb-release
خروجی مورد انتظار:
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION=”Ubuntu 20.04.x LTS”
و همچنین بررسی کنید معماری سیستم 64 بیتی باشد:
uname -m
خروجی مورد انتظار:
x86_64
بررسی پشتیبانی از IPv6
برای اطمینان از فعال بودن IPv6، دستور زیر را اجرا کنید:
ip addr | grep inet6
باید خطی مشابه زیر نمایش داده شود:
inet6 ::1/128 scope host
اگر خروجی نداشتید و قصد استفاده از IPv6 را ندارید، باید بعد از نصب، پیکربندی FreeSWITCH را برای غیرفعال کردن IPv6 تغییر دهید.
بررسی نسخه هسته لینوکس
سیستم باید از هسته لینوکس 5.x پشتیبانی کند:
uname -r
خروجی باید نسخه ای مشابه زیر باشد:
5.4.0-xx-generic
بررسی تعداد CPU
BigBlueButton 2.7 حداقل به 4 هسته CPU نیاز دارد (8 هسته توصیه می شود).
cat /proc/cpuinfo | awk ‘/^processor/{print $3}’ | wc -l
خروجی باید 4 یا بیشتر باشد.
نکته مهم
BigBlueButton فقط روی نسخه 64 بیتی Ubuntu 20.04 تست و پشتیبانی می شود. دلیل این موضوع تمرکز بر کیفیت و پایداری است. تیم توسعه BigBlueButton ترجیح می دهد یک نسخه مشخص از لینوکس به طور کامل تست و مستند شود تا اینکه از توزیعها و نسخههای متعدد پشتیبانی کند که هیچکدام پایدار نباشند.
ضرورت داشتن نام میزبان (Hostname) و گواهی SSL
برای اجرای BigBlueButton در محیط تولید (Production) حتماً باید یک نام دامنه معتبر (FQDN) مانند:
bigbluebutton.example.com
به سرور اختصاص دهید و همچنین سرور را با یک گواهی SSL معتبر پیکربندی کنید.
جهت خرید وی پی اس آلمان از قائم هاست قبل از خرید میتوانید از طریق لینک مشاوره قبل از خرید با کارشناسان بخش فروش سوالات قبل از خرید خود را مطرح نمایید.
چرا نیاز به نام دامنه و SSL داریم؟
- nginx (وبسروری که همراه با BigBlueButton نصب میشود) تنها با گواهی SSL میتواند محتوا را از طریق HTTPS ارائه دهد.
- بدون استفاده از HTTPS، مرورگرها اجازه اشتراکگذاری میکروفون یا وب کم را نمیدهند.
- در صورت نبود HTTPS، بسیاری از مرورگرها هشدار «محتوای ناامن» نمایش خواهند داد.
به همین دلیل، داشتن نام دامنه و گواهی SSL معتبر برای هر سروری که در محیط واقعی استفاده میشود کاملاً ضروری است.
چگونه نام دامنه و گواهی SSL تهیه کنیم؟
1- ثبت دامنه (Domain Registration):
میتوانید از طریق ثبتکنندههای معتبر دامنه (مانند GoDaddy یا Namecheap و یا سایر شرکتهای ثبت دامنه) یک نام دامنه تهیه کنید.
2- دریافت گواهی SSL:
- روش پیشنهادی: استفاده از Let’s Encrypt (رایگان، خودکار و معتبر).
- یا استفاده از گواهیهای تجاری (مانند Comodo ، DigiCert و غیره) در صورتی که نیاز به پشتیبانی رسمی دارید.
در عمل، توصیه میشود هنگام نصب BigBlueButton از ابزار certbot برای دریافت و تمدید خودکار گواهی Let’s Encrypt استفاده کنید.
اگر بین سرور شما و کاربران فایروال وجود دارد، قبل از نصب یا بهروزرسانی BigBlueButton باید پیکربندی آن را بررسی کنید.
پورتهای مورد نیاز:
- TCP: 80 و 443
- UDP: 16384 تا 32768
اطمینان حاصل کنید که این پورتها باز باشند و برنامه دیگری از آنها استفاده نکند.
بهروزرسانی و ارتقاء BigBlueButton
نسخه پشتیبان
قبل از هر بهروزرسانی، اگر تغییراتی در فایلهای پیکربندی BigBlueButton ایجاد کردهاید، از این تغییرات نسخه پشتیبان تهیه کنید تا پس از بهروزرسانی بتوانید دوباره اعمال کنید.
ارتقاء از نسخههای قدیمی
ارتقاء از BigBlueButton 2.2
اگر نسخه قبلی شما BigBlueButton 2.2 است و از Let’s Encrypt برای گواهی SSL استفاده کردهاید و تغییرات سفارشی اعمال نکردهاید، میتوانید با اجرای اسکریپت زیر به نسخه جدید ارتقاء دهید:
sudo bbb-install.sh
اگر تغییرات سفارشی داشتهاید:
از تغییرات خود نسخه پشتیبان تهیه کنید.
بستههای سیستم و BigBlueButton را بهروز کنید:
sudo apt-get update
sudo apt-get dist-upgrade
سپس آدرس IP یا نام میزبان سرور را به فایلهای پیکربندی BigBlueButton اختصاص دهید:
sudo bbb-conf –setip
sudo bbb-conf –check
مثال:
sudo bbb-conf –setip bbb.example.com
sudo bbb-conf –check
ارتقاء از BigBlueButton 2.0
اگر از نسخه 2.0 استفاده میکنید و تغییرات سفارشی داشتهاید:
ابتدا از تغییرات نسخه پشتیبان تهیه کنید.
پاکسازی بستههای قدیمی:
sudo apt-get purge -y bbb-client
sudo apt-get purge -yq kms-core-6.0 kms-elements-6.0 kurento-media-server-6.0
sudo bbb-conf –restart
سپس میتوانید از طریق bbb-install.sh یا مراحل دستی به نسخه جدید ارتقاء دهید و تغییرات خود را دوباره اعمال کنید.
نکته: اگر از اسکریپت bbb-install.sh استفاده کنید، نیازی به پاکسازی دستی bbb-client و بستههای Kurento نیست، زیرا اسکریپت بهصورت خودکار ارتقاء از نسخه 2.0 را مدیریت میکند.
آموزش نصب و راه اندازی BigBlueButton
برای نصب و راهاندازی BigBlueButton نسخه 2.7 بر روی سرور Ubuntu 20.04، مراحل زیر را با دقت دنبال کنید.
پیش نیازهای بیگ بلو باتن برای نصب
قبل از شروع نصب، مطمئن شوید که موارد زیر را آماده کرده اید:
- یک سرور 64 بیتی با سیستمعامل Ubuntu 20.04 LTS
- یک دامنه معتبر (مثلاً bbb.example.com) که به آدرس IP سرور شما اشاره می کند
- یک گواهی SSL/TLS معتبر (میتوانید از Let’s Encrypt استفاده کنید)
- پورت های مورد نیاز در فایروال باز شده اند
مرحله 1 : بهروزرسانی سیستم
ابتدا سیستم خود را به روز کنید:
sudo apt update
sudo apt upgrade -y
مرحله 2 : نصب وابستگی ها
برای نصب BigBlueButton، نیاز به برخی بستهها دارید:
sudo apt install -y software-properties-common
sudo add-apt-repository ppa:bigbluebutton/support
sudo add-apt-repository ppa:rmescandon/yq
sudo apt update
مرحله 3 : تنظیم گواهی SSL (در صورت استفاده از Let’s Encrypt)
sudo apt install -y certbot
sudo certbot certonly –standalone –preferred-challenges http -d bbb.example.com
در صورت استفاده از گواهیهای دستی، فایلهای .key و .pem را در مسیرهای مناسب قرار دهید.
مرحله 4 : پیکربندی فایروال
برای اطمینان از دسترسی مناسب، پورتهای زیر را در فایروال باز کنید:
- پورت 22 (SSH)
- پورتهای 80 و 443 (HTTP/HTTPS)
- پورتهای 16384 تا 32768 (برای RTP)
برای تنظیم فایروال با UFW:
sudo ufw allow 22,80,443
sudo ufw allow 16384:32768/udp
sudo ufw enable
مرحله 5 : نصب BigBlueButton
برای نصب BigBlueButton، از اسکریپت نصب رسمی استفاده کنید:
wget -qO- https://raw.githubusercontent.com/bigbluebutton/bbb-install/v2.7.x-release/bbb-install.sh | bash -s — -v focal-270 -d -s bbb.example.com
در این دستور، bbb.example.com را با دامنه خود جایگزین کنید.
مرحله 6 : پیکربندی و راه اندازی مجدد
پس از نصب ، آدرس IP یا نام میزبان را تنظیم کنید:
sudo bbb-conf –setip bbb.example.com
sudo bbb-conf –check
در صورت نیاز به راه اندازی مجدد سرویس ها :
sudo bbb-conf –restart
بررسی وضعیت سرویس ها
برای اطمینان از عملکرد صحیح سرویس ها:
sudo bbb-conf –status
خروجی باید نشان دهد که سرویسهایی مانند nginx ، freeswitch ، redis-server و دیگر سرویسهای مرتبط در حال اجرا هستند.
مرحله 7 : نصب کلاینت HTML5
برای نصب کلاینت HTML5:
sudo apt install bbb-html5
پس از نصب، برای اطمینان از عملکرد صحیح :
sudo bbb-conf –restart
همچنین می توانید با کامند sudo bbb-conf --status بررسی کنید که تمام مراحل BigBlueButto شروع شده و در حال اجرا هستند.
$ sudo bbb-conf --status
red5 ——————————————————► [✔ - active]
nginx —————————————————► [✔ - active]
freeswitch ————————————► [✔ - active]
redis-server ——————————► [✔ - active]
bbb-apps-akka —————————► [✔ - active]
bbb-transcode-akka ————► [✔ - active]
bbb-fsesl-akka ————————► [✔ - active]
tomcat7 ———————————————► [✔ - active]
mongod ————————————————► [✔ - active]
bbb-html5 —————————————► [✔ - active]
bbb-webrtc-sfu ————————► [✔ - active]
kurento-media-server ——► [✔ - active]
etherpad ——————————————► [✔ - active]
bbb-web ———————————————► [✔ - active]
bbb-lti ———————————————► [✔ - active]
در این مرحله ، سرور BigBlueButton شما به آدرس IPV4 گوش می دهد. به عنوان مثال ، اگر سرور شما در آدرس IP 178.128.233.105 است ، می توانید http://178.128.233.105/ را باز کنید و صفحه ورودی را ببینید.
نکات مهم
پیش از هرگونه بهروزرسانی، از تنظیمات سفارشی خود نسخه پشتیبان تهیه کنید.
در صورت استفاده از TURN server، پورتهای 3478 و 443 را در فایروال باز کنید و گواهی SSL را برای آن تنظیم کنید.
آموزش نصب BigBlueButtonبا این وجود ، شما نمی توانید از این صفحه وارد شوید ، مگر اینکه نسخه ی نمایشی API را نصب کنید (در صورت امتحان یک خطای 404) – مرحله بعدی نحوه افزودن نسخه ی نمایشی API را نشان می دهد).
پیشنهاد ویژه قائم هاست » خرید سرور bigbluebutton پرسرعت و ارزان با تحویل تحویل فوری!
اگر قصد استفاده از این سرور را با قسمت جلویی دیگر دارید ، به نسخه های نمایشی API نیازی ندارید. با تهیه ادغام آدرس سرور و راز مشترک می توانید BigBlueButton را با یکی از ادغام های شخص ثالث ادغام کنید. شما می توانید با استفاده از bbb-confاین اطلاعات را نفی کنید bbb-conf --secret.
$ sudo bbb-conf --secret
URL: http://178.128.233.105/bigbluebutton/
Secret: 330a8b08c3b4c61533e1d0c5ce1ac88f
Link to the API-Mate:
http://mconf.github.io/api-mate/#server=http://178.128.233.105/bigbluebutton/&sharedSecret=330a8b08c3b4c61533e1d0c5ce1ac88f
5. نصب نسخه های نمایشی API (اختیاری)
نسخه های نمایشی API مجموعه ای از صفحات Java Server (JSP) است که یک واسط مبتنی بر وب را برای آزمایش API BigBlueButton پیاده سازی می کند.
برای نصب نمونه های API ، دستور زیر را وارد کنید:
$ sudo apt-get install bbb-demo
پس از نصب ، می توانید نام خود را در صفحه اصلی وارد کرده و روی “عضویت” کلیک کنید.
آموزش نصب bigbluebuttonاین شما را به جلسه پیش فرض موسوم به “جلسه نمایشی” می پیوندد. در اینجا یک اسکرین شات با استفاده از FireFox ، باز کردن پانل Shared Notes ، ترسیم بر روی تخته سفید ، و به اشتراک گذاشتن یک وب کم قرار دارد.
آموزش نصب bigbluebuttonهنگامی که با نمونه های API تمام شد ، می توانید آنها را حذف کنید
$ sudo apt-get remove bbb-demo
6. پیوند Anchor سرور خود را مجدداً راه اندازی کنید
می توانید سرور BigBlueButton را در هر زمان و با استفاده از دستورات مجدداً راه اندازی و بررسی کنید
$ sudo bbb-conf --restart
$ sudo bbb-conf --check
bbb-conf --checkاسکن برخی از فایل ورود به سیستم برای پیام های خطا. باز هم ، هر خروجی که دنبال شود Potential problems ممکن است خطاهای پیکربندی یا خطاهای نصب را نشان دهد. در بسیاری از موارد ، پیام ها به شما توصیه می کنند که چگونه مسئله را حل کنید.
توجه کنید که sudo bbb-conf --checkنسخه های نمایشی API نصب شده اند ، که به همه افرادی که دسترسی به سرور دسترسی دارند ، می توانند جلسه ای را اجرا کنند (به حذف نسخه های نمایشی API مراجعه کنید ).
در صورت مشاهده سایر پیام های هشداردهنده ، نصب عیب یابی را بررسی کنید .
7. مراحل نهایی پیوند لنگر برای
اگر این سرور برای تولید در نظر گرفته شده است ، باید
- نام سرور را به سرور اختصاص دهید
- برای پشتیبانی از HTTPS یک گواهی SSL نصب کنید
- سیستم خود را ایمن کنید – دسترسی به پورت های خاص را محدود کنید
- پیکربندی سرور برای کار در پشت فایروال (در صورت لزوم)
- نسخه های نمایشی API را حذف کنید (اگر آنها را برای آزمایش نصب کرده اید)
- سرور TURN را تنظیم کنید (اگر سرور شما در اینترنت است و کاربرانی دارید که از پشت فایروال های محدود کننده به آن دسترسی دارند)
ما دو سرور در دسترس عمومی ارائه می دهیم که می توانید از آنها برای آزمایش استفاده کنید:
- https://demo.bigbluebutton.org – آخرین پایدار ساخت BigBlueButton با جلوی Greenlight را اجرا می کند
- https://test.bigbluebutton.org – آخرین ساخته توسعه دهنده BigBlueButton را اجرا می کند
برای کسب اطلاعات بیشتر در مورد ادغام BigBlueButton با برنامه خود ، اسناد BigBlueButton API را بررسی کنید . برای دیدن فیلم های کلاینت BigBlueButton HTML5 ، به https://bigbluebutton.org/html5 مراجعه کنید .
اختصاص یک نام میزبان (Hostname)
برای هر سرور BigBlueButton تولیدی ، باید آن را به یک نام میزبان اختصاص دهید.
اگر قبلاً این کار را نکرده اید ، باید یک نام دامنه را از ارائه دهنده سرویس نام دامنه (DNS) خریداری کنید و با استفاده از رابط وب ارائه دهنده ، یک A recordنکته را برای اشاره به آدرس IP سرور خود پیکربندی کنید (به اسناد ارائه دهنده DNS خود مراجعه کنید. نحوه انجام این مرحله)
بعد از A recordراه اندازی ، دستور زیر و EXTERNAL_HOST_NAMEبا نام میزبان سرور BigBlueButton خود را وارد کنید.
$ ping EXTERNAL_HOST_NAME
در اینجا مثالی از خروجی با استفاده از demo.bigbluebutton.org:
$ ping demo.bigbluebutton.org
PING demo.bigbluebutton.org (146.20.105.32) 56(84) bytes of data.
64 bytes from 146.20.105.32: icmp_seq=1 ttl=44 time=27.5 ms
توجه: اگر سرور شما اجازه ICMP را نمی دهد ، هیچ بایت برنگردانده می شود ، اما باید آدرس IP سرور خود را ()بعد از نام میزبان در براکت ها برگردانید.
اگر نام میزبان به آدرس IP سرور (یا آدرس IP فایروال) در حال حل شدن است ، در مرحله بعدی از ابزار تنظیمات BigBlueButton bbb-confبرای به روزرسانی پرونده های پیکربندی BigBlueButton برای استفاده از این نام میزبان استفاده کنید.
$ sudo bbb-conf --setip HOSTNAME
به عنوان مثال ، اگر نام میزبان شما بود bigbluebutton.example.com، این دستور بود
$ sudo bbb-conf --setip bigbluebutton.example.com
در این مرحله ، شما باید سرور BigBlueButton را به آدرس IP (یا نام میزبان) گوش دهید و به درخواست های API پاسخ دهید. اما اگر سعی کردید از صفحه پیش فرض سرور با یک مرورگر وارد شوید ، خطایی رخ می دهد HTTP Status 404 - /demo/demo1.jsp.
چرا؟ سرور BigBlueButton برای لیست تماس های API آماده است ، اما جلوی آن به صورت پیش فرض نصب نشده است. به راحتی می توانید نسخه آزمایشی API را برای آزمایش سرور نصب کنید. در مرحله بعد نصب نسخه های نمایشی API را پوشش خواهیم داد.
با این حال ، اگر قصد استفاده از جلوی دیگر برای سرور BigBlueButton را دارید ، به عنوان مثال اگر به سرور مودل دسترسی ندارید و می خواهید پلاگین BigBlueButton Moodle را برای دسترسی به سرور BigBlueButton پیکربندی کنید ، نیازی به نسخه ی نمایشی API ندارید .
برای امنیت بیشتر می خواهید SSL را به سرور BigBlueButton خود اضافه کنید. همچنین ، مانند Chrome 47 ، کاربران Chrome نمی توانند میکروفون خود را از طریق WebRTC به اشتراک بگذارند ، مگر اینکه BigBlueButton از طریق HTTPS بارگیری شود.
bigbluebutton را برای استفاده از نام دامنه پیکربندی کنید
لطفاً تمام دستورات موجود در این بخش را به عنوان root اجرا کنید .
برای به دست آوردن گواهی SSL معتبر برای سرور خود ، باید از قبل نام سرور را به سرور BigBlueButton خود اختصاص دهید.
برای اهداف مستند سازی ، ما از نام دامنه “shembull.com” ، با یک سرور BigBlueButton میزبان در “bigbluebutton.example.com” استفاده خواهیم کرد.
هنگامی که نام دامنه دارید و آن را با یک میزبان DNS پیکربندی کرده اید ، یک ضبط اضافه کنید که به سرور خود اشاره دارد. سپس می توانید از دستور تنظیمات bbb-conf برای پیکربندی BigBlueButton برای استفاده از این نام دامنه استفاده کنید ، برای مثال:
$ sudo bbb-conf --setip bigbluebutton.example.com
برای داشتن لینکگواهی SSL ، یک گواهی sslبگیرید
قبل از اینکه بتوانید nginx را در BigBlueButton در محتوای سرور از طریق HTTPS پیکربندی کنید ، باید یک گواهی SSL معتبر داشته باشید. دامنه معتبر (گاهی اوقات به نام “کلاس 1”) با کلید RSA 4096 بیتی و چک SHA-256 حداقل پیشنهادی فعلی است ، و باید کافی باشد.
تعدادی از ارائه دهندگان وجود دارد که می توانید از آنها گواهی دریافت کنید. بسیاری از شرکتهای فروش نام دامنه نیز دارای گواهینامه هستند.
برخی از ارائه دهندگان بزرگ گواهینامه های SSL مشهور عبارتند از Comodo ، Symantec ، GoDaddy ، GlobalSign و DigiCert. بعلاوه ، گواهینامه های رایگان SSL از StartSSL و CACert در دسترس هستند و برخی از موارد احتیاطی نیز وجود دارد: گواهینامه های StartSSL بدون پرداخت هزینه خدمات قابل لغو نیستند و بیشتر افراد ریشه CACert را در مرورگر وب خود نصب نمی کنند.
هر ارائه دهنده یک سری مراحل را برای تولید گواهینامه به شما ارائه می دهد ، اما آنها به طور معمول شامل تولید یک کلید خصوصی و درخواست گواهی در محل ، ارسال درخواست گواهی برای امضاء شدن و ارسال مجدد گواهی نامه امضا شده پس از انجام هرگونه تاییدیه لازم هستند. پله ها
برای نصب گواهینامه در BigBlueButton ، باید پرونده هایی برای گواهی ، کلید خصوصی و هرگونه گواهی واسطه در قالب PEM داشته باشید.
اگر هنوز یک گواهی SSL ندارید و سرور شما در اینترنت است ، می توانید از Let Encrypt برای به دست آوردن یک گواهینامه رایگان SSL تجدید پذیر استفاده کنید (بعد از 90 روز منقضی می شود ، اما به طور خودکار قابل تجدید هستند). اگر می خواهید از Let Encrypt استفاده کنید ، سپس با استفاده از Let Encrypt ، راه اندازی کنید .
بسته به اختیار گواهینامه خود (CA) ، اکنون باید 2 یا بیشتر پرونده به شرح زیر داشته باشید:
- گواهی
- کلید خصوصی
- گواهینامه واسط (ممکن است بیش از یک یا وجود داشته باشد)
قدم بعدی نصب فایل ها روی سرور است.
ایجاد فهرست /etc/nginx/ssl:
$ sudo mkdir /etc/nginx/ssl
و اکنون فایل کلید خصوصی را برای nginx ایجاد کنید (نام نام میزبان را در نام خود با نام خود جایگزین کنید). علاوه بر این ، مجوزها را برطرف کنید تا فقط root بتواند کلید خصوصی را بخواند:
# cat >/etc/nginx/ssl/bigbluebutton.example.com.key <<'END'
Paste the contents of your key file here
END
chmod 0600 /etc/nginx/ssl/bigbluebutton.example.com.key
و پرونده گواهی. توجه داشته باشید که nginx به گواهی سرور شما و لیست گواهینامه های واسطه در کنار هم در یک پرونده نیاز دارد (نام میزبان را در نام خود با نام خود جایگزین کنید):
# cat >/etc/nginx/ssl/bigbluebutton.example.com.crt <<'END'
Paste (in order) the contents of the following files:
1. The signed certificate from the CA
2. In order, each intermediate certificate provided by the CA (but do not include the root).
END
علاوه بر این ، ما مجموعه ای از پارامترهای Diffie-Hellman 4096 بیتی را برای بهبود امنیت برخی از انواع رمزها تولید خواهیم کرد. این مرحله می تواند چندین دقیقه طول بکشد ، خصوصاً در صورت اجرای یک ماشین مجازی.
sudo mkdir -p /etc/nginx/ssl
sudo openssl dhparam -out /etc/nginx/ssl/dhp-4096.pem 4096
اکنون می توانیم پیکربندی nginx را برای استفاده از SSL ویرایش کنیم. /etc/nginx/sites-available/bigbluebuttonبرای اضافه کردن خطوط مشخص شده ، فایل را ویرایش کنید . اطمینان حاصل کنید که از نامهای صحیح برای مطابقت با گواهی و پرونده های کلیدی که در بالا ایجاد کرده اید استفاده می کنید.
server {
server_name bigbluebutton.example.com;
listen 80;
listen [::]:80;
listen 443 ssl;
listen [::]:443 ssl;
ssl_certificate /etc/nginx/ssl/bigbluebutton.example.com.crt;
ssl_certificate_key /etc/nginx/ssl/bigbluebutton.example.com.key;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS:!AES256";
ssl_prefer_server_ciphers on;
ssl_dhparam /etc/nginx/ssl/dhp-4096.pem;
برای مرجع ، توجه داشته باشید كه تنظیمات SSL مورد استفاده در بالا براساس موارد پیشنهادی در https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/ است و پشتیبانی از همه مرورگرهای مدرن (از جمله IE8) را ارائه می دهد. نه IE6 ، در ویندوز XP). لطفا توجه داشته باشید که تنظیمات SSL توصیه می شود با پیدا شدن آسیب پذیری های جدید ، تغییراتی ایجاد کند.
اگر در سرور خود فایروال دارید و پورت 5066 را باز کرده اید ، این قانون را تغییر دهید تا در عوض پورت 7443 را باز کنید.
همچنین ، اگر سرور BigBlueButton شما در پشت فایروال قرار دارد ، برای جلوگیری از بروز خطای 1002 در کلاینت ، لازم است valueبا یک آدرس IP خارجی مشخص کنید EXTERNAL_IP_ADDRESS:7443. برای اطلاعات بیشتر ، به پیکربندی BigBlueButton در پشت فایروال مراجعه کنید .
در مرحله بعد ، آدرس هدایت وب در nginx. پرونده را ویرایش کرده /etc/bigbluebutton/nginx/sip.nginxو پروتکل و پورت را در خط proxy_pass همانطور که نشان داده شده است تغییر دهید.
location /ws {
proxy_pass https://203.0.113.1:7443;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_read_timeout 6h;
proxy_send_timeout 6h;
client_body_timeout 6h;
send_timeout 6h;
}
با nginx که اکنون برای استفاده از SSL پیکربندی شده است ، مرحله بعدی پیکربندی FreeSWITCH برای استفاده از HTTPS برای شروع یک اتصال صوتی است.
برای استفاده از HTTPS /usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties، ویژگی bigbluebutton.web.serverURLرا ویرایش و به روز کنید:
#----------------------------------------------------
# This URL is where the BBB client is accessible. When a user successfully
# enters a name and password, she is redirected here to load the client.
bigbluebutton.web.serverURL=https://bigbluebutton.example.com
در مرحله بعد ، پرونده را ویرایش کرده /usr/share/red5/webapps/screenshare/WEB-INF/screenshare.propertiesو ویژگی را به روز کنید jnlpUrlو jnlpFileدر HTTPS:
streamBaseUrl=rtmp://bigbluebutton.example.com/screenshare
jnlpUrl=https://bigbluebutton.example.com/screenshare
jnlpFile=https://bigbluebutton.example.com/screenshare/screenshare.jnlp
همچنین باید فایل را /var/www/bigbluebutton/client/conf/config.xmlبه روز کنید تا به کلاینت BigBlueButton بگویید که قطعات را از طریق HTTPS بارگیری کند. شما می توانید بروزرسانی را با یک فرمان واحد انجام دهید
$ sudo sed -e 's|http://|https://|g' -i /var/www/bigbluebutton/client/conf/config.xml
اگر شما نیاز به برگرداندن این تغییر دارید ، می توانید دستور معکوس را اجرا کنید:
$ sudo sed -e 's|https://|http://|g' -i /var/www/bigbluebutton/client/conf/config.xml
/usr/share/meteor/bundle/programs/server/assets/app/config/settings.ymlویرایش را باز کنید و تغییر دهید:
kurento:
wsUrl: ws://bbb.example.com/bbb-webrtc-sfu
به
kurento:
wsUrl: wss://bbb.example.com/bbb-webrtc-sfu
همچنین تغییر دهید:
note:
enabled: true
url: http://bbb.example.com/pad
به
note:
enabled: true
url: https://bbb.example.com/pad
در مرحله بعد ، ایجاد ضبط ها را اصلاح کنید تا از طریق HTTPS سرو شوند. /usr/local/bigbluebutton/core/scripts/bigbluebutton.ymlمقدار playback_protocol را به شرح زیر ویرایش و تغییر دهید:
playback_protocol: https
اگر دموی API را در مرحله 5 نصب کرده اید ، /var/lib/tomcat7/webapps/demo/bbb_api_conf.jspمقدار BigBlueButtonURLاستفاده از HTTPS را ویرایش و تغییر دهید .
// This is the URL for the BigBlueButton server
String BigBlueButtonURL = "https://bigbluebutton.example.com/bigbluebutton/";
در آخر ، برای اعمال کلیه تغییرات پیکربندی ایجاد شده ، باید کلیه مؤلفه های BigBlueButton را مجدداً راه اندازی کنید:
$ sudo bbb-conf --restart
پیکربندی https را آزمایش کنید
به منظور اطمینان از اینكه هیچ اشتباهی نكرده اید كه می تواند باعث سازش امنیتی شود ، پیكربندی HTTPS خود را آزمایش كنید. سایتی محترم که می تواند یک سری تست خودکار را انجام دهد https://www.ssllabs.com/ssltest/ – به راحتی نام میزبان سرور خود را وارد کنید ، در صورت تمایل می توانید گزینه “نتایج را نشان ندهید” را علامت بزنید. آن را خصوصی کنید ، سپس ارسال کنید
در زمان نوشتن ، پیکربندی نشان داده شده در این صفحه باید به یک رتبه “A” در صفحه آزمایش SSL Labs برسد.
با استفاده از پیوند Let’s Encrypt Anchor برای استفاده از رمزگذاری اجازه می دهیم
اگر یک نام دامنه به سرور BigBlueButton شما اختصاص داده شده است (یعنی bigbluebutton.example.com) و سرور در اینترنت است ، می توانید برای بدست آوردن گواهینامه های SSL رایگان ، از Let Encrypt استفاده کنید.
ابتدا ابزار پیکربندی Let’s Encrypt را نصب کنید. لطفاً تمام دستورات را در این بخش root اجرا کنید .
$ sudo apt-get update
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository universe
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt-get install certbot
در مرحله بعدی ، مجموعه ای از پارامترهای Diffie-Hellman 4096 بیتی را ایجاد کنید تا امنیت برخی از انواع رمزها بهبود یابد.
sudo mkdir -p /etc/nginx/ssl
sudo openssl dhparam -out /etc/nginx/ssl/dhp-4096.pem 4096
قبل از تولید گواهی بر روی سرور خود ، باید از BigBlueButton پیکربندی کنید تا از نام میزبان مورد نظر استفاده شود. اگر قبلاً این کار را نکرده اید ، از دستور زیر استفاده کنید ( bigbluebutton.example.comنام DNS خود را جایگزین کنید) ، تا سرور BigBlueButton را با نام میزبان خود پیکربندی کنید.
$ sudo bbb-conf --setip bigbluebutton.example.com
در مرحله بعد ، با استفاده از certbotابزار ، گواهی SSL را از Let Encrypt بخواهید . دوباره bigbluebutton.example.comنام خانوادگی خود را جایگزین کنید.
$ sudo certbot --webroot -w /var/www/bigbluebutton-default/ -d bigbluebutton.example.com certonly
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/bigbluebutton.example.com/fullchain.pem. Your cert will
expire on 20XX-YY-ZZ. To obtain a new version of the certificate in
the future, simply run Let's Encrypt again.
- If you like Let's Encrypt, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
این باعث ایجاد پرونده های زیر می شود
$ ls /etc/letsencrypt/live/bigbluebutton.example.com/
cert.pem chain.pem fullchain.pem privkey.pem
بعد ، فایل پیکربندی nginx را ویرایش کنید /etc/nginx/sites-available/bigbluebuttonو خطوط مشخص شده را در زیر اضافه کنید. اطمینان حاصل کنید که از نامهای صحیح برای مطابقت با گواهینامه و پرونده های کلیدی که در بالا ایجاد کرده اید استفاده می کنید (دوباره bigbluebutton.example.comنام خانوادگی خود را جایگزین کنید).
server {
server_name bigbluebutton.example.com;
listen 80;
listen [::]:80;
listen 443 ssl;
listen [::]:443 ssl;
ssl_certificate /etc/letsencrypt/live/bigbluebutton.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/bigbluebutton.example.com/privkey.pem;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS:!AES256";
ssl_prefer_server_ciphers on;
ssl_dhparam /etc/nginx/ssl/dhp-4096.pem;
گواهینامه های Let Encrypte به مدت 90 روز خوب هستند و می توانند به صورت خودکار تمدید شوند. برای درخواست خودکار تمدید یک بار در هفته ، پرونده crontab را برای root ویرایش کنید.
$ sudo crontab -e
و دو خط زیر را در انتها اضافه کنید:
30 2 * * 1 /usr/bin/certbot renew >> /var/log/le-renew.log
35 2 * * 1 /bin/systemctl reload nginx
این دو بخشنامه certbot renewهر دوشنبه ساعت 2:30 بامداد دستور را اجرا می کنند و سپس Nginx را در ساعت 2:35 صبح بارگذاری مجدد کنید (بنابراین از گواهی تجدید شده استفاده می شود). خروجی به پرونده log واقع در /var/log/le-renewal.log لوله گذاری می شود ، بنابراین همیشه می توانید بعداً آن را بررسی کنید.
سایر مطالب پیشنهادی »