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
:
Outputjitsi.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:
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ở:
OutputStatus: 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:
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 .
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ó:
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:
... authentication = "anonymous" ...
Theo sau:
... 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 :
... 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:
... // anonymousdomain: 'guest.example.com', ...
Theo sau:
... 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:
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.
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 .
Các tin liên quan