SMP server je relay server používaný k předávání zpráv v síti SimpleX. Aplikace SimpleX Chat mají přednastavené servery (pro mobilní aplikace jsou to smp11, smp12 a smp14.simplex.im), ale konfiguraci aplikace můžete snadno změnit a používat jiné servery.
Klienti SimpleX pouze určují, který server bude použit pro příjem zpráv, a to pro každý kontakt (nebo spojení skupiny s členem skupiny) zvlášť, přičemž tyto servery jsou pouze dočasné, protože adresa pro doručování se může změnit.
_Upozornění_: když změníte servery v konfiguraci aplikace, ovlivní to pouze to, který server bude použit pro nové kontakty, stávající kontakty se na nové servery automaticky nepřesunou, ale můžete je přesunout ručně pomocí tlačítka ["Změnit adresu příjmu"](../../../blog/20221108-simplex-chat-v4.2-security-audit-new-website.md#change-your-delivery-address-beta) na stránkách s informacemi o kontaktech/členech - brzy bude automatizováno.
Chcete-li zjistit, které možnosti jsou k dispozici, spusťte `smp-server` bez příznaků:
```sh
sudo su smp -c smp-server
...
Dostupné příkazy:
init Inicializace serveru - vytvoří /etc/opt/simplex a
/var/opt/simplex adresáře a konfigurační soubory.
start Spustí server (konfigurace:
/etc/opt/simplex/smp-server.ini).
delete Odstranění konfiguračních a protokolových souborů
```
Další nápovědu můžete získat příkazem `sudo su smp -c "smp-server <příkaz> -h"`
Poté musíme nakonfigurovat `smp-server`:
### Interaktivně
Spusťte následující příkaz:
```sh
sudo su smp -c "smp-server init"
```
Je třeba zvážit několik možností:
-`Povolit ukládání protokolu pro obnovení front a zpráv při restartu serveru (Yn):`
Zadáním `y` povolíte ukládání a obnovu spojení a zpráv při restartu serveru.
_Pozor_: je důležité použít SIGINT pro restart serveru, protože jinak nebudou nedoručené zprávy obnoveny. Spojení budou obnovena bez ohledu na to, jakým způsobem je server restartován, protože na rozdíl od zpráv jsou při každé změně přidávána do protokolu pouze pro doplnění.
-`Zapnout protokolování denních statistik (yN):`
Zadáním `y` povolíte protokolování statistik ve formátu CSV, které lze například použít k zobrazení souhrnných grafů využití v `Grafanu`.
Tyto statistiky zahrnují denní počty vytvořených, zajištěných a smazaných front, odeslaných a přijatých zpráv a také denní, týdenní a měsíční počty aktivních front (tj. front, které byly použity pro nějaké zprávy). Domníváme se, že tyto informace neobsahují nic, co by umožňovalo korelovat různé fronty jako patřící stejným uživatelům, ale pokud se domníváte, že to lze nějak zneužít, dejte nám prosím důvěrně vědět.
-`Vyžadovat heslo pro vytvoření nové fronty zpráv?`
Zadejte `r` nebo své libovolné heslo pro ochranu heslem `smp-server` nebo `n` pro vypnutí ochrany heslem.
-`Zadejte FQDN serveru nebo IP adresu pro certifikát (127.0.0.1):`
Zadejte svou doménu nebo ip adresu, na které běží váš smp-server - bude zahrnuta do certifikátů serveru a také vypsána jako součást adresy serveru.
### Prostřednictvím voleb příkazového řádku
Spusťte následující příkaz:
```sh
sudo su smp -c "smp-server init -h"
...
Dostupné možnosti:
-l,--store-log Povolit protokol úložiště pro perzistenci
-s,--daily-stats Povolí protokolování denních statistik serveru
-a,--sign-algorithm ALG Algoritmus podpisu používaný pro certifikáty TLS:
ED25519, ED448 (výchozí: ED448).
--ip IP IP adresa serveru, používaná jako Common Name pro TLS online
certifikátu, pokud není zadáno FQDN
(výchozí: "127.0.0.1")
-n,--fqdn FQDN FQDN serveru použitý jako Common Name pro certifikát TLS online
certifikát
--no-password Povolit vytváření nových front bez hesla
--password PASSWORD Nastavení hesla pro vytváření nových front zpráv
-y,--yes Neinteraktivní inicializace pomocí příkazového řádku
volby
-h,--help Zobrazí text nápovědy
```
Měli byste určit, které příznaky jsou pro váš případ použití potřebné, a poté spustit `smp-server init` s příznakem `-y` pro neinteraktivní inicializaci:
```sh
sudo su smp -c "smp-server init -y -<vůjpříznak><vaševolba>"
- obnovení spojení a zpráv při restartu serveru (příznak `-l`),
- IP adresa `192.168.1.5`,
- chránit `smp-server` heslem `test`.
---
Poté je instalace dokončena a ve výstupu teminálu byste měli vidět něco takového:
```sh
Certificate request self-signature ok
subject=CN = 127.0.0.1
Server je inicializován, konfiguraci můžete upravit v souboru /etc/opt/simplex/smp-server.ini.
Spusťte `smp-server start` pro spuštění serveru.
----------
Měli byste bezpečně uložit soukromý klíč CA a odstranit jej ze serveru.
Pokud dojde ke kompromitaci pověření TLS serveru, lze tento klíč použít k podpisu nového, přičemž zůstane zachována stejná identita serveru a navázaná spojení.
Umístění soukromého klíče CA: /etc/opt/simplex/ca.key.
Výše uvedená adresa serveru by měla být použita v konfiguraci klienta a pokud jste přidali heslo k serveru, mělo by být sdíleno s ostatními lidmi pouze tehdy, když jim chcete povolit používat váš server pro příjem zpráv (všechny vaše kontakty budou moci posílat zprávy, protože nevyžadují heslo). Pokud jste při inicializaci předali IP adresu nebo názvy hostitelů, budou vypsány jako součást adresy serveru, jinak nahraďte `<hostnames>` skutečnými adresami serverů.
## Dokumentace
Všechny potřebné soubory pro `smp-server` jsou umístěny ve složce `/etc/opt/simplex/`.
Uložené zprávy, spojení, statistiky a protokol serveru jsou umístěny ve složce `/var/opt/simplex/`.
Váš otisk certifikátu `smp-server`. Otisk svého certifikátu můžete zkontrolovat v souboru `/etc/opt/simplex/fingerprint`.
- **nepovinné** `<heslo>`
Vaše nakonfigurované heslo `smp-serveru`. Nakonfigurované heslo můžete zkontrolovat v souboru `/etc/opt/simplex/smp-server.ini` v sekci `[AUTH]` v poli `create_password:`.
Vaše nakonfigurované jméno (jména) hostitele `smp-serveru`. Nakonfigurované hostitele můžete zkontrolovat v souboru `/etc/opt/simplex/smp-server.ini`, v části `[TRANSPORT]` v poli `host:`.
### Příkazy Systemd
Chcete-li spustit `smp-server` při startu hostitele, spusťte:
Nov 23 19:23:21 5588ab759e80 systemd[1]: Spuštěn SMP server.
Nov 23 19:23:21 5588ab759e80 smp-server[30878]: SMP server v3.4.0
Nov 23 19:23:21 5588ab759e80 smp-server[30878]: Fingerprint: d5fcsc7hhtPpexYUbI2XPxDbyU2d3WsVmROimcL90ss=
Nov 23 19:23:21 5588ab759e80 smp-server[30878]: Adresa serveru: smp://d5fcsc7hhtPpexYUbI2XPxDbyU2d3WsVmROimcL90ss=:V8ONoJ6ICwnrZnTC_QuSHfCEYq53uLaJKQ_oIC6-ve8=@<hostnames>
Nov 23 19:23:21 5588ab759e80 smp-server[30878]: Uložit protokol: /var/opt/simplex/smp-server-store.log
Nov 23 19:23:21 5588ab759e80 smp-server[30878]: Naslouchání na portu 5223 (TLS)...
Nov 23 19:23:21 5588ab759e80 smp-server[30878]: neaktivní klienti nevypršeli.
Nov 23 19:23:21 5588ab759e80 smp-server[30878]: vytváření nových front vyžaduje heslo
```
### Monitoring
Statistiky `smp-serveru` pro `Grafana` dashboard můžete povolit nastavením hodnoty `on` v souboru `/etc/opt/simplex/smp-server.ini` v sekci `[STORE_LOG]` v poli `log_stats:`.
Protokoly budou uloženy jako soubor `csv` v souboru `/var/opt/simplex/smp-server-stats.daily.log`. Pole pro soubor `csv` jsou:
1. Nainstalovat zásuvný modul Grafana: [Grafana - CSV datasource](https://grafana.com/grafana/plugins/marcusolsson-csv-datasource/)
2. Povolit místní režim připojením následujícího:
```sh
[plugin.marcusolsson-csv-datasource].
allow_local_mode = true
```
... do `/etc/grafana/grafana.ini`
3. Přidejte zdroj dat CSV:
- V postranní nabídce klikněte na záložku Configuration (ikona ozubeného kola).
- V pravém horním rohu karty Zdroje dat klikněte na tlačítko Přidat zdroj dat.
- Do vyhledávacího pole zadejte "CSV" a vyhledejte zdroj dat CSV.
- Klikněte na výsledek hledání s nápisem "CSV".
- Do pole URL zadejte soubor, který odkazuje na obsah CSV
4. Hotovo! Měli byste být schopni vytvořit vlastní řídicí panel se statistikami.
Další dokumentaci naleznete na adrese: [CSV Data Source for Grafana - Documentation](https://grafana.github.io/grafana-csv-datasource/)
### Konfigurace aplikace pro použití serveru
Chcete-li aplikaci nakonfigurovat tak, aby používala váš server pro zasílání zpráv, zkopírujte jeho úplnou adresu včetně hesla a přidejte ji do aplikace. Máte možnost používat svůj server společně s přednastavenými servery nebo bez nich - můžete je odebrat nebo zakázat.
Adresu svého serveru můžete také sdílet se svými přáteli tak, že je necháte naskenovat QR kód z nastavení serveru - ten bude obsahovat heslo serveru, takže budou moci přijímat zprávy i prostřednictvím vašeho serveru.
_Upozornění_: pro podporu hesla je třeba mít SMP server verze 4.0. Pokud již máte nasazený server, můžete heslo přidat přidáním do souboru INI serveru.