Thứ hai, 18/05/2020 | 00:00 GMT+7

Cách cài đặt Jitsi Meet trên Debian 10

Jitsi Meet là một ứng dụng hội nghị truyền hình open-souce dựa trên WebRTC . Server Jitsi Meet cung cấp các phòng hội nghị video nhiều người mà bạn có thể truy cập bằng trình duyệt của bạn và cung cấp chức năng tương đương với cuộc gọi hội nghị Zoom hoặc Skype. Lợi ích của hội nghị Jitsi là tất cả dữ liệu chỉ đi qua server của bạn và mã hóa TLS end-to-end đảm bảo không ai có thể rình mò cuộc gọi. Với Jitsi, bạn có thể chắc chắn rằng thông tin cá nhân của bạn vẫn như vậy.

Trong hướng dẫn này, bạn sẽ cài đặt và cấu hình server Jitsi Meet trên Debian 10. Cấu hình mặc định cho phép mọi người tạo một phòng họp mới. Điều này không lý tưởng cho một server công khai trên internet vì vậy bạn cũng sẽ cấu hình Jitsi Meet để chỉ những user đã đăng ký mới có thể tạo phòng hội nghị mới. Sau khi bạn đã tạo phòng họp, mọi user cũng có thể tham gia, miễn là họ có địa chỉ duy nhất và password tùy chọn.

Yêu cầu

Trước khi bắt đầu hướng dẫn này, bạn cần những thứ sau:

  • Một server Debian 10 được cài đặt theo hướng dẫn Cài đặt Server Ban đầu với Debian 10 , bao gồm một user không hỗ trợ sudo root. Kích thước của server bạn cần chủ yếu phụ thuộc vào băng thông khả dụng và số lượng người tham gia mà bạn mong đợi sẽ sử dụng server . Bảng sau đây sẽ cung cấp cho bạn một số ý tưởng về những gì cần thiết.
  • Tên domain được cấu hình để trỏ đến server của bạn. Bạn có thể tìm hiểu cách trỏ domain đến DigitalOcean Server bằng cách tham khảo hướng dẫn Miền và DNS . Trong suốt hướng dẫn này, domain jitsi.your-domain được sử dụng.

Khi bạn đang chọn một server để chạy version Jitsi Meet của bạn , bạn cần xem xét các tài nguyên hệ thống cần thiết để tổ chức các phòng hội nghị. Thông tin điểm chuẩn sau được thu thập từ một máy ảo lõi đơn bằng cách sử dụng cài đặt video chất lượng cao:

CPU Băng thông server
Hai người tham gia 3% Tăng 30Kb / giây, Giảm 100Kb / giây
Ba người tham gia 15% Tăng 7Mbps, Giảm 6.5Mbps

Sự tăng vọt trong việc sử dụng tài nguyên giữa hai và ba người tham gia là do Jitsi sẽ định tuyến dữ liệu cuộc gọi trực tiếp giữa các client khi có hai trong số họ. Khi có nhiều hơn hai client thì dữ liệu cuộc gọi được định tuyến thông qua server Jitsi Meet.

Bước 1 - Đặt tên server hệ thống

Trong bước này, bạn sẽ thay đổi tên server của hệ thống để trùng với domain mà bạn định sử dụng cho version Jitsi Meet của bạn và chuyển tên server đó thành IP localhost, 127.0.0.1 . Jitsi Meet sử dụng cả hai cài đặt này khi cài đặt và tạo file cấu hình.

Đầu tiên, đặt tên server của hệ thống thành domain mà bạn sẽ sử dụng cho version Jitsi của bạn . Lệnh sau sẽ đặt tên server hiện tại và sửa đổi /etc/hostname giữ tên server của hệ thống giữa các lần khởi động lại:

  • sudo hostnamectl set-hostname jitsi.your-domain

Lệnh bạn chạy được chia nhỏ như sau:

  • hostnamectl là một tiện ích từ bộ công cụ systemd để quản lý tên server hệ thống.
  • set-hostname đặt tên server hệ thống.

Kiểm tra xem việc này có thành công hay không bằng cách chạy như sau:

  • hostname

Thao tác này sẽ trả về tên server mà bạn đã đặt bằng lệnh hostnamectl :

Output
jitsi.your-domain

Tiếp theo, bạn sẽ cài đặt ánh xạ local tên server của server thành địa chỉ IP lặp lại, 127.0.0.1 . Thực hiện việc này bằng cách mở file /etc/hosts bằng editor :

  • sudo nano /etc/hosts

