👥

オンプレWeb会議システム構築(JitsiMeet)

2021/05/30に公開

インターネットが使えないイントラネット内で職員同士でWeb会議がしたかったので、オンプレ環境にUbuntuサーバをたてて、OSSのWeb会議システムを構築してみた。

前提環境

  • イントラ:Active Directory(ドメイン:intra.hoge.jp)
  • 仮想環境:vSphere
  • サーバOS:Ubuntu Server 20.04 LTS(https://jp.ubuntu.com/download)
  • クライアントソフト:Microsoft Edge(Chromium版)(Chromeでも可)

※構築中のみサーバがインターネットにつながる必要あり。

構築手順

1.Ubuntu Serverの構築

仮想マシンのリソース割り当て

構成 割当
CPU 2コア
メモリ 16GB
ディスク 100GB
※仮想マシンの作成部分は割愛

1.1 言語の選択:English

1.1 キーボードレイアウト: 環境にあったものを選択(普通はJapanese)

1.2 ネットワークの設定:IPv4に固定IPを設定

1.3 IPアドレスの設定(インターネットに抜けれるように設定)

1.4 Proxyがあれば設定

1.5 リポジトリの設定:そのままでOK

1.6 Diskの割り当て:そのままでOK

1.7 Storageの設定:そのままでOK

1.8 フォーマットしていいか:Continue

1.9 ユーザーとSV名の設定

1.10 OpenSSHサーバのインストール:チェックする

1.11 サーバの機能の追加:特になし

1.12 インストール開始:RebootがでたらRebootする
※キャプチャ取り忘れました。

1.13 起動したら、1.2.12で指定したユーザーでログインできることを確認

2.Ubuntu Serverの初期設定

2.1 SSHでSVに接続:Tera Termとかで接続
以下の操作は、基本的にSSHで実施

2.2 パッケージの更新

sudo apt update
sudo apt upgrade

2.3 時刻の設定:NTPサーバの指定とタイムゾーンの変更

sudo nano /etc/systemd/timesyncd.conf
- #NTP=
+ NTP=192.168.1.2

#外して時刻同期したいSVを指定
sudo timedatectl set-timezone Asia/Tokyo 
sudo systemctl restart systemd-timesyncd.service
systemctl status systemd-timesyncd

2.4 SSHの設定:rootでのログインを禁止

sudo nano /etc/ssh/sshd_config
- #PermitRootLogin yes
+ PermitRootLogin no

sudo systemctl restart sshd

3. Jitsi Meetインストール事前準備

ここからは公式ドキュメントを参考に進める。
https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-quickstart

3.1 必要なパッケージとリポジトリの更新
次のパッケージが必要だが、Jitsi Meetのインストール時に自動で入る。

  • gnupg2
  • nginx-full
  • sudo # sudo を使用する場合のみ必要
  • OpenJDK 8 または OpenJDK 11

システムが最新で、必要なパッケージがインストールされていることを確認

apt update
sudo apt install apt-transport-https

Jitsi は Ubuntu のuniverseパッケージ リポジトリからの依存関係が必要

sudo apt-add-repository universe
sudo apt update

3.2 完全修飾ドメイン名(FQDN)を設定する

sudo nano /etc/hosts
- 127.0.1.1 meetsv
+ 192.168.1.1 meetsv.intra.hoge.jp meetsv

※SVの[IPアドレス ホスト名.ドメイン ホスト名]を設定

3.3 Jitsiパッケージリポジトリを追加する

sudo curl https://download.jitsi.org/jitsi-key.gpg.key | sudo sh -c 'gpg --dearmor > /usr/share/keyrings/jitsi-keyring.gpg'

sudo echo 'deb [signed-by=/usr/share/keyrings/jitsi-keyring.gpg] https://download.jitsi.org stable/' | sudo tee /etc/apt/sources.list.d/jitsi-stable.list > /dev/null

sudo apt update

3.4 FW(ufw)の設定

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 10000/udp
sudo ufw allow 22/tcp
sudo ufw allow 3478/udp
sudo ufw allow 5349/tcp
sudo ufw enable

ファイアウォールのステータスの確認

sudo ufw status verbose

3.5 TLS証明書の準備(オレオレサーバ証明書の発行)
3.5.1 Workフォルダの作成

cd ~
mkdir work

3.5.2 subjectnames.txtの作成

cd work
nano subjectnames.txt
subjectAltName = DNS:meetsv.intra.hoge.jp, IP:192.168.1.1

※DNS:ホスト名.ドメイン, IP:SVのIPアドレスを設定

3.5.3 証明書の発行

sudo openssl genrsa 2048 > meetsv.intra.hoge.jp.key

sudo openssl req -new -key server.key -subj "/C=JP/ST=Tokyo/O=hoge-soumu/CN=meetsv.intra.hoge.jp" > meetsv.intra.hoge.jp.csr

sudo openssl x509 -days 3650 -req -extfile subjectnames.txt -signkey server.key < server.csr > meetsv.intra.hoge.jp.crt

※/C=JP /ST=都道府県 /O=組織名 /CN=ホスト名.ドメイン

3.5.4 meetsv.intra.hoge.jp.crtの中身をコピーし、ローカルPC内に保存

more meetsv.intra.hoge.jp.crt

ファイル名:meetsv.intra.hoge.jp.crt
※WinSCPでつないで、meetsv.intra.hoge.jp.crtを取得してもOK

3.5.5 証明書のファイルの移動

sudo mv meetsv.intra.hoge.jp.* /etc/ssl

4. Jitsi Meetのインストール

4.1 インストールコマンドの実行

sudo apt install jitsi-meet

※openjdkとnginxは事前にインストールしておかなくても、自動で入る

4.2 ホスト名.ドメインを入力
ex) meetsv.intra.hoge.jp

