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:

lena_net_shortcut.jpg 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:

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:

  1. PASS — ha lena_bypass nem üres, ezek az IP-k átmennek (schedule nélkül, mindig)
  2. BLOCK — ha lena_manual_blokk nem üres, ezek blokkolva (napközbeni kézi tiltás)
  3. BLOCK — lena_eszkozok, ejszakai_blokk schedule-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.

opnsense_firewall_rules.jpg 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 webhookMit csinál
Blokk BE/webhook/lena-manual-onHozzáadja a 3 IP-t lena_manual_blokk-hoz
Blokk KI/webhook/lena-manual-offTörli a 3 IP-t lena_manual_blokk-ból
Éjszakai bypass/webhook/lena-bypass-onHozzáadja a 3 IP-t lena_bypass-hoz
Mindent vissza/webhook/lena-bypass-offTörli mindkét aliasból az összes IP-t

n8n_lena_workflow.jpg 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:

Ha te is OPNsense-t építesz:


Ha hasonlót terveznél a saját otthonodon, szívesen segítek. Írj rám — otthonkapocs.hu/kapcsolat