Firewall-reëls wat net NEW toelaat, sluit nie elke WAN-pad nie
Om NEW-verbindings te verwerp laat gevestigde strome en antwoorde ongemoeid. Lees conntrack-toestand, reëlvolgorde en die uitsonderings voordat jy ’n beleid as gesluit beskryf.
Om nuwe uitgaande verbindings op die WAN te verwerp, lyk soos ’n beleid wat alles toemaak, maar dit is ’n smaller belofte as wat dit blyk te wees. Pakkette van strome wat reeds bestaan, pas nie daarby nie, en baie antwoorde ook nie. Die gaping is maklik om mis te kyk, want die reël lees asof dit die koppelvlak dek eerder as een verbindingstoestand daarop. Om die toestandpassing as ’n uitspraak te lees, skep ’n valse gevoel dat alles toegemaak is.
Toestand is ’n passingvoorwaarde, nie ’n uitspraak nie
Verbindingsnasporing klassifiseer pakkette volgens wat die firewall reeds gesien het, nie volgens wat die toepassing glo nie. ’n Stroom wat in beide rigtings waargeneem is, is gevestig, en sy latere pakkette bly gevestig selfs wanneer die roete onder dit van ’n tonnel na die gewone opstuurverbinding verander. ’n Antwoord op ’n inkomende verbinding kan ook gevestigde verkeer wees. Daardie pakkette word nooit weer nuut nie.
Dit is waarom ’n reël wat net op nuwe verbindings gemik is, nie kan vasstel dat elke beskermde pakket geblokkeer word nie. Dit laat die ander toestande aan wat die reëlversameling ook al daarmee doen, wat ’n aanvaarding kan wees wat vroeër in die ketting geplaas is.
Lees die reël in sy omgewing
’n Breë aanvaarding vir gevestigde en verwante verkeer wat voor die blok geplaas is, laat ’n pakket deur voordat die blok ooit geëvalueer word. Om die toestandvoorwaarde uit ’n latere reël te verwyder, sal dit nie verander nie, want evaluering bereik dit nooit. Orde bepaal die uitkoms, en die toestandpassing bepaal watter pakkette die betrokke orde bereik.
Ondersoek die effektiewe reëlversameling eerder as die lêer wat jy geredigeer het, insluitend spronge na ander kettings en enigiets wat die platform genereer. Op ’n iptables-bestuurde router wys die lys van die ketting die reëldefinisies, en die kettings waarna dit verwys, moet ook gevolg word. ’n Inheemse nftables-stelsel vereis dat sy eie reëlversameling en haakprioriteite ondersoek word, want firmware genereer selde identiese kettings.
Tellers wys watter reël werklik gepas het, en hulle is gewoonlik meer insiggewend as ’n pakketvaslegging wat ná die besluit geneem is. ’n Reël met ’n teller van nul is nie bereik nie, wat sy posisie ook al suggereer.
Druk die verbod onafhanklik van toestand uit
As ’n groep kliënte nooit die internet buite die tonnel mag bereik nie, sê dit direk eerder as om dit met een toestand te benader. Die reël moet op bron, uitgang en bestemming kies sonder om van verbindingstoestand afhanklik te wees, en dit moet sit waar geen vroeëre aanvaarding dit kan omseil nie. Bestuurstoegang en uitsonderings vir die plaaslike netwerk kry dan hul eie eksplisiete reëls, sodat die bedoeling in die beleid sigbaar is.
Om reject bo drop te kies, verander hoe die gepaste verkeer misluk, en dit vergroot nie die stel pakkette wat die reël kies nie. ’n Verbinding wat geweier word en ’n stil tydsverloop is verskillende simptome wat na dieselfde keuse wys.
’n Beleid wat doelbewus antwoorde op afstand-geïnisieerde toegang oor die WAN toelaat, is verdedigbaar. Dit moet net so beskryf word eerder as om dit as totale isolasie slegs deur die tonnel voor te stel.
Kyk wie werklik binne die groep is
Die voorbeeld dek geforwarde IPv4-verkeer van een voorvoegsel uit een koppelvlak. Dit sê niks oor IPv6, ’n tweede opstuurverbinding, of verkeer wat die router self begin nie. ’n Router wat as DNS-resolveerder optree, stuur sy eie opstroom-navrae, en dié gaan glad nie deur die forward-ketting nie.
Bevestig dat die beskermde kliënte steeds adresse binne die gekose voorvoegsel het, want ’n toestel wat daaruit beweeg het, is per ongeluk direk eerder as per beleid. Om die blok na die hele LAN te verbreed sonder om die uitsonderingontwerp na te gaan, neig ook om jou eie administratiewe pad te verwyder.
iptables -S FORWARD
iptables -L FORWARD -v -n
cat /proc/net/nf_conntrack | grep -c ESTABLISHED
Toets dan ’n ou stroom langs ’n nuwe een. ’n Vars verbindingspoging en ’n reeds aktiewe tweerigting-oordrag gedra hulle anders onder hierdie reël, en net om albei te toets wys watter beleid jy werklik het.