Sau đó, thêm dòng sau:

/ etc / hosts
127.0.0.1 jitsi.your-domain 

Việc ánh xạ domain của server Jitsi Meet của bạn thành 127.0.0.1 cho phép server Jitsi Meet của bạn sử dụng một số quy trình được nối mạng chấp nhận các kết nối local của nhau trên địa chỉ IP 127.0.0.1 . Các kết nối này được xác thực và mã hóa bằng certificate TLS, được đăng ký với domain của bạn. Ánh xạ local domain tới 127.0.0.1 giúp bạn có thể sử dụng certificate TLS cho các kết nối mạng local này.

Lưu và thoát khỏi file của bạn.

Server của bạn bây giờ có tên server mà Jitsi yêu cầu để cài đặt. Trong bước tiếp theo, bạn sẽ mở các cổng firewall mà Jitsi và trình cài đặt certificate TLS cần.

Bước 2 - Cấu hình firewall

Khi bạn làm theo hướng dẫn Cài đặt Server Ban đầu với Debian 10, bạn đã bật firewall UFW và mở cổng SSH. Server Jitsi cần một số cổng được mở để có thể giao tiếp với các client cuộc gọi. Ngoài ra, quá trình cài đặt TLS cần phải mở một cổng để nó có thể xác thực certificate request .

Các cổng mà bạn sẽ mở như sau:

  • 80/tcp được sử dụng trong certificate request TLS.
  • 443/tcp được sử dụng cho trang web tạo phòng họp.
  • 4443/tcp,10000/udp được sử dụng để truyền và nhận lưu lượng cuộc gọi được mã hóa.

Chạy các lệnh ufw sau để mở các cổng này:

  • sudo ufw allow 80/tcp
  • sudo ufw allow 443/tcp
  • sudo ufw allow 4443/tcp
  • sudo ufw allow 10000/udp

Kiểm tra xem tất cả chúng đã được thêm vào bằng lệnh ufw status :

  • sudo ufw status

Bạn sẽ thấy kết quả sau nếu các cổng này đang mở:

Output
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere 80/tcp ALLOW Anywhere 443/tcp ALLOW Anywhere 4443/tcp ALLOW Anywhere 10000/udp ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) 80/tcp (v6) ALLOW Anywhere (v6) 443/tcp (v6) ALLOW Anywhere (v6) 4443/tcp (v6) ALLOW Anywhere (v6) 10000/udp (v6) ALLOW Anywhere (v6)

Server hiện đã sẵn sàng để cài đặt Jitsi, bạn sẽ hoàn thành bước này trong bước tiếp theo.

Bước 3 - Cài đặt Jitsi Meet

Trong bước này, bạn sẽ thêm repository ổn định Jitsi vào server của bạn và sau đó cài đặt gói Jitsi Meet từ repository đó. Điều này sẽ đảm bảo bạn luôn chạy gói Jitsi Meet ổn định mới nhất.

Đầu tiên, hãy cài đặt gói gnupg cho phép hệ thống quản lý các khóa mật mã GPG:

  • sudo apt install gnupg

Tiếp theo, download khóa Jitsi GPG bằng tiện ích download wget :

  • wget https://download.jitsi.org/jitsi-key.gpg.key

Trình quản lý gói apt sẽ sử dụng khóa GPG này để xác thực các gói mà bạn sẽ download từ repository Jitsi.

Bây giờ, thêm khóa GPG bạn đã tải về để apt 's keyring sử dụng apt-key tiện ích:

  • sudo apt-key add jitsi-key.gpg.key

Đến đây bạn có thể xóa file khóa GPG vì nó không còn cần thiết nữa:

  • rm jitsi-key.gpg.key

Bây giờ, bạn sẽ thêm repository Jitsi vào server của bạn bằng cách tạo một file nguồn mới chứa repository Jitsi. Mở và tạo file mới bằng editor :

  • sudo nano /etc/apt/sources.list.d/jitsi-stable.list

Thêm dòng này vào file cho repository Jitsi:

/etc/apt/sources.list.d/jitsi-stable.list
deb https://download.jitsi.org stable/ 

Lưu và thoát khỏi editor .

Cuối cùng, thực hiện cập nhật hệ thống để thu thập danh sách gói từ repository Jitsi và sau đó cài đặt gói jitsi-meet :

  • sudo apt update
  • sudo apt install jitsi-meet

Trong quá trình cài đặt jitsi-meet bạn sẽ được yêu cầu nhập domain (ví dụ: jitsi.your-domain ) mà bạn muốn sử dụng cho version Jitsi Meet của bạn .

