オンプレWeb会議システム構築(JitsiMeet)
インターネットが使えないイントラネット内で職員同士で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インストール事前準備
ここからは公式ドキュメントを参考に進める。
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