SDS v síti: tipy, příklady, nastavení

Verze z 2. 12. 2022, 14:47, kterou vytvořil Adamn (diskuse | příspěvky) (Založena nová stránka s textem „== SDS v síti == Moduly SDS jsou samy o sobě velmi schopné, a lze je dále rozšiřovat i vhodnými aplikacemi v rámci počítačové sítě. === Za…“)
(rozdíl) ← Starší verze | zobrazit aktuální verzi (rozdíl) | Novější verze → (rozdíl)

SDS v síti

Moduly SDS jsou samy o sobě velmi schopné, a lze je dále rozšiřovat i vhodnými aplikacemi v rámci počítačové sítě.


Zabezpečení

Základní zabezpečení je umístit SDS za firewall a router.

Doporučená sestava:

 ISP ---- pfSense (NetGate) ----  Router  
          (firewall)                  | 
                                      |---- SDS
                                      |
                                      +---- počítač
                                            atd.

Doporučený firewall je stroj s pfSense, ale samozřejmě není to nikde předepsáno. Pokud jste spokojeni se svou, jinou, volbou, držte se ji. Existuje celá řada identických, nebo i lepších alternativ. Toto doporučení je zde pro ty, kteří neví a chtějí si nechat do začátku poradit. Kritické je vždy především firewall správně nastavit.

Router obvykle obsahuje (další) firewall v sobě. Rozdíl zde však je - samostatný firewall typu pfSense umí celou řadu věcí (např. pfBlocker-NG, nebo pokročilý filtr firewallu atd.), zatímco typicky základní firewall v routeru má jen typicky základní funkčnosti filtru.

Zcela určitě nepřipojujte SDS přímo do Internetu, nebo do DMZ portu atd. - SDS musí být "skryto" za firewallem.


Vzdálený přístup z Internetu

SDS je typicky skryto za NATem v routeru. Pak je potřeba ručně nastavit průchod skrz NAT pro potřebné TCP a UDP porty.

Další záležitost k řešení je IP adresa. Pokud nemáte pevnou veřejnou adresu (ke které si eventuálně umíte i udělat svůj veřejný DNS záznam), lze s výhodou využít funkci Dynamic IP (DynDns, No-IP, a řada dalších služeb, některé zdarma, některé placené).

Pokud s tímto chcete poradit, primárně se musíte domluvit se svým ISP.

Obecně není doporučeno vystavovat HTTP rozhraní modulu SDS veřejně ven na Internet (neplatí pro HTTPS rozhraní u modulů SDS). Typicky se tato potřeba objeví, pokud chcete prezentovat data z SDS - to je však vhodnější řešit přes nějakého prostředníka, viz dále (např. Grafana).


Odesílání emailu z SDS

SDS pracuje s protokolem SMTP na portu 25. Dnes už je problém sehnat veřejnou službu, která na tomto portu pracuje. Proto je standardní řešení spustit si lokální SMTP RELAY.

Příklad: máme účet (a veřejný SMTP server) na službě HOSTING, která podporuje jen SSL/TLS a chceme tam odeslat email z SDS (který ale komunikuje jen přes port TCP 25).

HOSTING === (port 456 ) ===  SMTP RELAY === (port 25) === SDS

Pak musíme nainstalovat a správně nastavit SMTP RELAY. To je specifický SW, který běží na lokálním serveru, přičemž tento server má přístup jak do Internetu, tak se na něj "dostane" i váš modul SDS. Typicky je takový server umístěn ve stejné (nebo blízké lokální) síti, jako právě ono SDS.

Dále musíme mít účet u SMTP SERVERu, který běží na službě HOSTING. Pak známe jeho celé doménové jméno (nebo IP adresu) a port, a dále uživatelské jméno a heslo.


Příklad: instalace SMTP RELAY na rPI

rPI je nejsnazší příklad, a tento postup je obecně replikovatelný na jiném Linux-based systému.