Hình ảnh hiển thị hộp thoại tên  server  cài đặt jitsi-meet

Lưu ý: Bạn di chuyển con trỏ từ trường tên server để tô sáng nút <OK> bằng TAB . Nhấn ENTER khi <OK> được đánh dấu để gửi tên server .

Sau đó, bạn sẽ được hiển thị một hộp thoại mới hỏi bạn có muốn Jitsi tạo và sử dụng certificate TLS tự ký hay sử dụng certificate hiện có mà bạn đã có:

Hình ảnh hiển thị hộp thoại certificate  cài đặt jitsi-meet

Nếu bạn không có certificate TLS cho domain Jitsi của bạn , hãy chọn tùy chọn đầu tiên, Tạo certificate tự ký mới .

Phiên bản Jitsi Meet của bạn hiện đã được cài đặt bằng certificate TLS tự ký. Điều này sẽ gây ra cảnh báo trình duyệt, vì vậy bạn sẽ nhận được certificate TLS đã ký trong bước tiếp theo.

Bước 4 - Lấy certificate TLS đã ký

Jitsi Meet sử dụng certificate TLS để mã hóa lưu lượng cuộc gọi để không ai có thể nghe cuộc gọi của bạn khi cuộc gọi di chuyển qua internet. Chứng chỉ TLS là certificate giống nhau được các trang web sử dụng để kích hoạt URL HTTPS.

Jitsi Meet cung cấp một chương trình để tự động download certificate TLS cho domain của bạn sử dụng trình Certbot . Bạn cần cài đặt chương trình này trước khi chạy lệnh cài đặt certificate .

Trước tiên, hãy cài đặt gói certbot bằng lệnh sau:

  • sudo apt install certbot

Server của bạn hiện đã sẵn sàng để chạy chương trình cài đặt certificate TLS do Jitsi Meet cung cấp:

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

Khi bạn chạy tập lệnh, bạn sẽ được hiển thị dấu nhắc sau cho một địa chỉ email:

Output
------------------------------------------------------------------------- This script will: - Need a working DNS record pointing to this machine(for domain jitsi.example.com) - Download certbot-auto from https://dl.eff.org to /usr/local/sbin - Install additional dependencies in order to request Let’s Encrypt certificate - If running with jetty serving web content, will stop Jitsi Videobridge - Configure and reload nginx or apache2, whichever is used - Configure the coturn server to use Let's Encrypt certificate and add required deploy hooks - Add command in weekly cron job to renew certificates regularly You need to agree to the ACME server's Subscriber Agreement (https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf) by providing an email address for important account notifications Enter your email and press [ENTER]:

Địa chỉ email này sẽ được gửi cho tổ chức phát hành certificate https://letsencrypt.org và sẽ được sử dụng để thông báo cho bạn về bảo mật và các vấn đề khác liên quan đến certificate TLS. Bạn phải nhập địa chỉ email vào đây để tiến hành cài đặt. Quá trình cài đặt sẽ hoàn tất mà không cần thêm bất kỳ dấu nhắc nào.

Khi quá trình kết thúc, version Jitsi Meet của bạn sẽ được cấu hình để sử dụng certificate TLS đã ký cho domain của bạn. Việc gia hạn certificate cũng sẽ tự động diễn ra vì trình cài đặt đã đặt một tập lệnh gia hạn tại /etc/cron.weekly/letsencrypt-renew sẽ chạy mỗi tuần.

Server Jitsi Meet của bạn hiện đã hoạt động và sẵn sàng để thử nghiệm. Mở trình duyệt và trỏ nó đến domain của bạn. Bạn có thể tạo một phòng họp mới và mời những người khác tham gia cùng bạn.

Cấu hình mặc định cho Jitsi Meet là bất kỳ ai truy cập trang chủ server Jitsi Meet của bạn đều có thể tạo phòng hội thảo mới. Điều này sẽ sử dụng tài nguyên hệ thống của server của bạn để chạy phòng hội nghị và không mong muốn cho những user lạ . Trong bước tiếp theo, bạn sẽ cấu hình version Jitsi Meet của bạn để chỉ cho phép những user đã đăng ký tạo phòng hội nghị.

Bước 5 - Khóa tạo hội nghị

Trong bước này, bạn sẽ cấu hình server Jitsi Meet của bạn để chỉ cho phép user đã đăng ký tạo phòng hội nghị. Các file mà bạn sẽ chỉnh sửa được tạo bởi trình cài đặt và được cấu hình với domain của bạn.

