Strona korzysta z plików cookies w celu realizacji usług i zgodnie z Polityką Plików Cookies.



29.10.2021

Veritas po raz 16. liderem...

Firma Veritas Technologies, producent uznanych rozwiązań backup klasy enterprise,...
21.10.2021

Zarządzanie IT

We wrześniu BTC Sp. z o.o. zaprezentowała premierową wersję systemu eAuditor V8 AI.
21.10.2021

Konferencja VMworld

Imagine That. Pod takim hasłem w dniach 5–7 października 2021 r. odbyła się jedna z...
21.10.2021

Darmowy deszyfrator

Bitdefender wspólnie z organami ścigania opracował i wydał narzędzie, które pozwala...
21.10.2021

Dell C1422H

Dell Technologies wprowadza do oferty przenośny monitor do zwiększenia wydajności pracy w...
21.10.2021

Dysk dla cyfrowych twórców

Western Digital zaprezentowało nowy dysk – WD Blue SN750 NVMe SSD.
21.10.2021

Projektory laserowe

Optoma wprowadza serię projektorów laserowych Ultra Bright ZU1700, ZU1900, ZU2200 z...
21.10.2021

Orzeł wśród routerów

D-Link wprowadza na rynek smart router EAGLE PRO AI AX1500 R15.
21.10.2021

Nowe generacje Ryzen i Epyc

AMD 3D V-Cache. AMD zapowiada procesory Ryzen i Epyc z nowym rozwiązaniem.

Instalacja i konfiguracje Synapse’a

Data publikacji: 23-09-2021 Autor: Maciej Olanicki
Widok pokojów w graficznym...

W trakcie wdrażania systemu komunikacji Matrix administratorzy mają sporą dowolność w zasadzie na każdym etapie. Nie chodzi tylko o wybór klientów czy rozbudowę platformy o wtyczki integrujące z zewnętrznymi usługami, ale także o całkowite podstawy w postaci implementacji standardu. Najpopularniejszą z nich jest Synapse – serwer Matrix, którego proces instalacji i konfiguracji prześledzimy w tej części omówienia.

 

Matrix daje swobodę budowania infrastruktury komunikacyjnej w organizacji od zera. Do tego stopnia, że wiadomościami można wymieniać się poprzez ręczne przesyłanie sobie plików JSON po protokole HTTPS. Na szczęście nie ma potrzeby uciekać się do takich metod, gdyż fundacja rozwijająca Matrix i skupiona wokół niej społeczność wypracowała przez lata wysokiej jakości oprogramowanie, dzięki któremu w relatywnie prosty sposób każdy może uruchomić swój własny homeserver, czyli indywidualną instancję serwera Matrix.

Historia najpopularniejszej implementacji Matriksa, Synapse’a, jest oczywiście ściśle związana z rozwojem samego systemu, którego wersja 1.0 została zaprezentowana podczas brukselskich targów FOSDEM 2019. Mimo że przedsięwzięcie jest relatywnie młode, to już doczekało się szerokiego uznania i dziesiątek milionów użytkowników, a przez niektórych komentatorów – za sprawą całkowitej decentralizacji – jest nawet określane mianem standardu komunikacji przyszłości.

 

> INSTALACJA SERWERA

Sposobów na wdrożenie Synapse’a jest, a jakże, kilka. Jak już wspomniano, można dokonać samodzielnej kompilacji, użyć kontenerów Dockera, również z użyciem specjalnie przygotowanego w tym celu przez społeczność playbooka Ansible. W większości przypadków lokalnie hostowanego serwera Matrix najszybszym i najwygodniejszym rozwiązaniem będzie instalacja Synapse’a z użyciem już zbudowanych paczek dostępnych w repozytoriach linuksowych dystrybucji czy też ich sklepach, hubach czy PPA. W naszym przykładowym scenariuszu posłużymy się paczkami przygotowanymi dla Ubuntu czy Debiana.

Zanim jednak przejdziemy do właściwej instalacji, musimy upewnić się, że środowisko spełnia wymagania Synapse’a. Poza systemem operacyjnym zgodnym z POSIX konieczna jest także instalacja Pythona w wersji co najmniej 3.5.2. Jeśli zaś chodzi o zasoby sprzętowe, to do instalacji Synapse’a zaleca się przydzielenie 1 GB pamięci operacyjnej. Ponadto, choć serwer w całości napisany jest w Pythonie, to do działania wymaga kilku bibliotek C, których dostępność w środowisku musi poprzedzić instalację samego Synapse’a. Niezbędne biblioteki zainstalujemy poleceniem:

sudo apt install build-essential python3-dev libffi-dev python3-pip python3-setuptools sqlite3 libssl-dev virtualenv libjpeg-dev libxslt1-dev

Teraz możemy już zainstalować Synapse’a, przy czym stosowne pakiety nie są niestety dostępne w oficjalnym repozytorium. Musimy więc wcześnie dodać oficjalne repo Matriksa i dopiero później dokonać instalacji:

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 prerelease” |
sudo tee /etc/apt/sources.list.d/matrix-org.list
sudo apt update
sudo apt install matrix-synapse-py3

