Własny serwer SimpleX na VPS: konfiguracja krok po kroku
Instrukcja uruchomienia przekaźnika SMP i serwera XFTP na VPS. Konfiguracja uprawnień, portów, certyfikatów TLS oraz zarządzanie kopiami zapasowymi w środowisku produkcyjnym.
Funkcja własnego serwera czatu SimpleX
W celu uruchomienia własnego serwera czatu SimpleX na VPS należy uruchomić jeden demon: smp-server, czyli przekaźnik dla SMP (simplex messaging protocol). Przechowuje on kolejki wiadomości, do których zapisują i z których odczytują dane kontakty. Drugi, opcjonalny demon o nazwie xftp-server, obsługuje przesyłanie plików. Oba pochodzą z tego samego projektu, simplexmq, a każdy z nich składa się z pojedynczego pliku binarnego, pliku konfiguracyjnego oraz dziennika typu append-only.
Niniejszy tekst jest przeznaczony dla administratora, a nie użytkownika końcowego aplikacji. Przekaźnik nie przechowuje kont, list kontaktów ani historii czatów. Przechowuje kolejki, pewną ilość niedostarczonych zaszyfrowanych danych oraz certyfikat identyfikujący serwer. Administrator odpowiada za czas dostępności (uptime), niewielką ilość miejsca na dysku oraz metadane przepływające przez serwer.
Każde polecenie, ścieżka, port i flaga poniżej pochodzą z dokumentacji projektu: strony hostingu serwera SMP, strony serwera XFTP oraz dokumentu dotyczącego bezpieczeństwa protokołu. W miejscach, gdzie wartość liczbowa ma znaczenie, obok podano źródło, z którego pochodzi.
Dlaczego sieć bez identyfikatorów użytkowników nadal wymaga przekaźników
SimpleX nie używa nazw użytkowników, numerów telefonów ani identyfikatorów kont. Kontakt jest jednokierunkową kolejką: adresem na przekaźniku, do którego jedna strona zapisuje dane, a druga je odczytuje. Dwa kontakty użytkownika nie współdzielą żadnego identyfikatora, który serwer mógłby powiązać.
Te kolejki muszą jednak gdzieś istnieć z prostego powodu. Dwa telefony rzadko są online w tym samym momencie. Coś musi przyjąć wiadomość teraz i przechować ją do czasu, aż drugie urządzenie o nią zapyta. To całe zadanie przekaźnika SMP. Oznacza to również, że dwa urządzenia nigdy nie łączą się ze sobą bezpośrednio, więc żadne z nich nie poznaje adresu IP (internet protocol) drugiego. Przekaźnik przejmuje na siebie to ryzyko ujawnienia danych.
Nazwa hosta przekaźnika jest częścią adresu kolejki, więc znajduje się w każdym linku zaproszenia udostępnianym z jego poziomu. Należy o tym pamiętać podczas analizy modelu zagrożeń pod koniec dokumentacji.
Co przekaźnik może, a czego nie może zobaczyć
Projekt definiuje to jako model zagrożeń w protocol/security.md i warto się z nim zapoznać przed instalacją, ponieważ po zakończeniu tego przewodnika przekaźnik będzie należał do użytkownika. Przekaźnik, nawet w pełni kontrolowany przez atakującego, nie może poznać zawartości ani typu wiadomości, nie może w sposób niewykrywalny dodawać, duplikować ani uszkadzać poszczególnych wiadomości, a także nie może złamać szyfrowania end-to-end za pomocą aktywnego ataku.
Ta sama strona wymienia, co przekaźnik może zrobić. Może dowiedzieć się, kiedy odbiorca kolejki jest online. Może zliczyć, ile wiadomości przechodzi przez kolejkę. Może poznać adres IP odbiorcy. Może odrzucić każdą przyszłą wiadomość w kolejce lub skłamać na temat stanu tej kolejki.
Podział jest zatem wyraźny. Poufność jest zadaniem klienta, a self-hosting nie ma na nią wpływu. Metadane i dostępność są zadaniem operatora przekaźnika, a self-hosting przekazuje oba te aspekty w ręce użytkownika.
Wymagania wstępne
- Serwer VPS z systemem Ubuntu 22.04 lub 24.04. Projekt udostępnia pliki binarne wydań zbudowane dokładnie dla tych dwóch wersji, w architekturach x86-64 oraz aarch64.
- Nazwa domeny z rekordem A wskazującym na VPS oraz rekordem AAAA, jeśli dostępna jest obsługa IPv6. W dokumentacji jako przykładu użyto
smp1.example.com. - Dostęp root lub
sudooraz otwarta druga sesja SSH na czas modyfikacji ustawień firewalla. - Zewnętrzna lokalizacja do przechowywania kopii zapasowej, ponieważ katalog konfiguracyjny stanowi tożsamość serwera.
W przypadku instancji ARM należy pobrać zasób aarch64 zamiast x86-64. Żadne inne elementy tego przewodnika nie ulegają zmianie, a wybór między planami VPS ARM i x86 dotyczy wyłącznie ceny oraz wydajności pojedynczego rdzenia, a nie możliwości uruchomienia oprogramowania.
Instalacja przypiętej wersji, a nie "latest"
Projekt udostępnia skrypt instalacyjny, który pobiera bieżące wydanie i rejestruje polecenie simplex-servers-update. Działa to poprawnie. Mimo to należy przypiąć wersję: przekaźnik, którego plik binarny zmienia się w sposób niekontrolowany, jest przekaźnikiem, którego zachowanie jest niemożliwe do przewidzenia w razie awarii.
Na sierpień 2026 bieżące wydanie simplexmq to v6.5.0, opublikowane 29 kwietnia 2026. Należy sprawdzić stronę wydań w celu uzyskania odpowiedniego tagu, a następnie używać go w każdym miejscu poniżej.
sudo useradd -m smp
sudo install -d -o smp -g smp -m 755 /etc/opt/simplex /var/opt/simplexuseradd -m smp nie ustawia hasła, więc nikt nie loguje się bezpośrednio jako smp. Należy samodzielnie utworzyć dwa katalogi przed uruchomieniem czegokolwiek, ponieważ /etc/opt należy do użytkownika root i posiada uprawnienia 755, co uniemożliwia użytkownikowi smp zapisanie własnego katalogu konfiguracyjnego.
VER=v6.5.0
curl -fL "https://github.com/simplex-chat/simplexmq/releases/download/$VER/smp-server-ubuntu-24_04-x86-64" -o /tmp/smp-server
sha256sum /tmp/smp-serverNależy porównać ten skrót z sumami kontrolnymi SHA2-256 opublikowanymi w informacjach o wydaniu dla tego samego tagu. Projekt podpisuje również sumy kontrolne wydań kluczem SimpleX Chat FB44AF81A45BDE327319797C85107E357D4A17FC, udokumentowanym na stronie serwera, dzięki czemu można zweryfikować podpis zamiast polegać wyłącznie na stronie, z której odczytano skrót.
sudo install -m 755 -o root -g root /tmp/smp-server /usr/local/bin/smp-serverInstalację należy przeprowadzić celowo z uprawnieniami właściciela root. Usługa działa jako smp, więc naruszenie bezpieczeństwa usługi nie pozwoli na nadpisanie pliku binarnego, z którego jest ona uruchamiana.
Inicjalizacja serwera i dwóch wyświetlonych sekretów
sudo su smp -c "smp-server init --yes --store-log --daily-stats --no-password --fqdn=smp1.example.com"--store-log(-l) zapisuje log kolejek w trybie append-only do/var/opt/simplex/smp-server-store.log, dzięki czemu przekaźnik przetrwa restart. Bez tego restart usuwa wszystkie kolejki, co oznacza, że każdy kontakt przekierowany przez Twój serwer przestaje działać.--daily-stats(-s) zapisuje liczniki w formacie CSV do/var/opt/simplex/smp-server-stats.daily.log.--fqdnumieszcza Twoją domenę w wygenerowanym certyfikacie. Użyj--ip, jeśli nie posiadasz domeny.--no-passwordpozwala każdemu utworzyć kolejkę na Twoim przekaźniku. Aby zachować prywatność, ustawcreate_passwordw sekcji[AUTH]w pliku/etc/opt/simplex/smp-server.inipo zakończeniu inicjalizacji, zamiast przekazywać--passwordw tym miejscu. Polecenie wpisane w wierszu poleceń jest widoczne w historii powłoki oraz na liście procesów podczas jego wykonywania.
Proces inicjalizacji generuje certyfikat i wyświetla dwie wartości, które należy zachować. Pierwszą jest odcisk (fingerprint), ciąg znaków base64 zapisany również w /etc/opt/simplex/fingerprint. Drugą jest pełny adres serwera, składający się z odcisku oraz nazwy hosta. Skopiuj obie wartości.
Inicjalizacja tworzy również /etc/opt/simplex/ca.key. Dokumentacja zaleca przeniesienie tego pliku do pamięci offline. Powód jest istotny: klienci przypinają (pin) odcisk tego urzędu certyfikacji, więc każdy, kto posiada ca.key, może wystawić nowy certyfikat serwera, który klienci zaakceptują jako Twój. Plik będzie potrzebny ponownie jedynie w celu rotacji certyfikatu serwera za pomocą smp-server cert.
Traktuj inicjalizację jako czynność jednorazową. Odcisk w Twoim adresie pochodzi od wygenerowanego urzędu, więc ponowne wygenerowanie urzędu spowoduje zmianę adresu i unieważnienie tego, który został już udostępniony.
Uruchamianie w systemd jako użytkownik bez uprawnień roota
Należy zapisać /etc/systemd/system/smp-server.service, dokładnie w postaci podanej w dokumentacji:
[Unit]
Description=SMP server systemd service
[Service]
User=smp
Group=smp
Type=simple
ExecStart=/usr/local/bin/smp-server start +RTS -N -RTS
ExecStopPost=/usr/bin/env sh -c '[ -e "/var/opt/simplex/smp-server-store.log" ] && cp "/var/opt/simplex/smp-server-store.log" "/var/opt/simplex/smp-server-store.log.bak"'
LimitNOFILE=65535
KillSignal=SIGINT
TimeoutStopSec=infinity
[Install]
WantedBy=multi-user.targetJednostka upstream zawiera również AmbientCapabilities=CAP_NET_BIND_SERVICE. Linia ta istnieje, ponieważ proces działa jako smp, a porty poniżej 1024 są niedostępne dla procesów niebędących rootem; bez tego wpisu daemon nie może powiązać się z portami 80 lub 443. Należy dodać tę linię, jeśli serwer obsługuje wspomniane porty. LimitNOFILE=65535 jest istotne, ponieważ każdy subskrybowany klient utrzymuje otwarte połączenie TCP, a domyślny limit jest znacznie niższy niż wymagania obciążonego przekaźnika. ExecStopPost kopiuje log magazynu do pliku .bak przy każdym zatrzymaniu, co zapewnia jeden punkt przywracania.
sudo systemctl daemon-reload
sudo systemctl enable --now smp-server
sudo systemctl status smp-server
sudo journalctl -fu smp-serverPoprawny start loguje adres serwera. Następnie należy potwierdzić, czy gniazda są faktycznie otwarte:
sudo ss -tlnp | grep -E ':(443|5223)'Obie linie powinny wskazywać na smp-server. Uruchamianie daemona na dedykowanym koncie bez uprawnień sudo to nawyk opisany w kontach per-usługa na VPS, który zapobiega eskalacji błędu w sieciowym daemonie do poziomu powłoki roota.
Które porty otworzyć, a który pozostawić zamknięty
Dokumentacja wymienia trzy porty: 5223/tcp, 443/tcp oraz 80/tcp. Port 5223 służy do transportu SMP. Dostarczona konfiguracja ustawia port: 5223,443 w sekcji [TRANSPORT], dzięki czemu ten sam protokół odpowiada również na porcie 443. Jest to istotne, ponieważ wiele restrykcyjnych sieci zezwala na ruch wychodzący jedynie na porcie 443. Port 80 jest wymagany wyłącznie dla opcjonalnej strony informacyjnej oraz przekierowania na HTTPS.
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 5223/tcp
sudo ufw enableNie należy otwierać portu 5224. Jest to port kontrolny, a dokumentacja wskazuje na łączenie się z nim z poziomu samego serwera za pomocą nc 127.0.0.1 5224. Wyświetla on stan serwera i usuwa kolejki, dlatego powinien być dostępny wyłącznie przez interfejs loopback, przy hasłach administratora i użytkownika ustawionych w [AUTH]. Osoby początkujące w pracy z tym narzędziem powinny zapoznać się z artykułem podstawy ufw na VPS, który opisuje kolejność reguł oraz sposoby uniknięcia zablokowania dostępu do serwera.
Istnieje jeszcze jeden mechanizm kontroli, który często sprawia problemy. Większość dostawców usług oferuje sieciowy firewall zarządzany z poziomu panelu klienta, niezależny od ufw działającego na serwerze. Port może być otwarty w ufw, a mimo to ruch może zostać odrzucony, zanim dotrze do maszyny.
Adres serwera wymagany przez klientów
smp://<fingerprint>[:<password>]@<public_hostname>[,<onion_hostname>]Ten ciąg znaków stanowi pełną konfigurację po stronie klienta. Należy wkleić go w ustawienia serwera w aplikacji lub pozwolić innej osobie na zeskanowanie kodu QR wyświetlanego przez aplikację. Dokumentacja wskazuje, że kod QR zawiera hasło, więc osoba, która go zeskanuje, może również otrzymywać wiadomości za pośrednictwem Twojego serwera.
Jedno z udokumentowanych zachowań jest dla użytkowników zaskakujące. Dodanie serwera w aplikacji wpływa wyłącznie na kontakty nawiązane od tego momentu. Istniejące kontakty pozostają na przekaźnikach (relays), na których utworzono ich kolejki, i nie podlegają migracji. Jest to również powód, dla którego nie można wyłączyć przekaźnika dzień po jego wymianie.
Dodawanie przekaźnika plików XFTP
XFTP (SimpleX file transfer protocol) stanowi warstwę przesyłu plików w sieci i działa jako osobny demon z własnym adresem. Zgodnie z ogłoszeniem XFTP projektu, przekaźniki nie posiadają żadnych metadanych plików: widzą jedynie pojedyncze fragmenty o rozmiarze 256kb, 1mb lub 4mb, do których dostęp autoryzowany jest anonimowymi poświadczeniami. Nadawca może rozproszyć fragmenty jednego pliku pomiędzy kilka przekaźników, co oznacza, że serwer przechowuje części danych, a nie kompletne pliki.
sudo useradd -m xftp
sudo install -d -o xftp -g xftp -m 755 /etc/opt/simplex-xftp /var/opt/simplex-xftp /srv/xftp
curl -fL "https://github.com/simplex-chat/simplexmq/releases/download/$VER/xftp-server-ubuntu-24_04-x86-64" -o /tmp/xftp-server
sudo install -m 755 -o root -g root /tmp/xftp-server /usr/local/bin/xftp-server
sudo su xftp -c "xftp-server init -l --fqdn=xftp1.example.com -q '20gb' -p /srv/xftp/"Konfiguracja znajduje się w /etc/opt/simplex-xftp/, stan w /var/opt/simplex-xftp/, a fragmenty plików w lokalizacji wskazanej przez -p. Jednostka systemd ma strukturę analogiczną do User=xftp oraz ExecStart=/usr/local/bin/xftp-server start +RTS -N -RTS. Proces inicjalizacji wyświetla adres xftp:// w formacie identycznym jak w przypadku SMP, wraz z własnym odciskiem palca w /etc/opt/simplex-xftp/fingerprint.
Należy zaplanować rozwiązanie konfliktu portów. Dokumentacja serwera XFTP wskazuje port 443, który jest również wymieniony w konfiguracji SMP. Dwa procesy nie mogą nasłuchiwać na tym samym porcie pod tym samym adresem, dlatego na jednym VPS konieczna jest zmiana. Najprostszym rozwiązaniem jest ustawienie port: 5223 w sekcji [TRANSPORT] SMP i pozostawienie portu 443 dla przekaźnika plików, kosztem utraty mechanizmu fallback 443 dla klientów w sieciach o restrykcyjnych regułach. Alternatywą jest przypisanie drugiego adresu IP do tego samego VPS lub użycie drugiego VPS.
Należy rzetelnie określić limit przydziału. Parametr -q '20gb' stanowi deklarację dostępnej przestrzeni dyskowej. Przekaźnik plików jest komponentem zużywającym zasoby dyskowe i pasmo. Przekaźnik wiadomości wykorzystuje je w stopniu minimalnym.
Co znajduje się na dysku i co przywraca kopia zapasowa
Istotne są dwa katalogi. /etc/opt/simplex/ to tożsamość: smp-server.ini, certyfikat serwera oraz klucz, ca.key i fingerprint. /var/opt/simplex/ to stan: smp-server-store.log przechowuje kolejki oraz, gdy restore_messages: on, niedostarczone wiadomości, wraz z plikiem codziennych statystyk.
sudo systemctl stop smp-server
sudo tar czf /root/simplex-backup.tgz -C / etc/opt/simplex var/opt/simplex
sudo chmod 600 /root/simplex-backup.tgz
sudo systemctl start smp-serverNależy jasno określić, czym jest to archiwum. Nie jest to archiwum wiadomości: elementy w kolejce to szyfrogramy dla kluczy, których przekaźnik nigdy nie posiadał, a dostarczona konfiguracja [STORE_LOG] i tak usuwa wiadomości po 21 dniach. Jest to kopia tożsamości serwera, w tym ca.key, więc każdy, kto przejmie ten plik, może podszyć się pod Twój przekaźnik w kontaktach z innymi. Należy go zaszyfrować i przechowywać poza serwerem.
Korzyścią jest możliwość przywrócenia. Umieść /etc/opt/simplex na nowym VPS, skieruj na niego tę samą nazwę DNS, a odcisk klucza pozostanie niezmieniony, dzięki czemu każdy adres, który udostępniłeś, nadal działa. Utrata tego katalogu oznacza brak możliwości odzyskania danych: nowa instalacja oznacza nowy odcisk klucza, co oznacza nowy adres, a to z kolei oznacza utratę wszystkich kontaktów kierowanych przez Twój przekaźnik.
TLS: dwa certyfikaty pełniące różne funkcje
Transport SMP nie korzysta z publicznego urzędu certyfikacji. Proces inicjalizacji generuje prywatny urząd oraz certyfikat serwera, a odcisk palca tego urzędu jest przesyłany wewnątrz adresu serwera. Klient weryfikuje to, co przedstawia serwer, w oparciu o przypięty odcisk palca, co w dokumentacji projektu opisano jako ochronę połączenia klient-serwer przed atakami typu machine-in-the-middle. Na tym porcie nie działa żaden klient ACME (automatic certificate management environment), a rotacja jest procesem ręcznym, wykonywanym przez smp-server cert z ustawioną flagą SMP_SERVER_CFG_PATH.
Opcjonalna strona informacyjna korzysta z drugiego certyfikatu. Jej sekcja [WEB] zawiera nazwy static_path, https: 443, cert: /etc/opt/simplex/web.crt oraz key: /etc/opt/simplex/web.key. Przeglądarka nie rozpoznaje prywatnego urzędu certyfikacji, dlatego jest to jedyne miejsce, w którym należy zastosować certyfikat zaufany publicznie. Szybki start z użyciem Docker w dokumentacji umieszcza Caddy przed serwerem właśnie w tym celu, co pozwala na automatyczne wystawienie certyfikatu.
Dostęp do przekaźnika przez sieć Tor
Dokumentacja zawiera sekcję dotyczącą sieci Tor, która opisuje instalację oprogramowania z repozytorium Tor Project oraz dodanie usługi ukrytej w /etc/tor/torrc:
SOCKSPort 0
HiddenServiceNonAnonymousMode 1
HiddenServiceSingleHopMode 1
HiddenServiceDir /var/lib/tor/simplex-smp/
HiddenServicePort 5223 localhost:5223
HiddenServicePort 443 localhost:443Należy uważnie przeczytać dwie linie trybu. Tryby single hop oraz non-anonymous oznaczają, że lokalizacja przekaźnika nie jest ukryta. Adres onion zapewnia szybkie połączenie i umożliwia klientom dostęp bez ujawniania ich adresu IP, jednak sam serwer pozostaje wykrywalny pod swoim publicznym adresem IP. Nazwę hosta onion z /var/lib/tor/simplex-smp/hostname należy umieścić na końcu adresu serwera po przecinku. Jeśli celem jest również ukrycie lokalizacji serwera, wymagana jest inna konfiguracja, a kwestię tę opisuje uruchamianie pełnej usługi onion na VPS. Różnice w zakresie ochrony prywatności zapewnianej przez poszczególne narzędzia są tematem porównania sieci Tor z VPN, co ma bezpośrednie zastosowanie w tym przypadku.
Model zagrożeń: co zmienia self-hosting
Co zyskujesz. Metadane (informacje o tym, jakie kolejki istnieją, kiedy są odczytywane, które adresy nawiązują połączenie) znajdują się na maszynie, którą kontrolujesz, a Ty decydujesz, jak długo są przechowywane. Nie jesteś również częścią dużej grupy użytkowników, której dane mogą zostać pobrane w ramach jednego żądania.
Czego nie zyskujesz, mówiąc wprost:
- Szyfrowanie pozostaje bez zmian. Wiadomości były szyfrowane end-to-end przed wdrożeniem tego rozwiązania i pozostają tak szyfrowane po jego wdrożeniu. Self-hosting to decyzja dotycząca metadanych, a nie kryptografii.
- Dostawca VPS widzi ruch kierowany na Twój adres IP i posiada Twoje dane rozliczeniowe. Przeniosłeś zaufanie z operatora komunikatora na operatora hostingu. Nie wyeliminowałeś go.
- Twój przekaźnik (relay) to niewielka grupa. Jeśli obsługuje jedno gospodarstwo domowe, połączenie z nim identyfikuje to gospodarstwo, a jego nazwa hosta znajduje się w każdym linku z zaproszeniem, który z niego wysyłasz. Obciążony publiczny przekaźnik zapewnia w tym jednym aspekcie lepszą anonimowość i to jest rzeczywisty kompromis.
- Dostępność zależy teraz od Ciebie. Pełny dysk lub awaria serwera oznaczają wstrzymanie dostarczania wiadomości, a Twoje kontakty nie mają możliwości obejścia tego problemu.
To samo rozumowanie dotyczy każdej prywatnej usługi uruchomionej na własnym serwerze, niezależnie od tego, czy jest to ten przekaźnik, czy WireGuard VPN na własnym VPS. Wybierasz stronę, która widzi metadane. Nie sprawiasz, że one znikają.
Gdy rozwiązanie nie działa
Usługa uruchamia się i natychmiast zatrzymuje. Przeczytaj sudo journalctl -u smp-server -n 50. Błąd powiązania (bind failure) wskazuje port, którego nie udało się zająć. Następnie uruchom sudo ss -tlnp | grep :443, aby sprawdzić, który proces już go używa; na świeżym systemie jest to zazwyczaj nginx, Caddy lub serwer XFTP zainstalowany przed chwilą.
Init nie może zapisać konfiguracji. Uruchomienie smp-server init jako użytkownik smp przed utworzeniem /etc/opt/simplex powoduje błąd uprawnień, ponieważ /etc/opt jest własnością root. Najpierw utwórz katalog z odpowiednim właścicielem, a następnie ponownie uruchom init.
Klienci nie mogą połączyć się z przekaźnikiem. Sprawdź za pomocą dig +short smp1.example.com, czy nazwa rozwiązuje się do poprawnego adresu. Następnie przetestuj port ze swojego laptopa, a nie z serwera: nc -vz smp1.example.com 5223. Jeśli połączenie z zewnątrz nie udaje się, podczas gdy ss pokazuje otwarte gniazdo na serwerze, oznacza to blokadę przez firewall sieciowy dostawcy, który jest niezależny od ufw.
Kontakt nie może połączyć się przez Twój przekaźnik. Odcisk palca (fingerprint) w udostępnionym adresie musi być zgodny z aktualną zawartością /etc/opt/simplex/fingerprint. Jeśli ustawiono create_password w sekcji [AUTH], adres musi również zawierać to hasło, w przeciwnym razie klient nie będzie mógł utworzyć kolejki.
Po dodaniu serwera w aplikacji nic się nie zmieniło. Jest to zachowanie zamierzone. Tylko nowe kontakty korzystają z nowo dodanego przekaźnika. Istniejące kontakty zachowują kolejki, które już posiadają.
FAQ
Czy samodzielne hostowanie serwera SimpleX zwiększa bezpieczeństwo wiadomości?
Nie, i jest to zamierzone działanie. SimpleX szyfruje wiadomości metodą end-to-end między urządzeniami, więc przekaźnik (relay) nigdy nie posiada kluczy, niezależnie od tego, kto go obsługuje. Samodzielne hostowanie zmienia jedynie podmiot, który obserwuje metadane powiązane z tymi wiadomościami: które kolejki istnieją, kiedy są odczytywane oraz jakie adresy IP nawiązują połączenie. Jest to decyzja dotycząca metadanych. Jeśli powodem samodzielnego hostowania jest chęć uzyskania silniejszego szyfrowania, to szyfrowanie to było obecne od samego początku.
Co faktycznie widzi operator przekaźnika SimpleX?
Dokumentacja protocol/security.md wyjaśnia tę kwestię. Przekaźnik nie może odczytać treści ani typów wiadomości, nie może w niewykrywalny sposób modyfikować pojedynczych wiadomości ani złamać szyfrowania end-to-end za pomocą aktywnego ataku. Może natomiast sprawdzić, kiedy odbiorca kolejki jest online, zliczyć wiadomości przechodzące przez kolejkę, poznać adres IP odbiorcy, odrzucać przyszłe wiadomości w kolejce lub podawać fałszywe informacje o stanie tej kolejki. Są to uprawnienia, które zyskujesz, gdy przekaźnik należy do Ciebie.
Czy potrzebuję nazwy domeny i certyfikatu TLS?
Do poprawnej konfiguracji potrzebna jest domena, jednak smp-server init akceptuje --ip, jeśli faktycznie jej nie posiadasz. Nie potrzebujesz certyfikatu od publicznego urzędu certyfikacji dla portu przesyłania wiadomości: proces init generuje własny urząd, a klient przypina (pinning) odcisk palca (fingerprint), który pojawia się w Twoim adresie smp://. Publicznie zaufany certyfikat jest wymagany jedynie dla opcjonalnej strony informacyjnej WWW, konfigurowanej jako cert oraz key w sekcji [WEB] pliku smp-server.ini.
Co się stanie, jeśli utracę /etc/opt/simplex?
Wszystkie adresy, które udostępniłeś, przestaną działać. Ten katalog przechowuje urząd certyfikacji, którego odcisk palca jest osadzony w adresie Twojego serwera, więc ponowna budowa wygeneruje inny odcisk, a tym samym inny serwer. Kontaktów, których kolejki znajdują się na tym przekaźniku, nie można naprawić z poziomu klienta. Wykonaj zaszyfrowaną kopię zapasową katalogu poza serwerem i przechowuj ca.key w trybie offline zgodnie z instrukcją, ponieważ każdy, kto wejdzie w jego posiadanie, może podszyć się pod Twój przekaźnik.
Czy mogę uruchomić przekaźnik SMP i przekaźnik plików XFTP na tym samym VPS?
Tak, przy rozwiązaniu jednego konfliktu. Dokumentacja serwera XFTP wskazuje port 443, a domyślna konfiguracja SMP wymienia port: 5223,443, więc oba komponenty żądają tego samego gniazda. Przypisz port 443 do jednego z nich: ustaw port: 5223 dla serwera SMP lub przenieś przekaźnik plików na drugi adres IP albo drugi serwer VPS. Dostosuj również limit przechowywania danych do faktycznie dostępnej przestrzeni dyskowej, ponieważ to przekaźnik plików jest komponentem, który zużywa dysk i pasmo sieciowe.