- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2022-10-26T16:07:09+09:00","default:okada","okada")
#author("2022-10-26T16:23:19+09:00","default:okada","okada")
*JitsiMeet Ubuntu22.04LTS [#kf968178]
RIGHT:更新日&lastmod();
RIGHT:作成日:2022年10月26日
iPadからPCに画像が送れないという現象が出たので、この機会にOSのバージョンアップも兼ねてインストールした。新規インストールも問題の現象は変わらいなが、[[こちら対応と同じ内容>turboLinux_White Box Enterprise Linux_Fedora Core_Red Hat Memo/Jitsi-Meet4]]でトラブルは回避できた。
**インストール環境 [#x2e5e9b6]
-Ubuntu22.04LTS(ISO:ubuntu-22.04.1-live-server-amd64.iso)
-jitsi-meet:2.0.7882
**Ubuntuのインストール [#r182d018]
インストール開始時言語は「English」を選択
&ref(./ubuntu-inst1.png");
&ref("./ubuntu-inst1.png");
&ref(./ubuntu-inst2.png");
&ref("./ubuntu-inst2.png");
-GWはWAN側だけ指定、LAN側は空白
&ref(./ubuntu-inst3.png");
&ref("./ubuntu-inst3.png");
&ref(./ubuntu-inst4.png");
&ref("./ubuntu-inst4.png");
-Proxyは空欄
&ref(./ubuntu-inst5.png");
&ref("./ubuntu-inst5.png");
-Mirror address、ストレージはデフォルト
&ref(./ubuntu-inst6.png");
&ref("./ubuntu-inst6.png");
&ref(./ubuntu-inst7.png");
&ref("./ubuntu-inst7.png");
&ref(./ubuntu-inst8.png");
&ref("./ubuntu-inst8.png");
&ref(./ubuntu-inst9.png");
&ref("./ubuntu-inst9.png");
-sshサーバをインストール(Enterで「X」が入る)
&ref(./ubuntu-inst10.png");
&ref("./ubuntu-inst10.png");
-追加パッケージはなし
&ref(./ubuntu-inst11.png");
&ref("./ubuntu-inst11.png");
-再起動
-インストール開始
**Ubuntuの設定 [#dd4f4f42]
***rootのパスワード設定 [#kdad5a71]
$ sudo passwd root
***ipv6停止 [#n483e638]
-/etc/default/grub
RUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT=""
GRUB_CMDLINE_LINUX="ipv6.disable=1" ←ipv6.disable=1を追加
-grubのアップデート
# update-grub
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/init-select.cfg'
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.4.0-65-generic
Found initrd image: /boot/initrd.img-5.4.0-65-generic
done
-再起動
# reboot
-以下のコマンドで何も表示しなことを確認
# ip -6 a
***NTP クライアントの設定 [#p407b916]
''設定ファイル''
-/etc/systemd/timesyncd.conf
#
# See timesyncd.conf(5) for details.
[Time]
#NTP=
NTP=ntp.nict.jp ← NTPサーバ追加
#FallbackNTP=ntp.ubuntu.com
#RootDistanceMaxSec=5
-NTPサービスの再起動と確認
# systemctl restart systemd-timesyncd
# systemctl status systemd-timesyncd
● systemd-timesyncd.service - Network Time Synchronization
Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; enabled; ve>
Active: active (running) since Mon 2022-10-24 05:37:44 UTC; 9s ago
Docs: man:systemd-timesyncd.service(8)
Main PID: 14614 (systemd-timesyn)
Status: "Initial synchronization to time server 133.243.238.243:123 (ntp.n>
Tasks: 2 (limit: 6985)
Memory: 1.3M
CPU: 109ms
CGroup: /system.slice/systemd-timesyncd.service
mq14614 /lib/systemd/systemd-timesyncd
***Time ZoneをJSTに変更 [#e1c61a04]
-現在のZoneの確認
# timedatectl
Local time: Mon 2022-10-24 05:39:38 UTC
Universal time: Mon 2022-10-24 05:39:38 UTC
RTC time: Mon 2022-10-24 05:39:38
Time zone: Etc/UTC (UTC, +0000)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
-JSTに変更
# timedatectl set-timezone Asia/Tokyo
-変更を確認
# timedatectl
Local time: Mon 2022-10-24 14:41:01 JST ←ここ
Universal time: Mon 2022-10-24 05:41:01 UTC
RTC time: Mon 2022-10-24 05:41:00
Time zone: Asia/Tokyo (JST, +0900) ←ここ
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
***ファイアウォールの設定 [#x39b78c4]
-Iptableが起動していない確認
# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
-ファイアウォールでTCPの22,80,443、およびUDPの10000-20000を解放
# ufw status
Status: inactive
-ファイアーウォールを有効化
# ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
[ファイアウォールはアクティブかつシステムの起動時に有効化されます。]
Firewall is active and enabled on system startup
# ufw allow in ssh
Rule added
# ufw allow in 80/tcp
Rule added
# ufw allow in 443/tcp
Rule added
# ufw allow in 10000:20000/udp
Rule added
-ファイアウォールでアクセス許可元IPを設定する
# ufw allow from 192.168.0.0/24 to any port ssh
Rule added
-ファイアウォールの確認
# ufw status
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
80/tcp ALLOW Anywhere
443/tcp ALLOW Anywhere
10000:20000/udp ALLOW Anywhere
22/tcp ALLOW 192.168.0.0/24
***jitsimeetのリポジトリを登録 [#mec47d99]
# cd ~okada
# wget https://download.jitsi.org/jitsi-key.gpg.key
--2022-10-24 14:58:11-- https://download.jitsi.org/jitsi-key.gpg.key
Resolving download.jitsi.org (download.jitsi.org)... 34.209.97.49, 35.161.96.31, 2600:1f14:5eb:f801:730b:cd02:ffec:70cb, ...
Connecting to download.jitsi.org (download.jitsi.org)|34.209.97.49|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3114 (3.0K) [application/octet-stream]
Saving to: ‘jitsi-key.gpg.key’
jitsi-key.gpg.key 100%[===================>] 3.04K --.-KB/s in 0s
2022-10-24 14:58:12 (759 MB/s) - ‘jitsi-key.gpg.key’ saved [3114/3114]
-Keyのダウンロードを確認
# ls
jitsi-key.gpg.key
-Keyの登録
# apt-key add jitsi-key.gpg.key
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).
OK
-リポジトリ追加
/etc/apt/sources.list.d/jitsi-stable.listを作成し、以下の1行を記入
deb https://download.jitsi.org stable/
# apt update
# apt upgrade
以下の画面が表示されたら「OK」を選択する
&ref("./ubuntu-update.png");
Ubuntu 22.04 LTS には needrestart というパッケージが入っていて、パッケージの更新のときに「Daemons using outdated libraries」というダイアログに「Which services should be restarted?」という質問で再起動対象を選ぶ状態になることがあります。
-上記の確認をなくす方法(未確認)
# echo "\$nrconf{restart} = 'a';" | sudo tee /etc/needrestart/conf.d/50local.conf
#cat /etc/needrestart/conf.d/50local.conf
$nrconf{restart} = 'a';
**nginxインストール [#je4109ce]
以下でインストールは出来るが起動に失敗する。ipv6を停止したのが原因。ipv6関連をコメントアウトすることで対応する。
# apt install nginx
(略)
invoke-rc.d: initscript nginx, action "start" failed.
× nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Mon 2022-10-24 15:07:00 JST; 7ms ago
Docs: man:nginx(8)
Process: 15889 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process o n; (code=exited, status=1/FAILURE)
CPU: 15ms
Oct 24 15:07:00 vmmeeting systemd[1]: Starting A high performance web server and a reverse proxy server...
Oct 24 15:07:00 vmmeeting nginx[15889]: nginx: [emerg] socket() [::]:80 failed (97: Unknown error) ← このあたありが原因
Oct 24 15:07:00 vmmeeting nginx[15889]: nginx: configuration file /etc/nginx/nginx.conf test failed
(最終行)
dpkg: error processing package nginx (--configure):
dependency problems - leaving unconfigured
Processing triggers for ufw (0.36.1-4build1) ...
No apport report written because the error message indicates its a followup error from a previous failure.
Processing triggers for man-db (2.10.2-1) ...
Processing triggers for libc-bin (2.35-0ubuntu3.1) ...
Errors were encountered while processing:
nginx-core
nginx
needrestart is being skipped since dpkg has failed
E: Sub-process /usr/bin/dpkg returned an error code (1)
&color(red){''エラー対応''};
IPv6を停止したため発生したようなのでIPv6の部分をコメントアウト
-/etc/nginx/sites-available/default
server {
listen 80 default_server;
## listen [::]:80 default_server; ←コメントアウト
# SSL configuration
(略)
***nginxを起動 [#oa2b1b80]
# systemctl start nginx
root@vmmeeting:/etc/nginx/sites-available# systemctl status nginx
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2022-10-24 15:17:43 JST; 3s ago
Docs: man:nginx(8) ←起動確認
Process: 16050 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Process: 16051 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Main PID: 16052 (nginx)
Tasks: 9 (limit: 6985)
(略)
**JDKのインストール [#fd676940]
# apt install -y openjdk-8-jre-headless
***確認 [#a14f970d]
# dpkg -l | grep openjdk
ii openjdk-11-jre-headless:amd64 11.0.16+8-0ubuntu1~22.04 amd64 OpenJDK Java runtime, using Hotspot JIT (headless)
ii openjdk-8-jre-headless:amd64 8u342-b07-0ubuntu1~22.04 amd64 OpenJDK Java runtime, using Hotspot JIT (headless)
**Jitsi-Meetのインストール [#l821117c]
# apt install -y jitsi-meet
&ref("./jitsimeet-inst1.png");
&ref("./jitsimeet-inst2.png");
''「Let's Encrrypt certificates」を選択
&ref("./jitsimeet-inst3.png");
&ref("./jitsimeet-inst4.png");
&ref("./jitsimeet-inst5.png");
&ref("./jitsimeet-inst6.png");
''Noを選択''
[ダイヤルイン サポートを会議に簡単に追加できます。~
無料の JaaS (Jitsi as a Service) アカウントを作成する許可を当社に与える必要があります。~
Jitsi ミーティングにテレフォニーを追加することに興味がありますか?]
***nginxのipv6のPort80, 443をコメントアウト [#t6455399]
-/etc/nginx/sites-available/meet.ism21.net.conf
server {
listen 80;
## listen [::]:80; ←ここ
server_name meet.ism21.net;
server {
listen 443 ssl;
## listen [::]:443 ssl; ←ここ
server_name meet.ism21.net;
-nginxの再起動と確認
# systemctl restart nginx
# systemctl status nginx
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset:>
Active: active (running) since Tue 2022-10-25 11:42:23 JST; 29s ago
Docs: man:nginx(8)
(略)
***jitsimeetのインストール確認 [#ob911761]
# apt list --installed | grep jitsi
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
jitsi-meet-prosody/stable,now 1.0.6644-1 all [installed,automatic]
jitsi-meet-web-config/stable,now 1.0.6644-1 all [installed,automatic]
jitsi-meet-web/stable,now 1.0.6644-1 all [installed,automatic]
jitsi-meet/stable,now 2.0.7882-1 all [installed]
jitsi-videobridge2/stable,now 2.2-45-ge8b20f06-1 all [installed,automatic]
lua-basexx/stable,now 0.4.1-jitsi1 all [installed,automatic]
lua-cjson/stable,now 2.1.0.10-jitsi1 amd64 [installed,automatic]
''jitsi-meetインストール完了''
**Let’s Encryptの証明書の取得 [#f8959e84]
サーバをインターネットからport80とport443でアクセス可能にしておく。
# cd /usr/share/jitsi-meet/scripts
# ./install-letsencrypt-cert.sh
-------------------------------------------------------------------------
This script will:
- Need a working DNS record pointing to this machine(for hostname )
- Install additional dependencies in order to request Let’s Encrypt certificate (acme.sh)
- Configure and reload nginx or apache2, whichever is used
- Configure the coturn server to use Let's Encrypt certificate and add required deploy hooks
- Configure renew of certificate
(略)
[Tue Oct 25 12:02:23 PM JST 2022] Installing key to: /etc/jitsi/meet/meet.ism21.net.key
[Tue Oct 25 12:02:23 PM JST 2022] Installing full chain to: /etc/jitsi/meet/meet.ism21.net.crt
[Tue Oct 25 12:02:23 PM JST 2022] Run reload cmd: systemctl force-reload nginx.service && /usr/share/jitsi-meet/scripts/coturn-le-update.sh meet.ism21.net
[Tue Oct 25 12:02:23 PM JST 2022] Reload success
***証明書のフィンガープリントの確認 [#n983f05a]
以下のファインガープリントとブラウザの証明書と一致する。
# openssl x509 -sha1 -fingerprint -noout -in meet.ism21.net.crt
sha1 Fingerprint=B2:02:31:C5:40:A0:64:56:BB:9F:D0:8D:BE:72:9D:6C:22:45:7B:86
# openssl x509 -sha256 -fingerprint -noout -in meet.ism21.net.crt
sha256 Fingerprint=0A:F6:50:3D:52:43:72:65:C2:B9:7A:9A:B4:AD:F9:98:E8:3E:68:B4:EC:5D:65:CB:94:4E:CB:47:DA:D5:5B:60
&ref("./fingerprint.png");
**証明書自動更新のためcertbotのインストール [#f578ea96]
Jitsi-meetのインストールで証明書は取得しているので、自動更新、マニュアルでの更新に使用するためインストールする。(Let's Encrypt(無料のSSL証明書)の証明書を取得してインストールするツール)
***インストール [#ud1f0af8]
# apt -y install certbot
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
(略)
-インストール後certbot.timerが起動してるか確認
# systemctl status certbot.timer
● certbot.timer - Run certbot twice daily
Loaded: loaded (/lib/systemd/system/certbot.timer; enabled; vendor preset:>
Active: active (waiting) since Wed 2022-10-26 11:02:34 JST; 59s ago
Trigger: Wed 2022-10-26 14:52:34 JST; 3h 49min left
Triggers: ● certbot.service
Oct 26 11:02:34 vmmeeting systemd[1]: Started Run certbot twice daily
インストールした certbotパッケージは、systemdタイマーを追加することでこれを処理する。 このスクリプトは1日に2回実行され、有効期限の30日以内にある証明書を自動更新する。
***次回実行時間の確認 [#iff07611]
-Wed 2022-10-26 14:52:34 JST に実行 3h 47min 後
# systemctl list-timers
NEXT LEFT LAST PASSED UNIT ACTIVATES
Wed 2022-10-26 12:11:45 JST 1h 6min left Tue 2022-10-25 14:23:46 JST 20h ago motd-news.timer motd-news.service
Wed 2022-10-26 12:59:51 JST 1h 54min left Tue 2022-10-25 10:23:48 JST 24h ago fwupd-refresh.timer fwupd-refresh.service
Wed 2022-10-26 14:52:34 JST 3h 47min left n/a n/a certbot.timer certbot.service ←ここ
Wed 2022-10-26 14:58:26 JST 3h 52min left Tue 2022-10-25 10:23:48 JST 24h ago apt-daily.timer apt-daily.service
Wed 2022-10-26 17:34:50 JST 6h left Wed 2022-10-26 10:55:54 JST 9min ago ua-timer.timer ua-timer.service
Wed 2022-10-26 21:45:36 JST 10h left Tue 2022-10-25 10:23:48 JST 24h ago man-db.timer man-db.service
(略)
**WEB会議の作成できるユーザーをID、Passwordで制限する設定 [#qb6b52e2]
-/etc/prosody/conf.avail/meet.ism21.net.cfg.lua
VirtualHost "meet.ism21.net"
-- authentication = "jitsi-anonymous" -- do not delete me ←コメントアウト
authentication = "internal_plain" ←追加
-- Properties below are modified by jitsi-meet-tokens package config
-- and authentication above is switched to "token"
(略)
main_muc = "conference.meet.ism21.net"
-- muc_lobby_whitelist = { "recorder.meet.ism21.net" } -- Here we can whitelist jibri to enter lobby enabled rooms
---Add to JE2ISM ----
VirtualHost "guest.meet.ism21.net"
authentication = "anonymous"
c2s_require_encryption = false
---ここまで----------
Component "conference.meet.ism21.net" "muc"
restrict_room_creation = true
(略)
Component "metadata.meet.ism21.net" "room_metadata_component"
muc_component = "conference.meet.ism21.net"
breakout_rooms_component = "breakout.meet.ism21.net"
[最終行に追加]
-- Edit By JE2ISM
VirtualHost "guest.meet.ism21.net"
authentication = "anonymous"
c2s_require_encryption = falseroot@vmmeeting:/etc/jitsi/jicofo
-/etc/jitsi/meet/meet.ism21.net-config.js
hosts: {
// XMPP domain.
domain: 'meet.ism21.net',
// Add by JE2ISM
anonymousdomain: 'guest.meet.ism21.net',
// When using authentication, domain for guest users.
// anonymousdomain: 'guest.example.com',
以下のファイルが無いときは作成し、存在するときは最終行に追加する
-/etc/jitsi/jicofo/sip-communicator.properties
org.jitsi.jicofo.auth.URL=XMPP:meet.ism21.net
**ユーザ登録方法 [#h0a09954]
# prosodyctl adduser okada@meet.ism21.net
Enter new password:
Retype new password:
**jitsiMeetサービス再起動 [#b211f188]
# systemctl restart jicofo
# systemctl restart prosody
# systemctl restart jitsi-videobridge2.service
''ブラウザ、スマホで確認''