Hogyan blokkoltam le Léna internetét éjjelre – egyetlen gombnyomással
Este 9 óra
Még mindig a gépemen lógok — mai nap húzós volt. Ránézek az asszonyra: az energiaszintje az enyémnél is alacsonyabban van. Lányom feje a sötétben megvilágítva a tablet fényével.
A belsőm ordít, hogy ez a legkárosabb ami történhet. De muszáj befejeznem amit csinálok. Még pár sor kód.
“Kislányom tedd le a tabletet!"
"Apa mindjáááárt!"
"Kislányom kérlek tedd le!"
"Apa ezt még megnézhetem?”
Magamban gondolom: persze, már csak másfél óra van vissza a videóból.
Ez Így Nem Jó. Szabályok kellenek.
Most 22:00 óta automatikusan nincs internet Léna telefonján, tabletjén és TV-jén. Ha kivételt akarok tenni, egy gomb. Ha napközben blokkolni akarok, egy gomb. Az egész a zsebemből kezelhető — és nem egy appból, hanem a hálózatból.
A két probléma
Nem mondanám, hogy teljesen kontrollálatlan volt a helyzet. Sok elfoglaltság van, ami elveszi az időt a képernyőtől. De ha úgy állnak össze a csillagok, hogy Léna energiaszintje is alacsony — ő is könnyebben hajlik a YouTube Kids, a végtelen Netflix-sorozatok, vagy a játékappok bűvkörébe.
Explicit napi képernyőidő nem volt kimondva, mert elkezdtünk néha ketten Robloxozni — azokon a napokon a fél óra már nem volt elég kettőnknek. Halmozottan nézni, összeszámolni, kivételeket kezelni… látszott, hogy itt az ideje kontrollált mederbe terelni az egészet.
Közben egy másik probléma is folyamatosan ott volt a háttérben. Építem itthon a Home Assistant hálózatot — wifis okoseszközből van vagy húsz. Az ISP-csere során ismét előjött a fájdalmas művelet: fix IP-k beállítása a routeren.
Ez 2026-ban, ezekkel a modemekkel, ekkora fájdalom. Nem akarom, hogy újrainduljon az egész WiFi hálózat ha rögzítek egy MAC-hez egy IP-t. Nem akarom, hogy négyszer kelljen felvinni egy eszközt, mire egyszer elfogadja. Nem akarom, hogy csak akkor működjön, ha az eszköz éppen nem csatlakozik és a lease time is lejárt.
Fáj.
A két probléma együtt hozta meg a döntést: kell egy rendes router.
Miért OPNsense?
AI-val néztem végig az opciókat — az igényeim, a meglévő eszközök és a jövőbeli tervek alapján az OPNsense jött ki győztesként. Megnéztem a honlapját: az API dokumentáció bőnek tűnt, tehát lehet majd automatizálni. A dashboard is rendesen néz ki. Nem akartam sok időt beleölni a kiválasztásba — meggyőzött, elfogadtam.
Az OPNsense egy nyílt forráskódú tűzfal és router operációs rendszer, ami arra való, hogy valódi kontrollt adjon a hálózat felett. Fix IP-k, VLAN szegmentálás, tűzfalszabályok, időzítők — mind egy helyen, és mind API-n keresztül is elérhető.
Nálam egy Proxmox homelabban fut virtuális gépen, egy dedikált hálózati kártyával — de ez egy külön sztori.
Hogyan működik (közérthetően)
Léna három eszközhöz fér hozzá általában: egy telefon, egy tablet, egy TV a szobájában.
Az OPNsense-ben létrehoztam egy szabályt: éjjel 22:00 és reggel 7:00 között ezek az eszközök nem jutnak ki az internetre. Napközben is be tudom kapcsolni a blokkolást — ha házi feladat van, vagy csak úgy döntök.
És van egy bypass: ha pizsiparti van, vagy kivételt engedek, egy gombnyomással feloldom az egészet az adott éjszakára.
A vezérlés egy iOS Shortcut, “Léna net” névvel a főképernyőn. Megnyitom, négy opció jelenik meg:
- Blokk BE — napközbeni tiltás
- Blokk KI — visszavonja a napközbeni tiltást
- Éjszakai bypass — az automatikus blokk alól kiveszi az eszközeit egy estére
- Mindent vissza — bypass és manuális blokk egyszerre leáll, visszaáll az alapállapot
A “Léna net” Shortcut — a négy opció ahogy a telefonon megjelenik.
A technikai rész (aki kíváncsi)
Ez a blokk azoknak, akik tudni akarják hogyan van összerakva. Laikusok átugorhatják.
Aliasok és firewall rule-ok
Az OPNsense tűzfalban az úgynevezett alias egy IP-cím lista, amire szabályokat lehet akasztani. Három aliast hoztam létre:
lena_eszkozok— a három eszköz IP-je, statikusan (DHCP reservation gondoskodik arról, hogy mindig ugyanazt kapják)lena_manual_blokk— napközbeni tiltásnál ide kerülnek az IP-k, alapból üreslena_bypass— éjszakai kivételnél ide kerülnek, alapból szintén üres
A tűzfalszabályok sorrendje kritikus — az első illeszkedő szabály nyer (ezt a pf tűzfalmotor így csinálja). A három rule ebben a sorrendben áll:
- PASS — ha
lena_bypassnem üres, ezek az IP-k átmennek (schedule nélkül, mindig) - BLOCK — ha
lena_manual_blokknem üres, ezek blokkolva (napközbeni kézi tiltás) - BLOCK —
lena_eszkozok,ejszakai_blokkschedule-lel (22:00–07:00, minden nap)
Az első verzióban a három Léna-szabály a Default allow LAN rule alatt volt — az első illeszkedő rule PASS lett minden LAN eszközre, és a blokk rule-okig el sem jutott. 3 percig debugoltam, miért nem blokkol semmit, de aztán meglett.
A három Léna-rule az OPNsense LAN tűzfalszabályok között — sorrendben, a Default allow fölött.
n8n webhook + iOS Shortcut
Az OPNsense API-t közvetlenül nem tudja hívni egy iPhone — a készülék self-signed tanúsítványát az iOS Shortcuts app elutasítja. Ezért betoltam egy n8n-t közé: a Shortcut meghívja az n8n webhook-ot, az n8n pedig az OPNsense API-t.
Négy webhook, négy funkcióhoz:
| Shortcut opció | n8n webhook | Mit csinál |
|---|---|---|
| Blokk BE | /webhook/lena-manual-on | Hozzáadja a 3 IP-t lena_manual_blokk-hoz |
| Blokk KI | /webhook/lena-manual-off | Törli a 3 IP-t lena_manual_blokk-ból |
| Éjszakai bypass | /webhook/lena-bypass-on | Hozzáadja a 3 IP-t lena_bypass-hoz |
| Mindent vissza | /webhook/lena-bypass-off | Törli mindkét aliasból az összes IP-t |
Az n8n workflow — a Shortcut meghívja, az OPNsense API-t hívja tovább.
A flush vs delete csapda
Az OPNsense API-ban van egy flush endpoint, ami kiüríti az aliast. Logikus, igaz? Én is így gondoltam. Csakhogy a flush csak a runtime pfctl táblát üríti — az OPNsense a config.xml-ből újratölti az IP-ket indítás után. Gyakorlatban: a blokk soha nem szűnt meg, hiába futtattam le a “kikapcsoló” webhook-ot. Látszólag minden lefutott, {"status":"done"} volt a válasz — de a tűzfaltábla perceken belül újra tele volt.
A helyes megoldás: delete endpoint, IP-nként meghívva. Ez a runtime táblát és a config-ot is tisztítja.
Az OPNsense dokumentáció ezt nem dokumentálja explicit URL formátumban. Egy darabig eltartott, mire felismertem, mert minden curl hívás sikeresen futott le.
Az első este
Családtagok már alszanak. Az utolsó hibák úgy tűnik megoldódtak. Belopóztam Léna szobájába, elhoztam a tabletet.
21:55. Elvileg még nincs tiltás — nézzük, van-e internet. Van. Telefon a kézbe, Shortcuts, Blokk BE. YouTube a tableten: loading. Google keresés: loading. Oké. Blokk KI — megy.
Eljött a 22 óra. Az automatikus blokk bekapcsolt. Bypass-t is leteszteltem.
Az elmém kezd kicsit kisimulni.
A kód le van mentve, az n8n workflow fut, a Shortcut a főképernyőn van.
A gyermek-biztonság első rétege: BE.
Tanulságok
Ha te is ezen gondolkozol:
- A hálózati szintű blokkolás nem rakétatudomány — de kell hozzá egy rendes router. Az ISP modem erre általában alkalmatlan - bár néha meglepő hogy Home Assistantból milyen routerekre van támogatás.
- Az OPNsense-t nem kell Proxmoxban futtatni. Egy dedikált mini PC-n (pl. régi ThinkCentre, N100-as mini box) simán elfut, és kábellel kötve a routeredhez azonnal használható.
- A szülői felügyelet hálózati szinten működik — app-tól, gyártótól, iOS frissítéstől független. Ha az eszköz nem kap internetet a routertől, nem kap internetet.
Ha te is OPNsense-t építesz:
- A firewall rule sorrend kritikus. Default allow LAN rule fölé kell a Léna-szabályokat húzni — különben az első illeszkedő rule mindent átenged.
- n8n mint HTTP proxy az OPNsense és az iOS között: elegáns megoldás self-signed cert problémára, és loggolást is ad ingyen. Ha már úgyis fut a minipc, mehet rajta egy n8n is ;-)
Ha hasonlót terveznél a saját otthonodon, szívesen segítek. Írj rám — otthonkapocs.hu/kapcsolat