Cách cài đặt Matrix Synapse Chat trên Ubuntu 20.04 LTS

theanh

Administrator
Nhân viên
Matrix là một hệ sinh thái mới cho giao tiếp phi tập trung theo thời gian thực cho các dịch vụ nhắn tin tức thời liên bang mở và VoIP. Nó cung cấp API RESTful HTTP JSON để xây dựng các máy chủ trò chuyện phân tán và liên bang mà không có điểm kiểm soát và lỗi duy nhất và cung cấp tất cả các tham chiếu cho các API.

Synapse là một triển khai của máy chủ trang chủ Matrix được tạo bởi một nhóm Matrix và được viết bằng Python/Twisted. Với phần mềm này, chúng ta có thể triển khai theo cách Matrix cho giao tiếp phi tập trung, chúng ta có thể tạo máy chủ trang chủ của mình và lưu trữ tất cả thông tin cá nhân của người dùng, lịch sử trò chuyện, tạo phòng để sử dụng riêng, v.v.

Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt và cấu hình Matrix Synapse trên Ubuntu 20.04. Chúng tôi sẽ thiết lập Matrix Synapse với Nginx làm proxy ngược và bảo mật cài đặt bằng SSL do Letsencrypt cung cấp.

Điều kiện tiên quyết

Đối với hướng dẫn này, chúng tôi sẽ cài đặt Matrix Synapse trên Ubuntu 20.04 mới nhất với 1Gb RAM, 25GB dung lượng đĩa trống và 2CPU. Ngoài ra, bạn phải có quyền truy cập vào máy chủ của mình với quyền root.

Chúng ta sẽ làm gì?
  • Cài đặt Matrix Synapse
  • Cấu hình Matrix Synapse
  • Tạo SSL Letsencrypt
  • Thiết lập Nginx làm Proxy ngược
  • Thiết lập Tường lửa UFW
  • Đăng ký Người dùng Mới
  • Kiểm tra

Bước 1 - Cài đặt Matrix Synapse​

Đầu tiên, chúng ta sẽ cài đặt Matrix Synapse vào Ubuntu mới nhất 20.04 Server. Để thực hiện điều đó, chúng ta cần thêm khóa GPG và kho lưu trữ chính thức của Matrix Synapse.

Trước khi thực hiện thêm, hãy cài đặt một số gói phụ thuộc bằng lệnh apt bên dưới.
Mã:
sudo apt install -y lsb-release wget apt-transport-https
Sau đó, thêm khóa GPG và kho lưu trữ của Matrix Synapse cho hệ thống dựa trên Debian/Ubuntu.
Mã:
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


Bây giờ hãy cập nhật danh sách kho lưu trữ tất cả các gói và cài đặt các gói Matrix Synapse.
Mã:
sudo apt update
sudo apt install matrix-synapse-py3
Bây giờ bạn sẽ được yêu cầu cấu hình tên miền.



Nhập tên miền của bạn để cài đặt Matrix Synapse và chọn 'OK' để tiếp tục.

Đối với 'Thống kê dữ liệu ẩn danh', hãy chọn 'Không'.



Và quá trình cài đặt Matrix Synapse đã hoàn tất.

Tiếp theo, hãy khởi động dịch vụ 'matrix-synapse' và thêm dịch vụ này vào hệ thống khởi động.
Mã:
systemctl start matrix-synapse
systemctl enable matrix-synapse
Matrix Synapse đã hoạt động, hãy kiểm tra sử dụng lệnh sau.
Mã:
systemctl status matrix-synapse
ss -plnt
Dưới đây là kết quả bạn sẽ nhận được.



Kết quả là, Matrix Synapse đang chạy với cổng TCP mặc định '8008' trên Ubuntu 20.04.

Bước 2 - Cấu hình Matrix Synapse​

Trong bước này, chúng ta sẽ cấu hình 'bind-addresses' cho Matrix synapse, vô hiệu hóa đăng ký trên máy chủ của chúng ta và thiết lập bí mật chia sẻ đăng ký.