1. instalace postfix a balíčku pro SASL identifikaci (bez toho nefunguje přihlášení na vzdálený smtp server)

sudo apt-get install postfix
sudo apt-get install libsasl2-modules

2. editujte konfiguraci

sudo nano /etc/postfix/main.cf

3. zapište přístupové údaje k vzdálenému SMTP SERVERu

sudo nano /etc/postfix/relay_passwd
sudo /usr/sbin/postmap /etc/postfix/relay_passwd

3. restartujte postfix

sudo service postfix restart

4. sledujte jak funguje

sudo tail -f /var/log/postfix.log

Kritické je správně nakonfigurovat funkci RELAY a SSL/TLS, v souboru main.cf . Výchozí obsah je nutné upravit, jinak to z principu nebude fungovat.

Vzorový obsah /etc/postfix/relay_passwd souboru, pro tento příklad:

wes1-smtp.wedos.net user@domena.cz:heslo
wes1-smtp.wedos.net:465 user@domena.cz:heslo

A dále obsah /etc/postfix/main.cg souboru, pro tento příklad:

x

Samozřejmě musíte si to upravit sami dle svého poskytovatele SMTP serveru !


Archivace a zobrazování dat

Dnešní jednoznačný trend je použití MQTT protokolu a zobrazení pomocí Grafana služby. Toto vše se instaluje bokem na vlastní lokální server, a SDS tyto služby "krmí" (a naopak, SDS lze odsud i ovládat).

Zásadní výhoda je oddělení přístupu k archivaci a prezentaci všech dat, od SDS samotného, takže uživatelé se k SDS prakticky nedostanou, a to v klidu dělá svou práci (řízení a dohled). Toto je zejména kritické, pokud mají být data prezentovány na Internetu.

Samozřejmě MQTT a Grafana není jediný způsob. Vše lze řešit i "ručně", např. vlastní databází na serveru, která se plní přes HTTP GET/POST protokol (základní funkčnost SDS), a zobrazení webovým serverem s vlastními stránkami, viz skvělý příklad: odwww.nesvara.cz.

  • Co je to MQTT

MQTT je komunikační protokol, který za vás plně SDS řeší. Tímto protokolem můžete posílat data z SDS na server, nebo naopak SDS může ze serveru data dostávat (při jejich změně).

MQTT pracuje na principu položek - vždy máte "název položky" a její datový obsah. Příklad: "teplota_venku" a obsah "25".

Server udržuje jen poslední aktuální stav předávaných položek. Pokud chceme hodnoty průběžně archivovat, např. abychom je mohli i zobrazit a procházet, potřebujeme je uchovávat v databázi.

Typický, doporučený, MQTT server (odzkoušený i na rPI) je "Mosquitto".

  • Databáze

Zde je velmi vhodná databáze "InfluxDB". Zejména protože ji lze vhodně "krmit" a protože ji lze přímo připojit do Grafany, bez dalších složitostí.

Krmení databáze je jediný obtížný oříšek. Lze to provést službou "Telegraf" nebo si napsat malý skript, nebo to nakonec může dělat i přímo SDS (přes HTTP). Nejvhodnější je vlastní skript (většina lidí si je píše na rPI v Pythonu), nebo pak ten Telegraf. Obě metody berou aktuální data z MQTT serveru a krmí daty databázi, a uživatel se už nemusí o nic starat.

  • Zobrazení

Typicky požadujeme webové, interaktivní zobrazení hodnot a jejich průběhů. Dostupné z místní sítě i z Internetu. Zabezpečené.

To vše nabízí Grafana. Lze ji jednoduše instalovat na server, nakonfigurovat (propojit s databází) a pak si vytvořit zobrazovací obrazovky (Dashboard).


Home Assistant

SDS lze integrovat (připojit) do systému Home Assistant. Je potřeba do HA nainstalovat vhodnou šablonu, typicky je potřeba si ji vytvořit na míru - příklady jsou na našem fóru.