Biến your_domain sẽ được sử dụng thay cho domain trong các ví dụ sau.

Đầu tiên, hãy mở /etc/prosody/conf.avail/your_domain.cfg.lua bằng editor :

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

Chỉnh sửa dòng này:

/etc/prosody/conf.avail/your_domain.cfg.lua
...         authentication = "anonymous" ... 

Theo sau:

/etc/prosody/conf.avail/your_domain.cfg.lua
...         authentication = "internal_plain" ... 

Cấu hình này yêu cầu Jitsi Meet buộc xác thực tên user và password trước khi cho phép khách mới tạo phòng họp.

Sau đó, trong cùng một file , hãy thêm phần sau vào cuối file :

/etc/prosody/conf.avail/your_domain.cfg.lua
... VirtualHost "guest.your_domain"     authentication = "anonymous"     c2s_require_encryption = false 

Cấu hình này cho phép user ẩn danh tham gia các phòng hội nghị được tạo bởi user đã xác thực. Tuy nhiên, khách phải có một địa chỉ duy nhất và một password tùy chọn để vào phòng.

Ở đây, bạn đã thêm guest. ở phía trước domain của bạn. Ví dụ: đối với jitsi.your-domain bạn sẽ đặt guest.jitsi.your-domain . Vị guest. tên server chỉ được sử dụng trong nội bộ Jitsi Meet. Bạn sẽ không bao giờ nhập nó vào trình duyệt hoặc cần tạo bản ghi DNS cho nó.

Mở file cấu hình khác tại /etc/jitsi/meet/your_domain-config.js bằng editor văn bản:

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

Chỉnh sửa dòng này:

/etc/jitsi/meet/your_domain-config.js
...         // anonymousdomain: 'guest.example.com', ... 

Theo sau:

/etc/jitsi/meet/your_domain-config.js
...         anonymousdomain: 'guest.your_domain', ... 

, bằng cách sử dụng guest. your_domain hostname mà bạn đã sử dụng trước đó, cấu hình này cho Jitsi Meet biết tên server nội bộ nào sẽ sử dụng cho khách chưa được xác thực.

Tiếp theo, mở /etc/jitsi/jicofo/sip-communicator.properties :

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

Và thêm dòng sau để hoàn tất các thay đổi cấu hình:

/etc/jitsi/jicofo/sip-communicator.properties
org.jitsi.jicofo.auth.URL=XMPP:your_domain 

Cấu hình này trỏ một trong các quy trình Jitsi Meet tới server local thực hiện xác thực user hiện được yêu cầu.

Phiên bản Jitsi Meet của bạn hiện đã được cấu hình để chỉ những user đã đăng ký mới có thể tạo phòng hội nghị. Sau khi một phòng hội thảo được tạo, bất kỳ ai cũng có thể tham gia mà không cần phải là user đã đăng ký. Tất cả những gì họ cần là địa chỉ phòng họp duy nhất và một password tùy chọn do người tạo phòng đặt.

Bây giờ Jitsi Meet được cấu hình để yêu cầu user xác thực để tạo phòng, bạn cần đăng ký những user này và password của họ. Bạn sẽ sử dụng trình prosodyctl để thực hiện việc này.

Chạy lệnh sau để thêm user vào server của bạn:

  • sudo prosodyctl register user your_domain password

User mà bạn thêm vào đây không phải là user hệ thống. Họ sẽ chỉ có thể tạo phòng hội nghị và không thể đăng nhập vào server của bạn qua SSH.

Cuối cùng, khởi động lại quy trình Jitsi Meet và Nginx để tải cấu hình mới:

  • sudo systemctl restart prosody.service
  • sudo systemctl restart jicofo.service
  • sudo systemctl restart jitsi-videobridge2.service
  • sudo systemctl restart nginx

Phiên bản Jitsi Meet bây giờ sẽ yêu cầu tên user và password với hộp thoại khi một phòng hội nghị được tạo.

Hình ảnh hiển thị tên  user  và hộp password  Jitsi

Server Jitsi Meet của bạn hiện đã được cài đặt và cấu hình an toàn.

Kết luận

Trong bài viết này, bạn đã triển khai server Jitsi Meet mà bạn có thể sử dụng để tổ chức các phòng hội nghị video riêng tư và an toàn. Bạn có thể mở rộng version Jitsi Meet của bạn bằng các hướng dẫn từ Jitsi Meet Wiki .


Tags:

Các tin liên quan