4.3 SSL証明書の設定方法:下の方を選択

4.4 SSL証明書の指定
3.5で作成したオレオレ証明書を指定(手順書通りにしていれば、そのままOK)


4.5 エラーがなければ、インストール完了
・この状態でもEdgeかChromeで[https://IPアドレス]にアクセスすれば、証明書エラーがでるが初期画面は立ち上がる。
※ミーティングを開始しても落ちて使えないので、注意

4.6 ログの設定(任意の設定)

sudo nano /etc/jitsi/videobridge/logging.properties
- java.util.logging.ConsoleHandler.level = ALL
+ java.util.logging.ConsoleHandler.level = SEVERE

sudo systemctl restart jitsi-videobridge2.service

5. 接続設定

5.1 DNSの登録(ホスト名で接続するための設定):イントラのDNSがADの場合

  • ADにリモートして、DNSの設定を開く
  • 前方参照ゾーンにAレコードを追加

5.2 ADで証明書の配布
5.2.1 GPOの作成
[コンピュータの構成] > [ポリシー] > [Windowsの設定] > [セキュリティの設定] > [公開キーのポリシー] > [信頼されたルート証明機関]
右側の空白部分で右クリックして「インポート」を選択

5.2.2 証明書ファイル meetsv.intra.hoge.jp.crt を指定して、取り込む
5.2.3 GPOを配布したいPCのOUに設定したら、PCを再起動

※個別に配布する場合は、証明書のインストールを実行して信頼されたルート証明期間に配置

6. 接続

・EdgeかChromeで[https://FQDN]にアクセス。

新しくミーティングを開始して、音声とカメラが使えればOK
※マイクとカメラの許可が求められるので、許可すること

構築完了!!

7. Jitsi Meet関連のサービス

7.1 各サービスの再起動

sudo systemctl restart prosody.service
sudo systemctl restart jicofo.service
sudo systemctl restart jitsi-videobridge2.service
sudo systemctl restart nginx.servic

7.2 各サービスのステータス

systemctl status prosody.service
systemctl status jicofo.service
systemctl status jitsi-videobridge2.service
systemctl status nginx.service

8. Jitsi Meetのアンインストール方法

8.1 サーバにSSHで接続後、下記コマンドを実行

sudo apt purge jigasi jitsi-meet jitsi-meet-web-config jitsi-meet-prosody jitsi-meet-turnserver jitsi-meet-web jicofo jitsi-videobridge2
sudo rm -rf /etc/jitsi/
sudo rm -rf /var/lib/prosody/
sudo rm -rf /var/log/prosody/
sudo rm -rf /usr/share/jicofo/
sudo rm -rf /usr/share/jitsi-*/

Discussion