Do działania Synapse potrzebuje jeszcze bazy danych oraz certyfikatów. W pierwszym przypadku sytuacja jest o tyle niekomfortowa, że domyślnie oprogramowanie skonfigurowane jest do używania SQLite, co jednak nie jest optymalnym rozwiązaniem, lecz techniczną zaszłością. Obecnie znacznie bardziej wydajnym rozwiązaniem jest integracja Synapse z PostgreSQL w wersji 9.6 lub nowszej – z instrukcjami dotyczącymi portowania można zapoznać się pod adresem bit.ly/3hygWMw. My natomiast zajmijmy się dodaniem certyfikatów TLS, które uzyskać można np. dzięki usłudze Let’s Encrypt. Aby jednak ich wykorzystanie było możliwe, konieczne jest zmodyfikowanie domyślnej konfiguracji Synapse’a, tak aby zamiast portu HTTP 8008 nasłuchiwało ono na szyfrowanym 8448.

Aby tego dokonać, konieczna jest modyfikacja pliku homeserver.yaml, który znajduje się w katalogu głównym serwera. Tam, w sekcji listeners, należy usunąć znak # przy następujących linijkach:

- port: 8448
       type: http
       tls: true
       resources:
         – names: [client, federation]

Natomiast w sekcji TLS odznaczyć należy także:

tls_certificate_path
tls_private_key_path

 

> KONFIGURACJA SYNAPSE’a

Po instalacji serwera, bazy danych i ich uwierzytelnieniu nadszedł czas na wprowadzenie takiej konfiguracji, aby z instancją Synapse’a mogły się łączyć klienty. W tym celu konieczne jest wprowadzenie URI pozwalających między innymi na identyfikację i poprawną obsługę użytkowników przez homeserver. Aby ustanowić URI, konieczna jest modyfikacja pliku JSON dostępnego pod adresem …/.well-known/matrix/client>. Tam, w linijce oznaczającej bazowy URL, należy wprowadzić odpowiedni adres:

{
„m.homeserver”: {
„base_url”: „https://<matrix.przykład.com>”
}
„m.identity_server”: {
„base_url”: „https://<identity.przykład.com>”
}
}

Jak widać, opcjonalnie można także wskazać serwer obsługujący tożsamości użytkowników – będzie to szczególnie przydatne, jeśli na późniejszych etapach, podczas integracji z konkretnymi klientami, będziemy chcieli wykorzystać niestandardowe metody uwierzytelniania użytkowników, co oferuje choćby klient Element.

Drugą istotną kwestią jest zapewnienie dostępności …/.well-known/matrix/client klientom przeglądarkowym. Na samym początku należy upewnić się, że adres jest dostępny.

W rezultacie działania zabezpieczeń przeciwko atakom XSS stosowanych w przeglądarkach musimy tak skonfigurować serwer WWW, na którym stoi Matrix, aby aplikacje przeglądarkowe hostowane na innych serwerwach mogły pobierać dane z naszego pliku JSON. Dla przykładu podajemy konfigurację dla serwera nginx:

location /.well-known/matrix/client {
return 200 ‚{„m.homeserver”: {„base_url”:
„https://<matrix.przykład.com>”}}’;
default_type application/json;
add_header Access-Control-Allow-Origin *;
}

Teraz pozostaje nam tylko rejestracja użytkowników i integracja serwera z usługą poczty. Pierwszej czynności dokonać można już z poziomu klientów Matriksa, ale można tego również dokonać ręcznie, z poziomu wiersza poleceń:

register_new_matrix_user -c homeserver.yaml http://localhost:8008

Zostaniemy wówczas przeprowadzeni przez krótki kreator, w którym podać należy nazwę użytkownika, jego hasło oraz podjąć decyzję o przyznaniu uprawnień administratorskich. Oczywiście pożądaną funkcją będzie także możliwość samodzielnego zakładania konta przez końcowych użytkowników. Aby to było możliwe, konieczne jest skonfigurowanie Synapse’a pod kątem obsługi poczty. W tym celu w konfiguracji musimy wskazać odpowiednie adresy, porty, nazwy czy wartości w polach: email (adres nadawczy), smtp host (adres wychodzącego smtp), smtp port, norif_from (nazwa nadawcy), smtp_user (nazwa użytkownika na serwerze SMTP) smtp_pass (hasło na serwerze SMTP) oraz require_transport_security (wymuszenie TLS). Po wprowadzeniu konfiguracji użytkownicy nie tylko będą już mogli sami rejestrować swoje konta, ale także resetować hasła czy otrzymywać powiadomienia – nie jest konieczna żadna dalsza praca po stronie administratora.

 

[...]

 

Dziennikarz, redaktor, bloger. Entuzjasta i popularyzator wolnego oprogramowania. Redaktor prowadzący „IT Professional”.

Pełna treść artykułu jest dostępna w papierowym wydaniu pisma.

prenumerata Numer niedostępny Spis treści

.

Transmisje online zapewnia: StreamOnline

All rights reserved © 2019 Presscom / Miesięcznik "IT Professional"