Trước khi tiến hành thêm, hãy tạo bí mật đăng ký Matrix Synapse bằng lệnh sau.
Mã:
cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1
Bây giờ bạn sẽ nhận được khóa ngẫu nhiên, hãy sao chép khóa và lưu vào ghi chú của bạn.
Mã:
GH7AP4Zcthz02Cmg58sqUgonm7zlwH0f
Tiếp theo, hãy đến thư mục '/etc/matrix-synapse' và chỉnh sửa cấu hình 'homeserver.yaml' bằng trình soạn thảo vim.
Mã:
cd /etc/matrix-synapse/
vim homeserver.yaml
Di chuyển đến phần 'listeners' và thay đổi giá trị 'bind-addresses' bằng địa chỉ IP cục bộ như bên dưới.
Mã:
listeners:

 - cổng: 8008
 tls: false
 loại: http
 x_forwarded: true
 bind_addresses: ['127.0.0.1']

 resources:
 - names: [client, federation]
 compress: false
Bây giờ hãy tắt Matrix Synapse nếu bạn chỉ chạy nút cho riêng bạn.
Mã:
enable_registration: false
Thay đổi 'registration_shared_secret' bằng cụm mật khẩu ngẫu nhiên được tạo ở trên cùng.
Mã:
registration_shared_secret: "GH7AP4Zcthz02Cmg58sqUgonm7zlwH0f"
Lưu và đóng.

Tiếp theo, khởi động lại dịch vụ Matrix Synapse để áp dụng cấu hình mới.
Mã:
systemctl restart matrix-synapse
Kiểm tra dịch vụ bằng lệnh sau.
Mã:
ss -plnt
systemctl status matrix-synapse
Dưới đây là kết quả bạn sẽ nhận được.



Kết quả là dịch vụ Matrix Synapse đã hoạt động với cấu hình mới.

Bước 3 - Tạo SSL Letsencrypt​

Trong bước này, chúng ta sẽ tạo SSL Letsencrypt bằng công cụ certbot. Matrix Synapse sẽ chạy dưới kết nối HTTPS an toàn bằng chứng chỉ SSL do Letsencrypt cung cấp.

Cài đặt công cụ certbot bằng lệnh apt bên dưới.
Mã:
sudo apt install certbot -y
Sau đó, tạo chứng chỉ SSL mới bằng lệnh certbot bên dưới và đảm bảo thay đổi địa chỉ email và tên miền bằng tên của riêng bạn.
Mã:
certbot certonly --rsa-key-size 2048 --standalone --agree-tos --no-eff-email --email [emailprotected] -d hakase-labs.io


Sau khi hoàn tất, chứng chỉ SSL của bạn sẽ có tại thư mục '/etc/letsencrypt/live/domain.com/'.
Mã:
ls -lah /etc/letsencrypt/live/domain.com/
'fullchain.pem' là khóa công khai và 'privkey.pem' là khóa riêng tư.

Bước 4 - Thiết lập Nginx làm Proxy ngược​

Đối với hướng dẫn này, chúng ta sẽ chạy Matrix Synapse dưới proxy ngược Nginx. Và đối với bước này, chúng ta sẽ cài đặt các gói Nginx và thiết lập nó như một Proxy ngược.

Máy chủ web Nginx sẽ chạy trên 3 cổng, cổng HTTP mặc định '80', cổng HTTPS an toàn '443' và cổng TCP '8448' sẽ được sử dụng cho liên kết Matrix Synapse.

Cài đặt các gói Nginx bằng lệnh apt bên dưới.
Mã:
sudo apt install nginx -y
Sau khi hoàn tất quá trình cài đặt, hãy vào thư mục '/etc/nginx/sites-available' và tạo cấu hình máy chủ ảo mới có tên là 'matrix' bằng trình soạn thảo vim.
Mã:
cd /etc/nginx/sites-available/
vim matrix
Thay đổi tên miền và đường dẫn của chứng chỉ SSL bằng tên miền của riêng bạn, sau đó dán cấu hình vào đó.
Mã:
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;
 # Theo mặc định, Nginx chỉ cho phép tải lên tệp có kích thước tối đa 1M
 # Tăng client_max_body_size để phù hợp với max_upload_size được xác định trong homeserver.yaml
 client_max_body_size 10M;
 }
}

# Điều này được sử dụng cho Matrix Federation
# đang sử dụng cổng TCP mặc định '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;
 }
}
Lưu và đóng.

