Matrixは、オープンなフェデレーションインスタントメッセージングおよびVoIPサービスのためのリアルタイムの分散型通信のための新しいエコシステムです。単一の制御ポイントや障害のない分散およびフェデレーションチャットサーバーを構築するためのRESTfulHTTPJSON APIを提供し、APIのすべての参照を提供します。
Synapseは、マトリックスチームによって作成され、Python/Twistedで記述されたマトリックスホームサーバーの実装です。このソフトウェアを使用すると、分散型通信のマトリックス方式を実装でき、ホームサーバーを作成して、すべてのユーザーの個人情報、チャット履歴を保存したり、自分で使用するための部屋を作成したりできます。
このチュートリアルでは、Ubuntu20.04にMatrixSynapseをインストールして構成する方法を示します。 Nginxをリバースプロキシとして使用してMatrixSynapseをセットアップし、Letsencryptが提供するSSLを使用してインストールを保護します。
前提条件
このガイドでは、Matrix Synapseを、1GbのRAM、25GBの空きディスク容量、および2CPUを備えた最新のUbuntu20.04にインストールします。また、root権限でサーバーにアクセスできる必要があります。
何をしますか?
- MatrixSynapseをインストールする
- マトリックスシナプスを設定する
- SSLLetsencryptを生成する
- Nginxをリバースプロキシとして設定する
- UFWファイアウォールを設定する
- 新規ユーザーの登録
- テスト
まず、MatrixSynapseを最新のUbuntu20.04サーバーにインストールします。そのためには、GPGキーとMatrixSynapseの公式リポジトリを追加する必要があります。
先に進む前に、以下のaptコマンドを使用していくつかのパッケージの依存関係をインストールしてください。
sudo apt install -y lsb-release wget apt-transport-https
その後、Debian/Ubuntuベースのシステム用のMatrixSynapseのGPGキーとリポジトリを追加します。
sudo wget -qO /usr/share/keyrings/matrix-org-archive-keyring.gpg https://packages.matrix.org/debian/matrix-org-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/matrix-org-archive-keyring.gpg] https://packages.matrix.org/debian/ $(lsb_release -cs) main" |
sudo tee /etc/apt/sources.list.d/matrix-org.list
次に、すべてのパッケージリポジトリリストを更新し、MatrixSynapseパッケージをインストールします。
sudo apt update
sudo apt install matrix-synapse-py3
ここで、ドメイン名の構成を求められます。
Matrix Synapseインストールのドメイン名を入力し、[ OK]を選択します '続行します。
「匿名データ統計」には、「いいえ」を選択します。 '。
そして、MatrixSynapseのインストールが完了しました。
次に、「matrix-synapse」サービスを開始し、システムブートに追加します。
systemctl start matrix-synapse
systemctl enable matrix-synapse
Matrix Synapseが稼働しています。次のコマンドを使用して、確認してください。
systemctl status matrix-synapse
ss -plnt
以下は、得られる結果です。
その結果、MatrixSynapseはUbuntu20.04でデフォルトのTCPポート「8008」で実行されています。
このステップでは、Matrix Synapseの「bind-addresses」を構成し、サーバーでの登録を無効にして、登録共有シークレットを設定します。
先に進む前に、次のコマンドを使用してMatrixSynapse登録シークレットを生成します。
cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1
これで、ランダムキーを取得し、キーをコピーして、メモに保存します。
GH7AP4Zcthz02Cmg58sqUgonm7zlwH0f
次に、「/ etc / matrix-synapse」ディレクトリに移動し、vimエディターを使用して構成「homeserver.yaml」を編集します。
cd /etc/matrix-synapse/
vim homeserver.yaml
「listeners」セクションに移動し、「bind-addresses」の値を以下のようにローカルIPアドレスに変更します。
listeners:
- port: 8008
tls: false
type: http
x_forwarded: true
bind_addresses: ['127.0.0.1']
resources:
- names: [client, federation]
compress: false
ノードを自分だけで実行している場合は、MatrixSynapseを無効にします。
enable_registration: false
'registration_shared_secret'を、上で生成されたランダムパスフレーズに変更します。
registration_shared_secret: "GH7AP4Zcthz02Cmg58sqUgonm7zlwH0f"
保存して閉じます。
次に、Matrix Synapseサービスを再起動して、新しい構成を適用します。
systemctl restart matrix-synapse
次のコマンドを使用してサービスを確認します。
ss -plnt
systemctl status matrix-synapse
以下は、得られる結果です。
その結果、MatrixSynapseサービスは新しい構成で稼働しています。
このステップでは、certbotツールを使用してSSLLetsencryptを生成します。 Matrix Synapseは、Letsencryptが提供するSSL証明書を使用した安全なHTTPS接続で実行されます。
以下のaptコマンドを使用してcertbotツールをインストールします。
sudo apt install certbot -y
その後、以下のcertbotコマンドを使用して新しいSSL証明書を生成し、メールアドレスとドメイン名を自分のものに変更してください。
certbot certonly --rsa-key-size 2048 --standalone --agree-tos --no-eff-email --email [email protected] -d hakase-labs.io
すべてが完了すると、SSL証明書は「/etc/letsencrypt/live/domain.com/」ディレクトリで利用できるようになります。
ls -lah /etc/letsencrypt/live/domain.com/
「fullchain.pem」は公開鍵であり、「privkey.pem」は秘密鍵です。
このチュートリアルでは、Nginxリバースプロキシの下でMatrixSynapseを実行します。このステップでは、Nginxパッケージをインストールし、リバースプロキシとして設定します。
Nginx Webサーバーは、デフォルトのHTTPポート「80」、セキュアなHTTPSポート「443」、およびMatrixSynapseフェデレーションに使用されるTCPポート「8448」の3つのポートで実行されます。
以下のaptコマンドを使用してNginxパッケージをインストールします。
sudo apt install nginx -y
すべてのインストールが完了したら、「/ etc / nginx / sites-available」ディレクトリに移動し、vimエディターを使用して「matrix」という名前の新しい仮想ホスト構成を作成します。
cd /etc/nginx/sites-available/
vim matrix
ドメイン名とSSL証明書のパスを独自に変更し、構成を貼り付けます。
server {の場合
listen 80;
server_name hakase-labs.io;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name hakase-labs.io;
ssl_certificate /etc/letsencrypt/live/hakase-labs.io/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/hakase-labs.io/privkey.pem;
location /_matrix {
proxy_pass http://localhost:8008;
proxy_set_header X-Forwarded-For $remote_addr;
# Nginx by default only allows file uploads up to 1M in size
# Increase client_max_body_size to match max_upload_size defined in homeserver.yaml
client_max_body_size 10M;
}
}
# This is used for Matrix Federation
# which is using default TCP port '8448'
server {
listen 8448 ssl;
server_name hakase-labs.io;
ssl_certificate /etc/letsencrypt/live/hakase-labs.io/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/hakase-labs.io/privkey.pem;
location / {
proxy_pass http://localhost:8008;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
保存して閉じます。
次に、「マトリックス」仮想ホストをアクティブにして、Nginx構成をテストします。また、エラーがないことを確認してください。
ln -s /etc/nginx/sites-available/matrix /etc/nginx/sites-enabled/
nginx -t
次に、Nginxサービスを再起動し、システムブートに追加します。
systemctl restart nginx
systemctl enable nginx
その後、以下のコマンドを使用してNginxサービスを確認します。
ss -plnt
systemctl status nginx
以下は、得られる結果です。
その結果、NginxサービスはUbuntu 20.04で稼働し、3つの異なるポートがあります。デフォルトのHTTPポート80は安全なHTTPSポートに自動的にリダイレクトされ、ポート「8448」はMatrixSynapseFederationに使用されます。
このチュートリアルでは、UFWファイアウォールを有効にしてUbuntu20.04でMatrixSynapseを実行します。
以下のコマンドを使用して、ssh、http、https、およびTCPポート「8448」をUFWファイアウォールに追加します。
for svc in ssh http https 8448
do
ufw allow $svc
done
その後、UFWファイアウォールを実行して有効にします。
ufw enable
' yと入力します '確認してUFWファイアウォールが稼働していることを確認するには、以下のコマンドを使用してUFWファイアウォールで使用可能なすべてのルールを確認します。
ufw status numbered
以下は、得られる結果です。
その結果、UFWファイアウォールの構成が完了しました。
この段階で、マトリックスシナプスホームサーバーのインストールと構成が完了します。このステップでは、コマンドラインサーバーから新しいマトリックスユーザーを追加する方法を示します。
新しいマトリックスユーザーを作成するには、以下のコマンドを実行します。
sudo register_new_matrix_user -c /etc/matrix-synapse/homeserver.yaml http://localhost:8008
次に、ユーザーのユーザー名とパスワードを入力し、ユーザーを管理者にするには、「yes」と入力します。
New user localpart [root]: changbin
Password:
Confirm password:
Make admin [no]:
Sending registration request...
Success!
その結果、新しいMatrixユーザーが作成されました。
このステップでは、MatrixSynapseサーバーのインストールをテストします。
-MatrixSynapseFederationのテスト
以下のMatrixSynapseFederationTesterURLにアクセスしてください。
https://federationtester.matrix.org/
次に、Matrix Synapseドメイン名を入力し、[移動]をクリックします。 'ボタンをクリックすると、以下のように成功した結果が得られます。
ご覧のとおり、MatrixSynapseFederationはポート「8448」を介して動作しています。
-ユーザーとパスワードを使用したマトリックスログインのテスト
以下のURLとして「riot.im」というWebベースのMatrixクライアントにアクセスします。
https://riot.im/app/
[ログイン]をクリックします 'ボタンをクリックすると、カスタムMatrixSynapseサーバーを使用できます。
ドメイン名を入力し、[次へ]をクリックします '。
次に、ユーザー名とパスワードを入力し、[サインイン]をクリックします。 'ボタン。
追加のセキュリティの質問が表示されます。
ログインすると、次のページが表示されます。
その結果、Ubuntu20.04でNginxリバースプロキシとフェデレーションが有効になっているMatrixSynapseのインストールが正常に完了しました。