Het weigeren van nieuwe uitgaande verbindingen op de WAN lijkt op een beleid dat bij falen sluit, maar het is een smaller belofte dan het lijkt. Pakketten die bij al bestaande stromen horen, passen er niet op, en veel antwoorden ook niet. Deze leemte is makkelijk te missen omdat de regel wordt gelezen alsof die de interface dekt en niet één verbindingsstatus daarop. En de statusmatch als vonnis lezen is precies wat een vals gevoel van geslotenheid geeft.

Status is een matchvoorwaarde, geen vonnis

Verbindingsregistratie classificeert pakketten op basis van wat de firewall al heeft gezien, niet op basis van wat de applicatie gelooft. Een stroom die in beide richtingen wordt waargenomen, is gevestigd, en de latere pakketten blijven gevestigd zelfs wanneer de route eronder van een tunnel naar de gewone uplink verandert. Ook het antwoord op een inkomende verbinding kan gevestigd verkeer zijn. Die pakketten worden nooit meer nieuw.

Daarom kan een regel die alleen op nieuwe verbindingen is gericht niet aantonen dat elk beschermd pakket wordt geblokkeerd. Hij laat de andere statussen over aan wat de rest van de regelset ermee doet, en dat kan een toelating zijn die eerder in de keten staat.

Lees de regel in zijn omgeving

Een brede toelating voor gevestigd en gerelateerd verkeer vóór de blokkering laat een pakket door voordat de blokkering ooit wordt geëvalueerd. De statusvoorwaarde uit een latere regel verwijderen verandert dat niet, omdat de evaluatie die nooit bereikt. De volgorde bepaalt de uitkomst, en de statusmatch bepaalt welke pakketten die volgorde bereiken.

Inspecteer de effectieve regelset in plaats van het bestand dat je hebt bewerkt, inclusief sprongen naar andere ketens en alles wat het platform genereert. Op een door iptables beheerde router toont het tonen van de keten de regeldefinities, en de ketens waarnaar die verwijst moeten ook worden gevolgd. Een native nftables-systeem vereist onderzoek van zijn eigen regelset en hookprioriteiten, omdat firmware zelden identieke ketens genereert.

Tellers laten zien welke regel daadwerkelijk matchte, en ze zijn meestal informatiever dan een pakketopname die na de beslissing is gemaakt. Een regel met teller nul is niet bereikt, wat de positie ook suggereert.

Druk het verbod onafhankelijk van status uit

Als een groep clients nooit buiten de tunnel het internet mag bereiken, zeg dat dan direct in plaats van het met één status te benaderen. De regel moet selecteren op bron, uitgang en bestemming zonder van verbindingsstatus afhankelijk te zijn, en hij moet staan waar geen eerdere toelating hem kan omzeilen. Dan krijgen beheerstoegang en uitzonderingen voor het lokale netwerk hun eigen expliciete regels, zodat de bedoeling zichtbaar is in het beleid.

Reject in plaats van drop kiezen verandert hoe het gematchte verkeer faalt, en het vergroot niet de set pakketten die de regel selecteert. Een geweigerde verbinding en een stille time-out zijn verschillende symptomen die op dezelfde selectie wijzen.

Een beleid dat bewust antwoorden toestaat op toegang die op afstand via de WAN is gestart, is verdedigbaar. Het moet alleen zo worden beschreven in plaats van te worden gepresenteerd als volledige isolatie via alleen de tunnel.

Controleer wie er echt in de groep zit

Het voorbeeld dekt doorgestuurd IPv4-verkeer van één prefix uit één interface. Het zegt niets over IPv6, een tweede uplink of verkeer dat de router zelf start. Een router die als DNS-resolver werkt, stuurt zijn eigen upstream-query's, en die gaan helemaal niet door de forward-keten.

Bevestig dat de beschermde clients nog steeds adressen binnen het gekozen prefix hebben, want een apparaat dat erbuiten is geraakt, is per ongeluk direct en niet volgens beleid. De blokkering uitbreiden naar het hele LAN zonder het uitzonderingsontwerp te herzien haalt ook vaak je eigen beheerroute weg.

iptables -S FORWARD
iptables -L FORWARD -v -n
cat /proc/net/nf_conntrack | grep -c ESTABLISHED

Test daarna een oude stroom naast een nieuwe. Een verse verbindingspoging en een al actieve tweerichtingsoverdracht gedragen zich anders onder deze regel, en alleen beide testen laat zien welk beleid je echt hebt.

Gerelateerde artikelen