Änderungen von Dokument Matrix Messenger Installation

Zuletzt geändert von René Schmidt am 2023/09/20 13:20

Von Version 1.1 >
bearbeitet von René Schmidt
am 2023/09/20 13:17
Auf Version < 2.2
bearbeitet von René Schmidt
am 2023/09/20 13:20
Änderungskommentar: Es gibt keinen Kommentar für diese Version

Zusammenfassung

Details

Seiteneigenschaften
Inhalt
... ... @@ -58,25 +58,39 @@
58 58  
59 59  Gegenwärtig (Juni 2021) in der Freeze-Phase für Bullseye wird die Version in Backports auch nicht mehr aktualisiert, weshalb man Fasttrack einsetzen muss:
60 60  
61 +(% class="box" %)
62 +(((
61 61  % echo 'deb http:~/~/ftp.de.debian.org/debian/ buster-backports main' |sudo tee -a /etc/apt/sources.list
62 62  % sudo apt update
63 63  % sudo apt install -t buster-backports fasttrack-archive-keyring
66 +)))
64 64  
68 +(% class="box" %)
69 +(((
65 65  % echo 'deb http:~/~/fasttrack.debian.net/debian/ buster-fasttrack main' |sudo tee -a /etc/apt/sources.list
66 66  % sudo apt update
67 67  % sudo apt install -t buster-backports matrix-synapse/buster-fasttrack
73 +)))
68 68  
69 69  Für ältere Versionen bietet das Matrix-Projekt ein Repository an. Damit ist die Installation und die Aktualisierung gewohnt einfach.
70 70  
77 +(% class="box" %)
78 +(((
71 71  % curl https:~/~/packages.matrix.org/debian/matrix-org-archive-keyring.gpg |sudo dd of=/etc/apt/trusted.gpg.d/matrix-org.gpg
72 72  % echo "deb https:~/~/packages.matrix.org/debian/ stretch main" |sudo tee -a /etc/apt/sources.list
73 73  % sudo apt update && sudo apt install matrix-synapse-py3
82 +)))
74 74  
75 75  Die Einstellungen für Synapse sind in der Datei /etc/matrix-synapse/homeserver.yaml. Hier sind nur die relevanten Anpassungen gezeigt, aber besser ist es, sich die vollständige Datei anzusehen.
76 76  
86 +(% class="box" %)
87 +(((
77 77  public_baseurl: https:~/~/alea.gnuu.de/
78 78  admin_contact: 'mailto~:admin@example.org'
90 +)))
79 79  
92 +(% class="box" %)
93 +(((
80 80  database:
81 81   name: psycopg2
82 82   args:
... ... @@ -84,7 +84,10 @@
84 84   user: matrix-synapse
85 85   host: /run/postgresql
86 86   application_name: synapse
101 +)))
87 87  
103 +(% class="box" %)
104 +(((
88 88  url_preview_enabled: true
89 89  url_preview_ip_range_blacklist:
90 90   - '127.0.0.0/8'
... ... @@ -92,10 +92,14 @@
92 92   - '172.16.0.0/12'
93 93   - '192.168.0.0/16'
94 94   - 'fe80::/10'
112 +)))
95 95  
114 +(% class="box" %)
115 +(((
96 96  enable_metrics: false
97 97  macaroon_secret_key: "Geheimen Schlüssel mit `pwgen -s 64 1` erzeugen"
98 98  expire_access_token: true
119 +)))
99 99  
100 100  Bei Matrix geschieht der Abruf der URL-Vorschau vom Server, was gegenüber Whatsapp den Vorteil hat, dass die Adresse des Nutzers nicht durch Versenden von Links erspäht werden kann – die Serveradresse ist durch die Federation eh bekannt. Allerdings sollten lokale Adresse vom Abruf ausgeschlossen werden, damit interne Webseiten nicht unberechtigt ausgespäht werden können.
101 101  
... ... @@ -103,14 +103,20 @@
103 103  
104 104  Als Datenbanksystem kann man zwar sqlite nutzen, aber wenn nichts gegen den Einsatz von Postgres spricht, sollte man von Beginn an dieses verwenden. Damit hierbei die passwortlose Anmeldung funktioniert, muss der Datenbanknutzer genauso wie der Systembenutzer des Synapse-Prozesses (systemctl show -pUser matrix-synapse.service) heißen. Die Datenbank und der Benutzer müssen vor dem ersten Start mit folgendem Befehl erstellt werden:
105 105  
127 +(% class="box" %)
128 +(((
106 106  % sudo -u postgres sh -c 'createuser matrix-synapse
107 107   && createdb -O matrix-synapse -l C -E UTF-8 -T template0 matrix'
131 +)))
108 108  
109 109  Bei der Dienstverwaltung muss noch eingestellt werden, dass der Start von Synapse erst nach Postgres erfolgt:
110 110  
135 +(% class="box" %)
136 +(((
111 111  % sudo systemctl edit matrix-synapse.service
112 112  [Unit]
113 113  After=network-online.target postgresql.service
140 +)))
114 114  
115 115  Neben den Parametern für connect können in der homeserver.yaml für database noch Parameter für das Connection-Pooling angegeben werden.
116 116  
... ... @@ -121,9 +121,12 @@
121 121  
122 122  Da Synapse sehr zum Speichergebrauch neigt, ist es ratsam diesem durch den Kernel eine Grenze zu setzen, damit das Gesamtsystem nicht beeinträchtigt wird. Eine Anpassung des Wertes SYNAPSE_CACHE_FACTOR hat bei mir langfristig keine Wirkung gezeigt, da dieser Wert nur bei der Initialisierung der Caches genutzt wird und keine Begrenzung darstellt. Ebenso konnte man langfristig mit jemalloc keine spürbare Verbesserung erreichen.
123 123  
151 +(% class="box" %)
152 +(((
124 124  % sudo systemctl edit matrix-synapse.service
125 125  [Service]
126 126  MemoryMax=80%
156 +)))
127 127  
128 128  
129 129  == Sicherheitsbeschränkung mit AppArmor ==
... ... @@ -130,13 +130,19 @@
130 130  
131 131  Da keine Software fehlerfrei ist, bietet der Linux-Kernel die Möglichkeit, mit AppArmor die Zugriffsreche von Prozessen stärker einzugrenzen. Mithilfe eines Profils legt man fest, welche Zugriffe gestattet sind, und alles was darüber hinaus geht, wird unterbunden. Dieses Profil speichert man unter /etc/apparmor.d/matrix-synapse ab und aktiviert es mit apparmor_parser -r /etc/apparmor.d/matrix-synapse. Damit das Profil für den Prozess verwendet wird, muss die Information in der Systemd-Unit angegeben werden:
132 132  
163 +(% class="box" %)
164 +(((
133 133  % sudo systemctl edit matrix-synapse.service
134 134  [Service]
135 135  AppArmorProfile=matrix-synapse
168 +)))
136 136  
137 137  Im Journal sieht man gegebenenfalls Verstöße gegen die Regeln: journalctl -t audit. Sollte es zu Problemen kommen, kann man das Profil auch in den Testmodus schalten, womit die Verstöße protokolliert, aber nicht unterbunden werden. Hierfür ändert man in der Profildatei die Definition wie folgt ab und lädt das Profil mit dem obigen Befehl neu (ein Neustart von Synapse ist nicht erforderlich):
138 138  
172 +(% class="box" %)
173 +(((
139 139  profile matrix-synapse flags=(complain) {
175 +)))
140 140  
141 141  
142 142  == Protokollierung mit Journal einrichten ==
... ... @@ -143,11 +143,16 @@
143 143  
144 144  In der Konfiguration des Dienstes kann man auch noch den Namen angeben, der von journal verwendet werden soll, damit journalctl -t synapse (statt python) funktioniert:
145 145  
182 +(% class="box" %)
183 +(((
146 146  [Service]
147 147  SyslogIdentifier=synapse
186 +)))
148 148  
149 149  In Synapse selbst kann man auch noch die Protokollierung an journal anpassen, indem man das Paket python3-systemd installiert und in /etc/matrix-synapse/log.yaml folgende Anpassungen vornimmt:
150 150  
190 +(% class="box" %)
191 +(((
151 151  @@ -4,6 +4,8 @@
152 152   formatters:
153 153   precise:
... ... @@ -154,9 +154,12 @@
154 154   format: '%(asctime)s - %(name)s - %(lineno)d - %(levelname)s - %(request)s- %(message)s'
155 155  +  journal_fmt:
156 156  +   format: '%(name)s: [%(request)s] %(message)s'
198 +)))
157 157  
158 158  (% class="box" %)
159 159  (((
202 +(% class="box" %)
203 +(((
160 160   filters:
161 161   context:
162 162  @@ -16,12 +18,17 @@
... ... @@ -176,15 +176,22 @@
176 176  +    filters: [context]
177 177  +    SYSLOG_IDENTIFIER: synapse
178 178  )))
223 +)))
179 179  
225 +(% class="box" %)
226 +(((
180 180   loggers:
181 181   synapse:
182 182  @@ -32,4 +39,4 @@
230 +)))
183 183  
232 +(% class="box" %)
233 +(((
184 184   root:
185 185   level: INFO
186 186  -    handlers: [file, console]
187 187  +    handlers: [file, journal]
238 +)))
188 188  
189 189  
190 190  = Nginx einrichten =

Anwendungen

Benötigen Sie Hilfe?

Wenn Sie Hilfe mit XWiki benötigen, wenden Sie sich an: