VIRY.CZ

Syndikovat obsah
Když se havěť stává obětí
Aktualizace: 25 min 11 sek zpět

pfSense, VLANy, proxy, … aneb začínáme krotit divočinu v domácí síti

29 Květen, 2024 - 08:30

Po čtrnácti dnech je tu závěrečný díl celé série o zabezpečení chytré domácnosti. Pokud tedy nechcete mít doma trojského koně v podobě čínské fotovoltaiky či jiných čínských chytrých zařízení, zde je rozuzlení celé problematiky. A vlastně, ono tohle řešení nabídne i daleko vyšší komfort než řada oficiálních řešení od výrobců!

Předem hlásím, že existuje hromada dalších způsobů, jak si zabezpečit domácí síť a jakým způsobem zajistit dostupnost chytrých zařízení z internetu. Já jsem to zrealizoval následovně.

VLANy – oddělené sítě a přesto provázané

Domácí síť mám rozdělenu do 4 VLAN s využítím IEEE 802.1Q a takhle to mám jak na úrovni bezdrátové (WiFi síť), tak i „drátové“ (ethernetové kabely CAT6). Poněkud úsměvná je ale realita, kdy mám po domě nataženo přes 300m ethernetového kabelu, v každé místnosti minimálně 2 zásuvky, za TV skříní hned 4 a přesto jsem ani tu televizi kabelem nepřipojil. 24-portový switch s podporou VLAN tak byla volba typu „kanónem na vrabce“. Zpět ale k VLAN. Mám nakonec tyto:

  • IOT – zde mám všechna chytrá zařízení, včetně IP kamer, Shelly zařízení, Android TV + Home Assistant nainstalovaný na Raspberry Pi 3.
  • SERVERS – zde mám NAS Synology a UniFi controller (v provozu na Raspberry Pi).
  • PRIVATE – zde jsou zařízení jako stolní PC, notebook, mobilní telefony, tiskárna.
  • GUEST – pro účely Guest WiFi. Vlastně velice podobné IOT, ale včetně izolace zařízení.

Home Assistant pro správu IOT zařízení by měl být z logiky věci spíše ve VLAN SERVERS, nicméně využívám toho, že takhle dokáže automaticky detekovat nová zařízení na stejném segmentu sítě (typicky když dokoupím další Shelly komponentu) a celá topologie sítě je o něco jednodušší.

pfSense – srdce celé infrastruktury

Routování mezi VLANama obstarává pfSense, stejně jako funkci firewallu a dalších služeb. Nejprve jsem provozoval pfSense+ na oficiálním zařízení Netgate 1100. Jakmile si ale začnete s pfSense více hrát, zapínat inspekci provozu a další služby, velice rychle narazíte na limit RAM o velikosti 1 GB. Tudíž později došlo k výměně za výkonější stroj se 4 GB RAM – PC Engines s procesorem AMD GX-412TC-quad core. Bohužel AMD další vývoj těchto chipsetů ukončil, takže pokud to umře, do třetice to bude zase něco zcela jiného, avšak stále s pfSense.

pfSense má dlouhou historii. Je tu s námi od roku 2004, kdy se oddělil od jiné legendy – m0n0wall. V roce 2015 vznikla alternativa v podobě OPNsense. Vše běží na FreeBSD.

VLANu IOT mám zcela odříznutou od internetu a ostatních VLAN. K dispozici je tam DHCP. Podle charakteru mají některá IOT zařízení IP adresu volně přiřazenu a jiné ji mají nastavenu „natvrdo“ (vůči MAC adrese + v nastavení IOT). Toto je typické pro IP kamery či jiná zařízení, kde by změna IP v čase mohla způsobit komplikace (tepelné čerpadlo, fotovoltaika – oboje kvůli TCP Modbus komunikaci). Jedinou povolenou komunikací směrem ven je DNS a NTP (kamery tak budou mít správný datum/čas). Na firewallu pak mám připraveny pravidla, která povolí základní set portů, pokud bych chtěl například aktualizovat firmware IOT zařízení či pustit k tepelnému čerpadlu vzdáleného technika. Standardně jako ale tato pravidla neaktivní.

