====== Matrix - 2. Testinstallation ====== ==== Basis Server Security ==== * IPv4: 88.99.87.88 * IPv6: 2a01:4f8:c17:b5ca::1 * create admin user, change ssh port, deny root to logon only allow admi * make admin sudo and exec rights: usermod -a -G sudo admin && chsh -s /bin/bash admin * Logon with admin: sudo apt update && sudo apt upgrade -y sudo apt install -y git htop mc vnstat vnstati sudo apt install ufw sudo ufw allow 10022 sudo ufw enable sudo ufw status verbose * [Install nginx and adjust Firewall](https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-debian-10) sudo apt update sudo apt install nginx sudo ufw app list sudo ufw allow 'Nginx HTTP' sudo ufw allow 'Nginx HTTPS' * check Nginx+ firewall sudo ufw status systemctl status nginx ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//' * Test: Logon via Browser to IP ==== Ngnix ==== * Configure Nginx cd /etc/nginx/sites-available sudo nano matrix.sternenlabor.de sudo nano chat.sternenlabor.de cd /etc/nginx/sites-enabled sudo ln -s ../sites-available/matrix.sternenlabor.de matrix.sternenlabor.de sudo ln -s ../sites-available/chat.sternenlabor.de chat.sternenlabor.de service nginx reload ==== Matrix ==== * Install and configure Matrix sudo apt install -y lsb-release wget apt-transport-https sudo wget -O /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 sudo apt update sudo apt install -y matrix-synapse-py3 # Server name matrix.sternenlabor.de sudo apt install -y python3-certbot-nginx sudo certbot --nginx -d matrix.sternenlabor.de -m kontakt@sternenlabor.de cd /etc/matrix-synapse/ sudo nano homeserver.yaml enable_registration: true domain: matrix.sternenlabor.de sudo systemctl restart matrix-synapse ==== Element ==== * Install & Configure Element cd /var/www sudo mkdir chat.sternenlabor.de cd /var/www/chat.sternenlabor.de sudo wget https://github.com/vector-im/element-web/releases/download/v1.7.22/element-v1.7.22.tar.gz sudo tar -zxvf element-v1.7.22.tar.gz sudo ln -s element-v1.7.22 element sudo certbot --nginx -d chat.sternenlabor.de -m kontakt@sternenlabor.de cd /var/www/chat.sternenlabor.de/element sudo cp config.sample.json config.json sudo nano config.json "default_server_config": { "m.homeserver": { "base_url": "https://matrix.sternenlabor.de", "server_name": "sternenlabor.de" }, service nginx reload ==== Postgres ==== * Postgres installation and configuration sudo apt install -y postgresql libpq5 sudo -u postgres bash # --> **PW: ****** psql CREATE DATABASE synapse ENCODING 'UTF8' LC_COLLATE='C' LC_CTYPE='C' template=template0 OWNER synapse_user; * Test * List databases: `\l` - ok * Connect to database `\c synapse` -ok * List tables `\dt` - ok, no tables yet * find `hba_file.conf` * `sudo -u postgres bash` * `psql -t -P format=unaligned -c 'show hba_file';` * --> `/etc/postgresql/11/main/pg_hba.conf` * `nano /etc/postgresql/11/main/pg_hba.conf` * add: `host synapse synapse_user ::1/128 md5` * sudo nano /etc/matrix-synapse/homeserver.yaml database: name: psycopg2 args: user: synapse_user password: ************ database: synapse host: localhost cp_min: 5 cp_max: 10 * sudo systemctl restart matrix-synapse + sudo ufw allow 8448 + sudo nano /var/www/chat.sternenlabor.de/element/config.json "disable_custom_urls": true, "brand": "Sternenlabor Matrix", "defaultCountryCode": "DE", "roomDirectory": { "servers": [ "matrix.sternenlabor.de", "matrix.eigenbaukombinat.de", "matrix.fablabchemnitz.de", "matrix.org" ] "jitsi": { "preferredDomain": "videochat.sternenlabor.de" + sudo service nginx reload + sudo nano /etc/matrix-synapse/homeserver.yaml enable_group_creation = true + Metrics + configure Synapse + `sudo nano /etc/matrix-synapse/homeserver.yaml` --> add listener and enable metrics enable_metrics: true listeners: - type: metrics port: 9000 bind_addresses: - '0.0.0.0' + `systemctl restart matrix-synapse` + sudo ufw allow 9000 # -> metrics port + Test: http://88.99.87.88:9000/_synapse/metrics + ToDo next: + Metrics Aktivieren + Federation + Branding + Finuetuning Matrix, Element, Postgress + Security: Captcha, Fail2Ban + Prometheus auf dedizierter Server oder später auf CloudServer + Idee für später: LoadBalancer einrichten und DB auf Volume verschieben,