Lời mở đầu
Jiti Meet là một ứng dụng gọi video mã nguồn mở dựa trên WebRTC. Máy chủ Jitsi Meet cung cấp nhiều cuộc gọi video cho nhiều người bằng trình duyệt, đồng thời chúng cung cấp những tính năng tương đương với ứng dụng Zoom hoặc Skype. Lợi ích của Jitsi là tất cả dữ liệu chỉ đi qua máy chủ của bạn và được mã hóa đầu cuối với TLS để đảm bảo rằng không ai có thể rình mò cuộc gọi của bạn. Với Jitsi, sẽ đảm bảo về mặt an toàn thông tin cá nhân.
Trong hướng dẫn này, bạn sẽ cài đặt và cấu hình máy chủ Jitsi Meet trên Ubuntu 18.04. Cấu hình mặc định cho phép bất cứ ai cũng có thể tạo ra một phòng hội nghị mới. Điều này sẽ không tốt cho môi trường mạng internet public, do đó bạn cũng sẽ cấu hình lại Jitsi để chỉ người dùng đã đăng ký mới có thể tạo phòng hội nghị mới. Sau khi phòng hội thoại đã được tạo, bất kỳ ai cũng có thể tham gia, miễn là họ có địa chỉ URL và mật khẩu.
Yêu Cầu
Trước khi bắt đầu, bạn phải chuẩn bị nhứng điều sau:
- Một máy chủ Ubuntu 18.04 có quyền sudo .
- Một tên miền cho ứng dụng Jiti, ví dụ my-jiti.com.vn
Khi bạn chọn một máy chủ để chạy Jitsi Meet, bạn sẽ cần xem xét tài nguyên hệ thống cần thiết để tổ chức các phòng hội nghị. Tham khảo thông tin sau:
CPU | Server Bandwidth | |
---|---|---|
2 người tham dự | 3% | 30Kbps Up, 100Kbps Down |
3 người tham dự | 15% | 7Mbps Up, 6.5Mbps Down |
Khi có hai người tham gia vào cuộc hội thoại, Jitsi sẽ sử dụng tài nguyên luân phiên tuần tự giữa người tham gia vì Jitsi sẽ trực tiếp định tuyến dữ liệu của cuộc gọi giữa những người tham gia với nhau. Nhưng, Khi có nhiều hơn hai người tham gia cuộc hôi thoại, dữ liệu cuộc gọi sẽ được đẩy về server Jitsi Meet.
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 máy khách khi có hai người trong số họ. Khi có nhiều hơn hai máy khách thì dữ liệu cuộc gọi sẽ được chuyển qua máy chủ Jitsi Meet.
Bước 1 – Thiết lập hostname
Trong bước này, bạn sẽ thay đổi hostname của hệ thống để khớp với tên miền mà bạn định sử dụng cho Jitsi Meet và phân giải hostname đó thành IP localhost, 127.0.0.1. Jitsi Meet sử dụng cả hai thiết lập này khi cài đặt và tạo tệp tin cấu hình.
Đầu tiên, đặt hostname thành tên miền mà bạn sẽ sử dụng cho Jitsi. Lệnh sau sẽ đặt tên máy chủ hiện tại và sửa đổi /etc/hostname
chứa tên máy chủ của hệ thống:
- sudo hostnamectl set-hostname jitsi.your-domain
Câu lệnh này sẽ được hiểu như sau:
hostnamectl
là một tiện ích từ bộ công cụ systemd để quản lý tên máy chủ hệ thống.set-hostname
đặt tên máy chủ hệ thống.
Chạy câu lệnh sau để kiểm tra có thành công hay không:
- hostname
Điều này sẽ trả về tên máy chủ bạn đã đặt bằng lệnh hostnamectl:
jitsi.your-domain
Tiếp theo, bạn sẽ cấu hình file host để phân giải domain local như sau:
- sudo nano /etc/hosts
Sau đó, thêm vào dòng sau đây:
127.0.0.1 jitsi.your-domain
Lưu và thoát file.
Tiếp theo đây, chúng ta sẽ cấu hình tường lửa cho Jitsi.
Bước 2 – Cấu hình tường lửa
Ứng dụng Jitsi cần được mở những port tường lửa sau đây:
80/tcp
được sử dụng để yêu cầu chứng chỉ TLS.443/tcp
được sử dụng để website tạo phòng hội nghị.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.
Thực hiện các lệnh ufw sau đây để mở các port 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 các trạng thái với ufw status:
- sudo ufw status
Bạn sẽ thấy ngõ ra như sau nếu các port này được mở:
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)
Máy chủ đã sẵn sàng để cài đặt Jitsi, chúng ta sẽ hoàn thành chúng ở bước tiếp theo.
Bước 3 – Cài đặt Jitsi Meet
Trong bước này, chúng ta sẽ thêm repository của Jitsi vào máy chủ của mình và tiến hành cài đặt Jitsi Meet. Điều này sẽ đảm bảo rằng chúng ta luôn có được phiên bản Jitsi Meet mới và ổn định nhất.
Đầu tiên, cần tải về GPG key của Jitsi với tiện ích “wget”:
- wget https://download.jitsi.org/jitsi-key.gpg.key
Trình quản lý ứng dụng apt sẽ sử dụng khóa GPG này để xác thực các gói mà bạn sẽ tải xuống từ repository của Jitsi.
Tiếp theo, thêm khóa GPG mà chúng ta đã tải xuống bằng tiện ích apt-key
:
- sudo apt-key add jitsi-key.gpg.key
Bây giờ, bạn sẽ thêm repository Jitsi vào máy chủ của mình bằng cách tạo tệp mới.
- sudo nano /etc/apt/sources.list.d/jitsi-stable.list
Thêm dòng sau vào :
deb https://download.jitsi.org stable/
Lưu file và thoát.
Cuối cùng, tiến hành cập nhật và cài đặt jitsi meet
- sudo apt update
- sudo apt install jitsi-meet
Trong quá trình cài đặt jitsi-meet, chúng ta sẽ được nhắc để nhập tên miền (ví dụ: jitsi.your-domain) mà chúng ta muốn sử dụng cho Jitsi Meet.
Sau đó, sẽ có một hộp thoại mới hỏi bạn có muốn Jitsi tạo mới chứng chỉ TLS hay sử dụng chứng chỉ đã có.
Nếu bạn không có chứng chỉ TLS cho miền Jitsi của mình, hãy chọn tùy chọn đầu tiên, để tạo chứng chỉ tự ký mới.
Jitsi Meet của bạn hiện được cài đặt bằng chứng chỉ TLS tự tạo. Điều này sẽ gây ra cảnh báo không an toàn trên trình duyệt, vì vậy bạn sẽ nhận được chứng chỉ signed TLS trong bước tiếp theo.
Bước 4 – Lấy chứng chỉ Signed TLS
Jitsi Meet sử dụng chứng chỉ TLS để mã hóa lưu lượng cuộc gọi, để không ai có thể nghe lén cuộc gọi của bạn khi truyền qua internet. Chứng chỉ TLS là các chứng chỉ tương tự được sử dụng bởi các trang web HTTPS.
Jitsi Meet cung cấp một chương trình để tự động tải xuống chứng chỉ TLS cho tên miền của bạn, sử dụng tiện ích Certbot. Thực hiện như sau để tiến hành cài đặt Cerbot.
Đầu tiên, thêm repository Certbot vào hệ thống của bạn để đảm bảo rằng bạn có phiên bản mới nhất của Certbot. Chạy lệnh sau để thêm repository mới và tiến hành cập nhật hệ thống :
- sudo add-apt-repository ppa:certbot/certbot
Tiếp theo, cài đặt cerbot:
- sudo apt install certbot
Máy chủ của bạn, hiện đã sẵn sàng để chạy ứng dụng với chứng chỉ TLS do Jitsi Meet cung cấp:
- sudo /usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh
Khi bạn chạy câu lệnh này, bạn sẽ được thấy lời nhắc để thêm đị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 nhà phát hành chứng chỉ 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 chứng chỉ TLS. Bạn phải nhập một địa chỉ email ở đây để tiến hành cài đặt. Việc cài đặt sau đó sẽ hoàn tất mà không cần thêm bất kỳ lời nhắc nào.
Khi kết thúc, Jitsi Meet sẽ được cấu hình để sử dụng chứng chỉ TLS đã ký với tên miền của bạn. Gia hạn chứng chỉ cũng sẽ tự động xảy ra vì trình cài đặt đã đặt tập lệnh gia hạn tại /etc/cron.weekly/letsencrypt-renew sẽ chạy mỗi tuần.
Trình cài đặt TLS sử dụng port 80 để xác minh tên miền hợp lệ, khi đã cài đặt thành công, bạn đã nhận được chứng chỉ TLS, nên port 80 lúc này không cần thiết nữa, chúng ta có thể chặn port này với tường lửa. Jitsi Meet truyền dữ liệu cách cuộc hợp của các website thông qua HTTPS trên cổng 443.
Đóng port 80 với tường lửa bằng lệnh ufw sau:
- sudo ufw delete allow 80/tcp
Máy chủ Jitsi Meet của bạn hiện đã hoạt động và sẵn sàng để chạy thử nghiệm. Mở một trình duyệt và trỏ nó đến tên miền của bạn. Bạn sẽ có thể tạo một phòng gọi video mới và mời những người khác cùng tham gia.
Cấu hình mặc định cho Cuộc họp Jitsi là bất kỳ ai cũng có quyền truy cập cuộc họp Jitsi. Trong bước tiếp theo, bạn sẽ cấu hình Jitsi Meet để chỉ cho phép những người đã đăng ký mới được phép tạo phòng hội nghị.
Bước 5 – Tạo khóa cho phòng hội nghị
In this step, you will configure your Jitsi Meet server to only allow registered users to create conference rooms. The files that you will edit were generated by the installer and are configured with your domain name.
Trong bước này, bạn sẽ cấu hình máy chủ Jitsi Meet để chỉ cho phép người dùng đã đăng ký mới tạo được phòng hội nghị.
Đầu tiên, mở sudo nano /etc/prosody/conf.avail/your_domain.cfg.lua bằng trình chỉnh sửa văn bản:
- sudo nano /etc/prosody/conf.avail/your_domain.cfg.lua
Chỉnh sửa dòng sau:
...
authentication = "anonymous"
...
thành:
...
authentication = "internal_plain"
...
Cấu hình này sẽ bắt xác thực tên người dùng và mật khẩu trước khi cho phép tạo phòng hội nghị bởi một khách truy cập mới.
Sau đó, cũng trên file này, thêm những dòng 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 bất kỳ user nào cũng có thể tham gia vào phòng hội nghị đã được tạo sẵn. Tuy nhiên, những user này bắt buộc phải có địa chỉ URL và mật khẩu để đăng nhập vào phòng.
Ở đây, bạn có thể thêm “guest” vào trước domain. Ví dụ, với jitsi.your-domain , bạn sẽ đặt guest.jitsi.your-domain. Sau đó, bạn cần tạo record này trên DNS để có thể sử dụng chúng.
Mở file cấu hình khác: “/etc/jitsi/meet/your_domain-config.js
”
- sudo nano /etc/jitsi/meet/your_domain-config.js
Chỉnh sửa dòng sau:
...
// anonymousdomain: 'guest.example.com',
...
thành :
...
anonymousdomain: 'guest.your_domain',
...
Lại lần nữa, với việc sử dụng guest.your_domain
, bạn sẽ thông báo cho Jitsi Meet là bạn muốn sử dụng domain này để dùng cho những user Guests khi họ đăng nhập.
Tiếp theo, bạn mở file: /etc/jitsi/jicofo/sip-communicator.properties
:
- sudo nano /etc/jitsi/jicofo/sip-communicator.properties
Thêm những dòng sau để hoàn tất quá trình cấu hình.
org.jitsi.jicofo.auth.URL=XMPP:your_domain
Đây là cấu hình cho quá trình xử lý của Jitsi Meet đến local server để phục vụ cho user khi được yêu cầu.
Jitsi Meet của bạn hiện giờ đã cấu hình hoàn tất, bây giờ chỉ còn việc đăng ký user để có thể tạo phòng hội nghị. Sau khi phòng được tạo, bất kỳ ai cũng có thể tham gia vào mà không cần phải đăng ký tạo tài khoản. Tất cả những user đó chỉ cần địa chỉ URL của phòng và mật khẩu để đăng nhập.
Bạn sẽ sử dụng prosodyctl
để làm điều đó:
- sudo prosodyctl register user your_domain password
User được tạo bởi tiện ích trên, không phải là user của hệ thống. Nó chỉ là User cho ứng dụng Jitsit Meet mà thôi.
Cuối cùng, khởi động lại Jitsi Meet để áp dụng cấu hình:
- sudo systemctl restart prosody.service
- sudo systemctl restart jicofo.service
- sudo systemctl restart jitsi-videobridge2.service
Khi phòng hội nghị được tạo, sẽ có 1 hộp thoại xuất hiện, yêu cầu Username và Password.
Jitsi Meet của bạn hiện giờ đã được cài đặt và cấu hình bảo mật hoàn tất.
Tóm lại
Trong bài này, bạn đã triển khai một Server Jitsi Meet để có thể có thể sử dụng cuộc gọi video an toàn và riêng tư. Bạn có thể mở rộng Jitsi Meet này theo sự hướng dẫn ở Jitsi Meet Wiki.
Chúc bạn thành công !
Người viết:
congdonglinux
Đăng ký liền tay Nhận Ngay Bài Mới
Subscribe ngay
Cám ơn bạn đã đăng ký !
Lỗi đăng ký !
Add Comment