Nejvíce benevolentní je pochopitelně nastavení VLAN SERVERS a PRIVATE. Z obou se lze dostat do všech ostatních.

Tři WiFi sítě

Drtivou většinu IOT zařízení provozuju bezdrátově přes WiFi síť. WiFi řeším přes několik stropních „talířů“ značky Ubiquiti UniFi s POE napájením. VLANa IOT, PRIVATE a GUEST má své vlastní SSID. V okoli tak vidím 3 WiFi sítě. IOT WiFi jede jen na 2,4 GHz, ostatní pak na 2,4 i 5 GHz. Vím, že některá IOT zařízení mají problém s prvotní instalací, pokud Váš mobil jede na 5 GHz síti a má sloužit k spárování s IOT zařízením, jenž podporuje pouze 2,4 GHz. WiFi síť je pak řízena skrze UniFi Controller, který provozuju též na obstarožním Raspberry Pi 3.

Vedlejším efektem v případě Ubiquiti je například to, že Vám to samo vizualizuje infrastrukturu. Pozor na vyždímané baterie!

Speciálně u bateriových zařízení (ideálně však všude) doporučuji v konfiguraci zakázat používání cloudové infrastruktury výrobce. On sice komunikaci zabrání firewall na pfSense, nicméně pokud necháte cloud povolený třeba v nastavení detektoru otevřených dvěří/oken „Shelly door window 2“, opakované neúspěšné pokusy o navázání komunikace s cloudem vedou k tomu, že baterii, která by měla v zařízení vydržet více než rok, vyždímáte v řádu týdnů! A že jsem těch náhradních baterií nakoupil, než jsem na to přišel Naopak v případě Shelly je doporučeno zapnout ColoT protokol a uvést IP adresu Home Assistant serveru.

To je asi vše k vnitřní části. Jak je ale realizována dostupnost IOT zařízení z internetu? Existuje opět spousta řešení, já se ale rozhodl pro následující.

Dostupnost chytré domácnosti z internetu po vlastní ose

Od internetového poskytovatele mám zajištěnu statickou veřejnou IP adresu (i když stačí i promapování klíčových portů). K ní mám vytvořeny DNS záznamy typu A. Jeden pro přístup k NAS Synology (kde je i správa kamerového systému) a druhý k Home Assistant. Oba záznamy, resp. IP adresa mě dovede až k WAN portu firewallu pfSense.

Na pfSense běží služba pfBlockerNG, která využívá GeoIP pravidla a rovnou zahazuje komunikaci vedenou z jiných zemí, než ČR a SR a blacklistovaných IP adres. Intuitivně není problém přidávat další regiony. Pak je tam v provozu služba Snort, která detekuje různé anomálie v síťové komunikaci a též dokáže rozdávat ať už permanentní nebo dočasne „bany“ na veřejné IP adresy.

Reverzní proxy, HTTP SSL, ACME, Lets encrypt, Fail 2 ban, …

Za tímhle je pak schovaná další služba, reverzní proxy HA Proxy, která legitimní požadavky z internetu na Home Assistant či Synology NAS směruje na správné „backendy“. Ať už se k NAS Synology či Home Assistantu připojujete z internetu skrze webový prohlížeč či mobilní aplikaci výrobce, technicky jde vždy o HTTP komunikaci. Nešifrovanou podobu na portu 80 mám pochopitelně zakázanou. Povolena je pouze šifrovaná varianta SSL, přičemž HA Proxy tuto komunikaci zaterminuje a dále ji podle hostname posílá lokálně již po HTTP na Synology či Home Assistant.

Validitu SSL certifikátů zařizuje další služba, jenž běží na pfSense – ACME. Využita je přitom autorita Lets Encrypt. Žádné výjimky na nedůvěryhodné servery tak není potřeba řešit. „Fail2Ban“, tedy blokování IP adres v případě, že se z ní někdo několikrát pokusí o neúspěšné přihlášení k systému, řeším až na cílových systémech Synology a Home Assistant. Aby to fungovalo korektně, je potřeba v HA Proxy povolit zasílání hlaviček X-Forwarded a brát je v potaz v nastavení Synology / Home Assistantu. V opačném případě zabanujete leda tak sami sebe, resp. vnitřní IP adresu pfSense, nikoliv skutečného viníka / útočníka.

Závěr

Tohle je tak nějak v kostce řešení, které v domácnosti využívám. Znovu říkám, dalo by se to vyřešit úplně jinak, ale já jsem s tímhle maximálně spokojen. Vše mám v jedné aplikaci, která je rychlejší, lepší a stabilnější, než řada oficiálních řešení od výrobců. Home Assistant zároveň umožňuje realizovat automatizace, které by byly jinak nemyslitelné, drahé, nebo komplikované. Více o tom v předchozím díle. Nicméně zde je rekapitulace všech předchozích dílů:

Máte rádi trojské koně? Pořiďte si čínskou fotovoltaiku!

Rizika nevedou jen přes fotovoltaiku, stačí Vám „Powered by Tuya“ zařízení za pár stovek

Odříznutí internetu, přesun k Home Assistantu

A jak řešíte zabezpečení Vy? A nebo na to „prdíte“? Klidně pište do komentářů.

The post pfSense, VLANy, proxy, … aneb začínáme krotit divočinu v domácí síti appeared first on VIRY.CZ.

Kategorie: Viry a Červi

Odříznutí internetu, přesun k Home Assistantu

14 Květen, 2024 - 08:30

Třetí díl série o chytrých zařízeních (IOT – Internet of things) v domácnosti je již konkrétnější a ukazuje jednu z alternativních cest jejich použití, která je zcela odlišná od „mainstreamové“ cesty, kterou to zapojí drtivá většina ostatních uživatelů. V konečném důsledku může být právě tohle rozhodující faktor, díky kterému se můžete vyhnout případnému hackerskému útoku či výpadku cloudové infrastruktury výrobců IOT. Příjemným vedlejším efektem je navíc to, že často i stoupne komfort užití IOT zařízení a otevírají se další možnosti jejich spolupráce. Abych ale řekl celou pravdu, tímto přístupem přebíráte i komplet zodpovědnost (za problémy můžete nadávat akorát sobě) a vyžaduje to i větší znalosti IT.

Je plno stejně kvalitních či kvalitnějších alternativ, ale osobně mám drtivou většinu IOT senzorů / detektorů od značky Shelly. Doporučuji se ale podívat i na zařízení na bázi ZigBee. Já jsem ale žádnou centrální bránu řešit nechtěl a spoléhal se čistě na komunikaci po WiFi. Jelikož jde o novostavbu, stropních WiFi „talířů“ je po domě dostatek (Ubiquiti UniFi AC Long Range).

Zařízení „Shelly 1“ (či Shelly 1 Plus) v hodnotě několika stokorun slouží skvěle například na otevírání el. garážových vrat. Paradoxně to vychází finančně levněji, než dokupovat oficiální dálkové ovladače dalším členům rodiny. Navíc můžete vrata otevírat odkudkoliv přímo z mobilního telefonu.

Otevřené okno, děravá pračka

Dále používám Shelly Door Window 2 a Shelly Flood. V obou případech jde o senzory napájené baterií. První detekuje otevřená okna / dveře a druhý únik vody. Detektory na otevřené okna / dveře používáme tam, kde je běžně zapomínáme v rámci větrání zavírat, tedy u oken a dvěří, které nejsou úplně na očích. Shelly Flood je pak umístěn pod pračkou a myčkou. S prorezlou myčkou a tekoucí pračkou máme z minulosti neblahé zkušenosti. Původně byl záměr zaintegrovat detektory vody společně s centrálním uzávěrem vody, ale ten jsem zkritizoval v předchozím díle (powered by Tuya) a už nikdy nedořešil. Pointa, že únik vody z myčky / pračky povede automaticky k uzavření přívodu vody do domu, tak dosud nebyla realizována.

Někdy je umění najít místo, kam senzor otevřených dveří přidělat. Oba díly musí být od sebe maximálně několik mm, pokud mají hlásit stav „zavřeno“. Zde toho bylo dosaženo držáky z 3D tisku.

Měrák elektriky i vody

