Cách cài đặt Jitsi Meet trên Ubuntu 20.04
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 Ubuntu 20.04. 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 Ubuntu 20.04 được cài đặt theo hướng dẫn Cài đặt server ban đầu với Ubuntu 20.04 , bao gồm cả user không bật 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 tới server DigitalOcean theo hướng dẫn Cách cài đặt tên server với DigitalOcean . 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.
Đăng nhập vào server của bạn với quyền là user không root, đã bật sudo trước khi bắt đầu Bước 1.
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
: 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 của 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ở /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ạ local domain của server Jitsi Meet của bạn sang 127.0.0.1
này rất quan trọng vì server Jitsi Meet của bạn sử dụng một số quy trình được nối mạng trên server của bạn chấp nhận các kết nối local trên địa chỉ IP 127.0.0.1
của nhau. 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.
Server của bạn bây giờ có tên server mà Jitsi yêu cầu khi 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 Ubuntu 20.04, 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ổng được sử dụng trong certificate request TLS. -
443/tcp
: Cổng được sử dụng cho trang web tạo phòng họp. -
4443/tcp
10000/udp
: Các cổng sẽ 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ẽ nhận được 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, 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.
Tiếp theo, 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 bằng lệnh này:
- 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 file nguồn mới có chứa repository Jitsi. Mở và tạo file mới:
- 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ó nếu 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, do đó 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 tập lệnh để tự động download certificate TLS cho domain của bạn. Chạy lệnh cài đặt certificate này do Jitsi Meet cung cấp tại /usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh
bằng lệnh sau:
- sudo /usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh
Tập lệnh in thông tin sau khi bạn chạy và yêu cầu bạn cung cấp địa chỉ email:
Output------------------------------------------------------------------------- This script will: - Need a working DNS record pointing to this machine(for domain jitsi.your_domain) - 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 . Bạn phải nhập địa chỉ email vào đây để tiến hành cài đặt.
Tập lệnh sẽ hoàn tất việc cài đặt và cấu hình certificate SSL cho server Jitsi của bạn mà không cần thêm bất kỳ đầu vào của user nào.
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 jitsi.your_domain
sẽ được sử dụng thay cho domain trong các ví dụ sau.
Đầu tiên, mở /etc/prosody/conf.avail/ jitsi.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"
Đến
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.jitsi.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ụ: tên chính xác để đặt ở đây cho jitsi.your_domain
là 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 tên server này vào trình duyệt hoặc cần tạo bản ghi DNS cho tên server này.
Mở file cấu hình khác tại /etc/jitsi/meet/ jitsi.your_domain -config.js
bằng editor :
- sudo nano /etc/jitsi/meet/jitsi.your_domain-config.js
Chỉnh sửa dòng này:
// anonymousdomain: 'guest.jitsi.your_domain',
Đến:
anonymousdomain: 'guest.jitsi.your_domain',
, sử dụng guest. jitsi.your_domain
tên server mà bạn đã sử dụng trước đây. Cấu hình này cho Jitsi Meet biết tên server nội bộ nào sẽ sử dụng cho những 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:jitsi.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 các quy trình Jitsi Meet để tải cấu hình mới:
- sudo systemctl restart prosody.service
- sudo systemctl restart jicofo.service
- sudo systemctl restart jitsi-videobridge2.service
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
Cách xử lý sandbox với Systemd trên Ubuntu 20.042020-09-16
Cách cài đặt và cấu hình Neo4j trên Ubuntu 20.04
2020-09-15
Cách cài đặt Webmin trên Ubuntu 20.04
2020-08-26
Cách thiết lập môi trường JupyterLab trên Ubuntu 18.04
2020-08-26
Cách cài đặt Node.js trên Ubuntu 18.04
2020-08-06
Cách cài đặt MongoDB trên Ubuntu 20.04 từ site chính thức của Mongodb
2020-07-31
Cách cấu hình truy cập từ xa cho MongoDB trên Ubuntu 20.04
2020-07-31
Cách bảo mật MongoDB trên Ubuntu 20.04
2020-07-31
Cách thiết lập Mattermost trên Ubuntu 20.04
2020-07-29
Làm thế nào để quản lý OpenSSH trên Ubuntu 18.04
2020-07-28