Tiếp theo, kích hoạt virtualhost 'matrix' và kiểm tra cấu hình Nginx. Ngoài ra, hãy đảm bảo không có lỗi nào.
Mã:
ln -s /etc/nginx/sites-available/matrix /etc/nginx/sites-enabled/
nginx -t
Bây giờ hãy khởi động lại dịch vụ Nginx và thêm nó vào hệ thống khởi động.
Mã:
systemctl restart nginx
systemctl enable nginx


Sau đó, hãy kiểm tra dịch vụ Nginx bằng lệnh bên dưới.
Mã:
ss -plnt
systemctl status nginx
Dưới đây là kết quả bạn sẽ nhận được.



Kết quả là, dịch vụ Nginx đã hoạt động trên Ubuntu 20.04 với ba cổng khác nhau, cổng HTTP mặc định 80 sẽ tự động được chuyển hướng đến cổng HTTPS an toàn và cổng '8448' sẽ được sử dụng cho Matrix Synapse Liên bang.

Bước 5 - Tường lửa UFW​

Đối với hướng dẫn này, chúng tôi sẽ chạy Matrix Synapse trên Ubuntu 20.04 với tường lửa UFW được bật.

Thêm ssh, http, https và cổng TCP '8448' vào tường lửa UFW bằng lệnh bên dưới.
Mã:
for svc in ssh http https 8448
do
ufw allow $svc
done
Sau đó, chạy và bật tường lửa UFW.
Mã:
ufw enable
Gõ 'y' để xác nhận và tường lửa UFW đã hoạt động, hãy kiểm tra tất cả các quy tắc khả dụng trên tường lửa UFW bằng lệnh bên dưới.
Mã:
ufw status numbered
Dưới đây là kết quả bạn sẽ nhận được.



Kết quả là, UFW cấu hình tường lửa đã hoàn tất.

Bước 6 - Đăng ký người dùng​

Ở giai đoạn này, quá trình cài đặt và cấu hình máy chủ Matrix Synapse Home đã hoàn tất. Và trong bước này, chúng tôi sẽ chỉ cho bạn cách thêm người dùng Matrix mới từ máy chủ dòng lệnh.

Để tạo người dùng ma trận mới, hãy chạy lệnh bên dưới.
Mã:
sudo register_new_matrix_user -c /etc/matrix-synapse/homeserver.yaml [URL=http://localhost?utm_source=diendancongnghe.com]http://localhost:8008[/URL]
Bây giờ hãy nhập tên người dùng và mật khẩu cho người dùng của bạn, để biến người dùng thành quản trị viên, hãy nhập 'yes'.
Mã:
Người dùng mới localpart [root]: changbin
Mật khẩu: 
Xác nhận mật khẩu: 
Tạo admin [no]: 
Đang gửi yêu cầu đăng ký...
Thành công!
Kết quả là, người dùng Matrix mới đã được tạo.

Bước 7 - Kiểm tra​

Đối với bước này, chúng tôi sẽ kiểm tra cài đặt máy chủ Matrix Synapse của mình.

- Kiểm tra Matrix Synapse Liên bang​

Truy cập URL Matrix Synapse Federation Tester bên dưới.

https://federationtester.matrix.org/

Bây giờ hãy nhập tên miền Matrix Synapse của bạn và nhấp vào nút 'Go', bạn sẽ nhận được kết quả thành công như bên dưới.



Như có thể thấy, Matrix Synapse Federation đang hoạt động thông qua cổng '8448'.

- Kiểm tra Matrix Login bằng Người dùng và Mật khẩu​

Truy cập vào ứng dụng Matrix client dựa trên web có tên là 'riot.im' theo URL bên dưới.

https://riot.im/app/

Nhấp vào nút 'Sign In' và bạn có thể sử dụng Matrix Synapse tùy chỉnh của mình máy chủ.



Nhập tên miền của bạn và nhấp vào 'Tiếp theo'.



Bây giờ hãy nhập tên người dùng và mật khẩu của bạn, sau đó nhấp vào nút 'Đăng nhập'.



Bạn sẽ được yêu cầu cung cấp thêm các câu hỏi bảo mật.

Sau khi đăng nhập, bạn sẽ nhận được trang sau.



Kết quả là quá trình cài đặt Matrix Synapse với proxy ngược Nginx và Liên kết được bật trên Ubuntu 20.04 đã hoàn tất thành công.
 
Back
Bên trên