Další IOT zařízení, která používám, ale jsou spíše pasivního charakteru jsou:

Shelly 3EM – 3-fázový měřák spotřebované el. energie v domácnosti. Původně koupeno spíše jako hračka, nicméně nakonec se ukázalo, že to není úplně marná věc pro detekci anomálií ve spotřebě el. energie. Já tak díky tomuto měřáku včas odhalil, že tepelné čerpadlo nebylo nastaveno úplně ideálně (například, že zbytečně často využívalo neúspornou přímotopnou spirálu).

AI on the edge device – měřák spotřeby vody. Tohle není hotové zařízení, ale pokud za pár stovek koupíte miniaturní integrovanou desku s kamerou a správně ji nasadíte na vodoměr (nutno vytisknout na 3D tiskárně), dokáže spolehlivě převádět stav analogových „budíků“ na litry. A když se pak kouknete na denní spotřebu vody, nestačí se člověk divit. V m3 to nevypadá tak drasticky…

Bez 3D tiskárny se člověk neobejde ani zde. V horní části je umístěn „mini počítač“ na bázi ESP32 CAM se SW AI on the edge, který například co 5 minut vyfotí ciferníky vodoměru miniaturní kamerou (přisvítí si LEDkou) a převede je do digitální podoby.

Trouba a čistička vzduchu taky na internet?

V domácnosti by se našlo více zařízení, která se chlubí možností připojení k internetu, ale nenašel jsem žádný rozumný scénář, proč bych je tam připojoval (trouba, čistička vzduchu, …). Naopak možnost vzdáleně zapnout klimatizaci, poštelovat tepelné čerpadlo či fotovoltaický systém je vítaná. U chytré televize s Androidem je varianta s internetem jasná.

Fotovoltaika značky SOLAX, stejně jako tepelné čerpadlo PZP (model Economic) mají též vlastní cloudovou infrastrukturu a tedy i mobilní aplikaci, nicméně nic z toho se mě netýká. Komunikace je tak vedena lokálně skrze „průmyslový“ protokol Modbus, který obě zařízení skrze síťový protokol TCP nabízejí.

Bez internetu, odříznuto, šmytec

Všechna výše uvedená zařízení jsem laicky řečeno odříznul od internetu. To je alfa a omega odlišného přístupu, který jsem zvolil. Místo oficiální cloudové infrastruktury výrobců tak všechna zařízení směruju na lokální server s open source aplikací Home Assistant. Tahle aplikace umožňuje spravovat téměř vše, co je připojeno ethernetovým kabelem nebo skrze WiFi. A to z jednoho místa (resp. z jedné mobilní aplikace) a často lépe, než přes oficiální aplikace výrobců. Home Assistant provozuji na mini počítači Raspberry 3, protože se mě jich doma prostě několik válelo Variant nasazení ale existuje několik. Kromě toho, že můžete Home Assistant provozovat v režimu „hračička“, můžete v něm mezi připojenými zařízeními vytvářet i automatizace a optimalizovat tak chod domácnosti.

Chytrá IOT zařízení značky Shelly Vám detekuje Home Assistant automaticky během několika minut a jejich připojení je otázkou několika kliknutí. FVE SOLAX lze provozovat skrze protokol Modbus a díky existenci addonu je to i zde na několik kliknutí + nutnost zadat IP adresu střídače. Největší výzvou tak bylo připojení tepelného čerpadla PZP opět skrze Modbus (zvlášť, když tenhle protokol vidíte prvně v životě), ke kterému ale žádný addon neexistuje. Díky vstřícnému přístupu tech. podpory společnosti PZP jsem ale obdržel dokumentaci a několik dalších cenných rad, což vedlo k tomu, že dokážu vyčítat a měnit klíčové parametry tepelného čerpadla.

Home Assistant – z jednoho místa můžete vidět dění v celé domácnosti. Možnosti jsou obrovské. Příjemné je i udržování historie jednotlivých hodnot a hlavně to, že je HA dotaženější než celá řada originálních aplikací od výrobců IOT.

Nebýt otrokem

