Regulile de firewall doar pentru NEW nu închid toate căile WAN
Respingerea conexiunilor NEW lasă neatinse fluxurile stabilite și răspunsurile. Citiți starea conntrack, ordinea regulilor și excepțiile înainte de a numi o politică închisă.
Respingerea noilor conexiuni de ieșire pe WAN pare o politică ce se închide la eșec, dar este o promisiune mai îngustă decât pare. Pachetele care aparțin unor fluxuri deja existente nu se potrivesc cu ea, și nici multe răspunsuri. Acest gol este ușor de ratat pentru că regula se citește ca și cum ar acoperi interfața și nu o singură stare de conexiune pe ea. Iar citirea potrivirii de stare ca verdicat este ceea ce produce o senzație falsă de închidere.
Starea este o condiție de potrivire, nu un verdicat
Urmărirea conexiunilor clasifică pachetele după ce a văzut deja firewallul, nu după ce crede aplicația. Un flux observat în ambele direcții este stabilit, iar pachetele sale ulterioare rămân stabilite chiar și când ruta de dedesubt se schimbă dintr-un tunel în legătura obișnuită de ieșire. Și răspunsul la o conexiune de intrare poate fi trafic stabilit. Acele pachete nu mai devin niciodată noi.
De aceea o regulă limitată la conexiunile noi nu poate demonstra că fiecare pachet protejat este blocat. Lasă celelalte stări în seama a ceea ce face restul setului de reguli cu ele, iar aceasta poate fi o acceptare plasată mai devreme în lanț.
Citiți regula în contextul ei
O acceptare largă pentru traficul stabilit și înrudit plasată înaintea blocării lasă un pachet să treacă înainte ca blocarea să fie evaluată. Eliminarea condiției de stare dintr-o regulă ulterioară nu va schimba asta, pentru că evaluarea nu ajunge niciodată acolo. Ordinea decide rezultatul, iar potrivirea de stare decide care pachete ajung la acea ordine.
Inspectați setul efectiv de reguli, nu fișierul pe care l-ați editat, inclusiv salturile în alte lanțuri și tot ce generează platforma. Pe un router administrat cu iptables, listarea lanțului arată definițiile regulilor, iar lanțurile la care face referire trebuie urmărite și ele. Un sistem nativ nftables necesită examinarea propriului set de reguli și a priorităților cârligelor, deoarece firmware-ul generează rar lanțuri identice.
Contoarele spun care regulă a potrivit efectiv, și de obicei sunt mai informative decât o captură de pachete făcută după decizie. O regulă cu contor zero nu a fost atinsă, orice ar sugera poziția ei.
Exprimați interdicția independent de stare
Dacă un grup de clienți nu trebuie să ajungă niciodată la internet în afara tunelului, spuneți-o direct în loc să o aproximați cu o singură stare. Regula trebuie să selecteze după sursă, ieșire și destinație fără să depindă de starea conexiunii și trebuie să stea acolo unde nicio acceptare anterioară nu o poate ocoli. Atunci accesul de administrare și excepțiile pentru rețeaua locală primesc propriile reguli explicite, astfel încât intenția este vizibilă în politică.
Alegerea reject în loc de drop schimbă felul în care eșuează traficul potrivit și nu lărgește setul de pachete pe care regula îl selectează. O conexiune refuzată și un timeout tăcut sunt simptome diferite care indică aceeași selecție.
O politică ce permite deliberat răspunsuri la acces inițiat de la distanță prin WAN este apărabilă. Trebuie doar descrisă astfel în loc să fie prezentată ca izolare totală numai prin tunel.
Verificați cine este de fapt în grup
Exemplul acoperă trafic IPv4 redirecționat dintr-un prefix pe o interfață. Nu spune nimic despre IPv6, despre o a doua legătură de ieșire sau despre traficul pe care routerul însuși îl originează. Un router care acționează ca resolver DNS își trimite propriile interogări în amonte, iar acestea nu trec deloc prin lanțul forward.
Confirmați că acei clienți protejați mai au adrese în prefixul ales, pentru că un dispozitiv care a ieșit din el este direct din întâmplare și nu din politică. Extinderea blocării la întregul LAN fără a revizui proiectarea excepțiilor tinde de asemenea să elimine propria cale administrativă.
iptables -S FORWARD
iptables -L FORWARD -v -n
cat /proc/net/nf_conntrack | grep -c ESTABLISHED
Apoi încercați un flux vechi lângă unul nou. O încercare de conexiune nouă și un transfer bidirecțional deja activ se comportă diferit sub această regulă, și doar testarea ambelor arată ce politică aveți de fapt.