https://www.digitalocean.com/community/tutorials/how-to-install-jitsi-meet-on-ubuntu-18-04 원본사이트
소개
Jitsi Meet 은 WebRTC 기반의 오픈 소스 화상 회의 응용 프로그램입니다 . Jitsi Meet 서버는 브라우저를 사용하여 액세스 할 수있는 다자간 화상 회의실을 제공하며 Zoom 또는 Skype 전화 회의와 비슷한 기능을 제공합니다. Jitsi 회의의 이점은 모든 데이터가 서버를 통해서만 전달되며 엔드 투 엔드 TLS 암호화로 아무도 통화를 스누핑 할 수 없다는 것입니다. Jitsi를 사용하면 개인 정보가 그대로 유지되도록 할 수 있습니다.
이 튜토리얼에서는 Ubuntu 18.04에 Jitsi Meet 서버를 설치하고 구성합니다. 기본 구성을 사용하면 누구나 새 회의실을 만들 수 있습니다. 인터넷에서 공개적으로 사용 가능한 서버에는 적합하지 않으므로 등록 된 사용자 만 새 회의실을 만들 수 있도록 Jitsi Meet을 구성 할 수도 있습니다. 회의실을 만든 후에는 고유 한 주소와 선택적 암호가있는 한 모든 사용자가 참여할 수 있습니다.
전제 조건
이 안내서를 시작하기 전에 다음이 필요합니다.
- 루트가 아닌 sudo 지원 사용자를 포함하여 Ubuntu 18.04 자습서를 사용한 초기 서버 설정 에 따라 하나의 Ubuntu 18.04 서버가 설정되었습니다 . 필요한 서버 크기는 주로 사용 가능한 대역폭과 서버를 사용하려는 참가자 수에 따라 다릅니다. 다음 표는 무엇이 필요한지에 대한 아이디어를 제공합니다.
- 서버를 가리 키도록 구성된 도메인 이름. DigitalOcean 으로 호스트 이름을 설정 하는 방법 학습서 에 따라 도메인을 DigitalOcean Droplets로 지정하는 방법을 학습 할 수 있습니다 . 이 안내서에서는 예제 도메인 이름 jitsi.your-domain이 사용됩니다.
Jitsi Meet 인스턴스를 실행할 서버를 선택할 때 회의실을 호스트하는 데 필요한 시스템 자원을 고려해야합니다. 고품질 비디오 설정을 사용하여 단일 코어 가상 머신에서 다음 벤치 마크 정보를 수집했습니다.
CPU서버 대역폭
두 참가자 | 삼% | 30Kbps Up, 100Kbps Down |
세 참가자 | 15 % | 7Mbps, 6.5Mbps |
2 명에서 3 명 사이의 자원 사용이 급증한 것은 Jitsi가 통화 데이터를 두 명있을 때 클라이언트간에 직접 라우팅하기 때문입니다. 둘 이상의 클라이언트가 있으면 통화 데이터가 Jitsi Meet 서버를 통해 라우팅됩니다.
1 단계 — 시스템 호스트 이름 설정
이 단계에서는 Jitsi Meet 인스턴스에 사용하려는 도메인 이름과 일치하도록 시스템의 호스트 이름을 변경하고 해당 호스트 이름을 로컬 호스트 IP로 확인 127.0.0.1합니다. Jitsi Meet은 구성 파일을 설치하고 생성 할 때이 두 설정을 모두 사용합니다.
먼저 시스템의 호스트 이름을 Jitsi 인스턴스에 사용할 도메인 이름으로 설정하십시오. 다음 명령은 현재 호스트 이름을 설정하고 /etc/hostname재부팅 사이에 시스템의 호스트 이름을 보유한 호스트 이름을 수정합니다 .
sudo hostnamectl set-hostname jitsi.your-domain
실행 한 명령은 다음과 같이 분류됩니다.
- hostnamectl시스템 호스트 이름을 관리하기 위한 systemd tool suite 의 유틸리티입니다 .
- set-hostname 시스템 호스트 이름을 설정합니다.
다음을 실행하여 이것이 성공했는지 확인하십시오.
$ hostname
hostnamectl명령으로 설정 한 호스트 이름을 반환합니다 :
Output jitsi.your-domain
다음으로 서버 호스트 이름의 로컬 매핑을 루프백 IP 주소로 설정 127.0.0.1합니다. /etc/hosts텍스트 편집기로 파일을 열어서이를 수행 하십시오.
$ sudo nano /etc/hosts
그런 다음 다음 줄을 추가하십시오.
/ etc / hosts
127.0.0.1 jitsi.your-domain
Jitsi Meet 서버의 도메인 이름을 매핑하여 Jitsi Meet 서버가 IP 주소 127.0.0.1에서 서로 로컬 연결을 수락하는 여러 네트워크 프로세스를 사용할 수 127.0.0.1있습니다. 이러한 연결은 도메인 이름에 등록 된 TLS 인증서로 인증 및 암호화됩니다. 도메인 이름을 로컬로 매핑하면 127.0.0.1이러한 로컬 네트워크 연결에 TLS 인증서를 사용할 수 있습니다.
파일을 저장하고 종료하십시오.
이제 서버에 Jitsi가 설치하는 데 필요한 호스트 이름이 있습니다. 다음 단계에서는 Jitsi 및 TLS 인증서 설치 프로그램에 필요한 방화벽 포트를 엽니 다.
2 단계 — 방화벽 구성
당신이 다음에 할 때 우분투 18.04와 초기 서버 설치 가이드를 당신은 UFW 방화벽을 활성화하고 SSH 포트를 열었습니다. Jitsi 서버는 콜 클라이언트와 통신 할 수 있도록 일부 포트가 열려 있어야합니다. 또한 인증서 요청을 인증 할 수 있도록 TLS 설치 프로세스에 포트가 열려 있어야합니다.
열 포트는 다음과 같습니다.
- 80/tcp TLS 인증서 요청에 사용됩니다.
- 443/tcp 회의실 생성 웹 페이지에 사용됩니다.
- 4443/tcp,10000/udp 암호화 된 통화 트래픽을 송수신하는 데 사용됩니다.
다음 ufw명령을 실행하여이 포트를여십시오.
$ sudo ufw allow 80/tcp $ sudo ufw allow 443/tcp $ sudo ufw allow 4443/tcp $ sudo ufw allow 10000/udp
다음 ufw status명령 으로 모두 추가되었는지 확인하십시오 .
$ sudo ufw status
이러한 포트가 열려 있으면 다음과 같은 출력이 표시됩니다.
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)
서버는 이제 Jitsi 설치 준비가 완료되었으며 다음 단계에서 완료됩니다.
3 단계 — Jitsi Meet 설치
이 단계에서는 서버에 Jitsi 안정적인 저장소를 추가 한 다음 해당 저장소에서 Jitsi Meet 패키지를 설치합니다. 이를 통해 항상 안정적인 최신 Jitsi Meet 패키지를 실행할 수 있습니다.
먼저 wget다운로드 유틸리티를 사용하여 Jitsi GPG 키를 다운로드하십시오.
$ wget https://download.jitsi.org/jitsi-key.gpg.key
apt패키지 관리자를 사용하면 Jitsi 저장소에서 다운로드 할 패키지를 검증하기 위해이 GPG 키를 사용합니다.
다음으로 유틸리티를 apt사용하여 다운로드 한 GPG 키를 키 링에 추가하십시오 apt-key.
$ sudo apt-key add jitsi-key.gpg.key
더 이상 필요하지 않은 GPG 키 파일을 삭제할 수 있습니다.
$ rm jitsi-key.gpg.key
이제 Jitsi 저장소를 포함하는 새 소스 파일을 작성하여 Jitsi 저장소를 서버에 추가합니다. 편집기에서 새 파일을 열고 작성하십시오.
$ sudo nano /etc/apt/sources.list.d/jitsi-stable.list
이 줄을 Jitsi 저장소의 파일에 추가하십시오.
/etc/apt/sources.list.d/jitsi-stable.list
$ deb https://download.jitsi.org stable/
편집기를 저장하고 종료하십시오.
마지막으로 시스템 업데이트를 수행하여 Jitsi 저장소에서 패키지 목록을 수집 한 후 패키지를 설치하십시오 jitsi-meet.
$ sudo apt update $ sudo apt install jitsi-meet wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | sudo apt-key add - sudo sh -c "echo 'deb https://download.jitsi.org stable/' > /etc/apt/sources.list.d/jitsi-stable.list" sudo apt update -y
Then install the full suite of Jitsi Meet:
sudo apt install -y jitsi-meet
설치하는 동안 Jitsi Meet 인스턴스에 사용할 jitsi-meet도메인 이름 (예 jitsi.your-domain:) 을 입력하라는 메시지가 표시됩니다 .
참고 : 호스트 이름 필드에서 커서를 이동 하여 키로 <확인> 버튼 을 강조 표시합니다 TAB. <확인> 이 강조 표시 ENTER되면을 눌러 호스트 이름을 제출하십시오.
그러면 Jitsi가 자체 서명 된 TLS 인증서 를 작성하여 사용할 것인지 또는 이미 가지고있는 기존 인증서를 사용할 것인지를 묻는 새 대화 상자가 표시됩니다 .
Jitsi 도메인에 대한 TLS 인증서가없는 경우 첫 번째, 새 자체 서명 인증서 생성 옵션을 선택하십시오.
Jitsi Meet 인스턴스는 이제 자체 서명 된 TLS 인증서를 사용하여 설치됩니다. 이로 인해 브라우저 경고가 발생하므로 다음 단계에서 서명 된 TLS 인증서를 받게됩니다.
4 단계 — 서명 된 TLS 인증서 받기
Jitsi Meet은 TLS 인증서를 사용하여 통화 트래픽을 암호화하여 아무도 인터넷을 통해 전화를받을 때 아무도들을 수 없습니다. TLS 인증서는 웹 사이트에서 HTTPS URL을 활성화하기 위해 사용하는 것과 동일한 인증서입니다.
Jitsi Meet은 Certbot 유틸리티 를 사용하는 도메인 이름에 대한 TLS 인증서를 자동으로 다운로드하는 프로그램을 제공 합니다. 인증서 설치 스크립트를 실행하기 전에이 프로그램을 설치해야합니다.
먼저 Certbot 리포지토리를 시스템에 추가하여 최신 버전의 Certbot이 있는지 확인하십시오. 다음 명령을 실행하여 새 저장소를 추가하고 시스템을 업데이트하십시오.
$ sudo add-apt-repository ppa:certbot/certbot
다음으로 certbot패키지를 설치하십시오 :
$ sudo apt install certbot
서버는 이제 Jitsi Meet에서 제공하는 TLS 인증서 설치 프로그램을 실행할 준비가되었습니다.
$ sudo /usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh
스크립트를 실행하면 이메일 주소에 대한 다음 프롬프트가 표시됩니다.
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]:
이 이메일 주소는 인증서 발급자에게 제출되며 https://letsencrypt.orgTLS 인증서와 관련된 보안 및 기타 문제에 대해 알려줍니다. 설치를 계속하려면 여기에 이메일 주소를 입력해야합니다. 그런 다음 추가 프롬프트없이 설치가 완료됩니다.
완료되면 Jitsi Meet 인스턴스가 도메인 이름에 서명 된 TLS 인증서를 사용하도록 구성됩니다. 설치 프로그램 /etc/cron.weekly/letsencrypt-renew이 매주 실행 되는 갱신 스크립트를 배치했기 때문에 인증서 갱신도 자동으로 수행됩니다.
TLS 설치 프로그램은 포트 80를 사용 하여 도메인 이름을 제어했는지 확인했습니다. 80포트 80는 암호화되지 않은 일반 HTTP 트래픽에 사용 되므로 서버에서 더 이상 포트를 열 필요가없는 인증서를 얻었습니다 . Jitsi Meet은 포트의 HTTPS를 통해서만 웹 사이트를 제공합니다 443.
다음 ufw명령 을 사용하여 방화벽에서이 포트를 닫으십시오 .
$ sudo ufw delete allow 80/tcp
Jitsi Meet 서버가 시작되어 테스트 할 수 있습니다. 브라우저를 열고 도메인 이름을 가리 킵니다. 새 회의실을 만들고 다른 사람을 초대 할 수 있습니다.
Jitsi Meet의 기본 구성은 Jitsi Meet 서버 홈페이지를 방문하는 모든 사람이 새 회의실을 만들 수 있다는 것입니다. 이것은 서버의 시스템 자원을 사용하여 회의실을 실행하며 권한이없는 사용자에게는 바람직하지 않습니다. 다음 단계에서는 등록 된 사용자 만 회의실을 만들 수 있도록 Jitsi Meet 인스턴스를 구성합니다.
5 단계 — 회의 생성 잠금
이 단계에서는 등록 된 사용자 만 회의실을 만들 수 있도록 Jitsi Meet 서버를 구성합니다. 편집 할 파일은 설치 관리자가 생성했으며 도메인 이름으로 구성되었습니다.
your_domain다음 예에서 변수 는 도메인 이름 대신 사용됩니다.
먼저 sudo nano /etc/prosody/conf.avail/your_domain.cfg.lua텍스트 편집기로 엽니 다 .
$ sudo nano /etc/prosody/conf.avail/your_domain.cfg.lua
이 줄을 편집하십시오.
/etc/prosody/conf.avail/your_domain.cfg.lua
... authentication = "anonymous" ...
다음과 같이 :
/etc/prosody/conf.avail/your_domain.cfg.lua
... authentication = "internal_plain" ...
이 구성은 Jitsi Meet에게 새 방문자가 회의실을 작성하기 전에 사용자 이름 및 비밀번호 인증을 강제하도록 지시합니다.
그런 다음 동일한 파일에서 파일 끝에 다음 섹션을 추가하십시오.
/etc/prosody/conf.avail/your_domain.cfg.lua
... VirtualHost "guest.your_domain" authentication = "anonymous" c2s_require_encryption = false
이 구성을 통해 익명 사용자는 인증 된 사용자가 만든 회의실에 참가할 수 있습니다. 그러나 손님이 객실에 입장하려면 고유 한 주소와 선택적인 비밀번호가 있어야합니다.
여기에서 guest.도메인 이름 앞에 추가 했습니다. 예를 들어, jitsi.your-domain당신은 넣을 것 guest.jitsi.your-domain입니다. guest.호스트 이름은 Jitsi 만나 내부적으로 사용됩니다. 브라우저에 입력하지 않거나 DNS 레코드를 만들어야합니다.
/etc/jitsi/meet/your_domain-config.js텍스트 편집기로 다른 구성 파일을여십시오 .
$ sudo nano /etc/jitsi/meet/your_domain-config.js
이 줄을 편집하십시오.
/etc/jitsi/meet/your_domain-config.js
... // anonymousdomain: 'guest.example.com', ...
다음과 같이 :
/etc/jitsi/meet/your_domain-config.js
... anonymousdomain: 'guest.your_domain', ...
다시 말하지만, 이 구성은 이전에 사용한 호스트 이름을 사용하여 Jitsi가 인증되지 않은 게스트에 사용할 내부 호스트 이름을 알려줍니다.guest.your_domain
다음으로 엽니 다 /etc/jitsi/jicofo/sip-communicator.properties.
$ sudo nano /etc/jitsi/jicofo/sip-communicator.properties
다음 행을 추가하여 구성 변경을 완료하십시오.
/etc/jitsi/jicofo/sip-communicator.properties
org.jitsi.jicofo.auth.URL=XMPP:your_domain
이 구성은 Jitsi Meet 프로세스 중 하나를 이제 필요한 사용자 인증을 수행하는 로컬 서버를 가리 킵니다.
이제 등록 된 사용자 만 회의실을 만들 수 있도록 Jitsi Meet 인스턴스가 구성되었습니다. 회의실을 만든 후에는 등록 된 사용자 일 필요없이 누구나 회의실에 참가할 수 있습니다. 필요한 것은 고유 한 회의실 주소와 회의실 작성자가 설정 한 선택적 비밀번호입니다.
이제 Jitsi Meet이 룸 생성을 위해 인증 된 사용자를 요구하도록 구성되었으므로이 사용자와 해당 비밀번호를 등록해야합니다. prosodyctl유틸리티를 사용 하여이 작업을 수행합니다.
다음 명령을 실행하여 서버에 사용자를 추가하십시오.
$ sudo prosodyctl register user your_domain password
여기에 추가 한 사용자는 시스템 사용자 가 아닙니다 . 회의실 만 만들 수 있으며 SSH를 통해 서버에 로그인 할 수 없습니다.
마지막으로 Jitsi Meet 프로세스를 다시 시작하여 새 구성을로드하십시오.
$ sudo systemctl restart prosody.service $ sudo systemctl restart jicofo.service $ sudo systemctl restart jitsi-videobridge2.service
Jitsi Meet 인스턴스는 이제 회의실을 만들 때 대화 상자와 함께 사용자 이름과 비밀번호를 요청합니다.
Jitsi Meet 서버가 설정되고 안전하게 구성되었습니다.
결론
이 기사에서는 보안 및 개인 비디오 회의실을 호스팅하는 데 사용할 수있는 Jitsi Meet 서버를 배치했습니다. Jitsi Meet Wiki의 지침에 따라 Jitsi Meet 인스턴스를 확장 할 수 있습니다 .
https://github.com/jitsi/jitsi-meet/blob/master/doc/quick-install.md 아래 출처
제거
apt-get purge jigasi jitsi-meet jitsi-meet-web-config jitsi-meet-prosody jitsi-meet-turnserver jitsi-meet-web jicofo jitsi-videobridge2
때때로 다음 패키지가 제대로 설치 제거되지 않을 수 있습니다.
- 지가시
- jitsi-videobridge
이런 일이 발생하면 uninstall 명령을 다시 한 번 실행하면 정상입니다.
실패 이유는 때때로 설치 제거 스크립트가 디먼을 중지하는 프로세스보다 빠르기 때문입니다. 제거 명령의 두 번째 실행은이를 해결합니다. jigasi 또는 jitsi-videobridge 데몬은 이미 중지되었습니다.
'프로그램개발 > IT 트렌드·팁·상식' 카테고리의 다른 글
그 좋은 공무원도 관뒀다… IT개발자 학원으로 달려가는 직장인들 (0) | 2021.03.17 |
---|---|
번역) Ubuntu 18.04에서 Let's Encrypt를 사용하여 Nginx에 SSL을 적용하는 방법 (0) | 2021.02.18 |
웹 퍼블리셔, 정확히 어떤 일을 하는 직업일까? (0) | 2021.02.04 |
강남 이젠아카데미컴퓨터학원, '풀 스택 개발(Full Stack Develop) 종합반' 국비 무료교육으로 IT전문가 키운다 (0) | 2021.02.01 |
데노(Deno) 1.7, 크로스 컴파일 및 데이너 URL 지원 (0) | 2021.01.29 |