Ač prostřednictvím Home Assistantu přebírám kontrolu nad tepelným čerpadlem, neohrozím chod TP ani domácnosti v případě, že například server s Home Assistantem „umře“ nebo ho vypnu. V zimě to prostě bude topit tak jako tak a teplá voda taky bude. Obecně to mám takhle nastaveno i vůči dalším IOT zařízením. Garáž můžu pořád otevřít dálkovým ovladačem, světla vypínačem a dveře klíčem. Nechci být otrokem chytré domácnosti. Mimochodem (tohle má teda už hodně daleko od původního tématu ohledně zabezpečení IOT v domácnosti), v případě tepelného čerpadla mě zaujalo to (ač je to patrně normální, ale pro mě novinka, neboť jsem tuto problematiku nikdy neřešil), že se mu musíte v pravidelných intervalech (tuším že každých max. 100 sekund) z Home Assistantu skrze modbus hlásit. Jenom tak ho můžete vzdáleně z Home Assistantu ovládnout. Pokud se hlásit přestanete (například vlivem závady Home Assistant serveru), tepelko převezme řízení zpět. Jednoduché a funkční.

Automatizace na pár kliknutí

Jakmile máte všechna chytrá zařízení na jednom místě v Home Assistantu, můžete prostřednictvím vizuálních průvodců dělat i jinak složité věci jednoduše. Věci, které byste jinak museli řešit přes elektrikáře, nákupem fyzických stykačů, spínačů, …, dokážete vyřešit během pár minut přes klávesnici a myš. Já jsem kupříkladu v Home Assistantu realizoval tyto automatizace:

Akumulace / navýšení cílové teploty vody v bojleru v případě přebytků z fotovoltaiky

Automatizace je nastavena tak, že pokud fotovoltaika vyrábí více než 4 kW po dobu minimálně 20 minut (vyčteno přes modbus Solaxu), navýší významně cílovou teplotu v bojleru i za cenu, že začne tepelné čerpadlo využívat 3 kW přímotopnou spirálu (zařízeno přes modbus PZP). Asi by to šlo vymyslet sofistikovaněji, nicméně mě se předpověď počasí v HA neosvědčila, tudíž pokud moje FVE vyrábí 20 minut v kuse přes 4 kW, beru to, že venku je jasno s minimem mraků a tudíž je malá pravděpodobnost, že si bude tepelko při této operaci zbytečně „docucávat“ z baterie.

Okamžité shození tepelného čerpadla do pohotovostního režimu v případě výpadku el. energie ze sítě

Pokud vypadne el. síť v ulici (vyčteno z modbus Solaxu, který se přepne do režimu „off-grid“), nemá smyslu nahřívat vodu / topit z baterií (zařízeno skrze modbus PZP přehozením TČ do pohotovostního režimu). I v zimě je teplo v baráku naakumulované, tudíž pokud nenastal zrovna konec světa, těch pár minut až hodin, než elektrika naběhne, lze vydržet. Resp. než baterii FVE rychle vyždímat k dohřátí teplé vody a nebo ke zvýšení teploty topení, to ji raději využít k zajištění osvětlení, vaření či dokončení pracího cyklu. Pochopitelně funguje i opačná automatizace, která to po ukončení výpadku „nahodí“.

Zapnutí bazénové filtrace pokud jsou přebytky a venku je teplota, která za tu filtraci bazénu stojí

Elektromobil, spotové ceny, závěr

Pokud pak někdo nakupuje energii za spotové ceny, řeší i její prodej a vlastní elektromobil / wallbox, pak lze vymyslet spousty dalších automatizací. To všechno lze totiž do Home Assistantu integrovat.

No a v příští (a zřejmě poslední) části se teda už opravdu vrátíme k tomu zabezpečení Home Assistant sice v tomto díle spatřil světlo světa, ale těžko si přes něj otevřeme garážová vrata, pokud budeme před domem mimo dosah WiFi signálu. Čekají nás tak pojmy jako VLAN, pfSense, HAproxy, Snort, Acme, GeoIp blocking, fail2ban, …

The post Odříznutí internetu, přesun k Home Assistantu appeared first on VIRY.CZ.

Kategorie: Viry a Červi