Emri i zinxhirit nuk është grep: iptables kundrejt nftables
Një zinxhir është një enë; grepi vendos nëse kerneli e konsulton. Krahasoni zinxhirët e integruar të iptables me zinxhirët bazë të nftables përpara se të ndryshoni rregullat.
Të dy firewall-et mund të filtrojnë trafikun VPN të përcjellë, dhe i lidhin rregullat me rrugën e paketës në mënyra të ndryshme. iptables ka zinxhirë të integruar brenda një tabele, prandaj FORWARD ekziston si pikë grepi me emër. nftables e ndan emrin e zinxhirit nga tipi, grepi dhe përparësia e tij, që do të thotë se një zinxhir i zakonshëm i quajtur FORWARD nuk filtron asgjë. Krahasimi i dy modeleve shpjegon pse një zë që duket i saktë në një mjet nuk ka asnjë efekt në tjetrin.
Një zinxhir është një enë. Nëse kerneli e konsulton varet nga zbatimi dhe nga mënyra se si grupi i rregullave e lidh.
Dy modele, dy lidhje të ndryshme
Në iptables tabela filter vjen me tre zinxhirë të integruar, INPUT, FORWARD dhe OUTPUT, dhe -N krijon një zinxhir të përcaktuar nga përdoruesi që vepron vetëm kur kërcehet mbi të nga njëri prej tyre. Manuali i nftables përkundrazi përcakton zinxhirë bazë, të cilët deklarojnë tipin, grepin dhe përparësinë, dhe zinxhirë të zakonshëm, të cilët nuk e bëjnë këtë. Një zinxhir bazë mund të mbajë çdo emër, dhe një zinxhir i zakonshëm i quajtur FORWARD nuk fiton asnjë veti nga etiketa e tij. Ky është i gjithë ndryshimi, dhe është i padukshëm në një tutorial që tregon vetëm tekstin e rregullave.
Shtresat e prapme të përputhshmërisë shtojnë një arsye të dytë për të mos nxjerre sjelljen nga emri i një komande. Dokumentacioni i iptables vëren veprime që ndryshojnë nën iptables-nft, prandaj trajtojeni nftables vendas, iptables-nft dhe një grup rregullash të vjetër si tre sisteme dhe jo si tre shkrime të njërit.
Lexojeni gabimin në kontekstin e tij të vërtetë
Një tabelë që mungon, një dështim leje, një mundësi kerneli e padisponueshme dhe një zinxhir i quajtur që mungon janë katër gjetje të ndryshme, dhe vetëm njëra ka të bëjë me zinxhirin. Shënoni versionin e mjetit, familjen e adresave dhe tabelën e kërkuar, hapësirën e emrave të rrjetit dhe gabimin e parë të saktë. Pastaj kontrolloni cili komponent zotëron grupin e rregullave: një shërbim firewall ose një portë e menaxhuar nga produkti mund të gjenerojë zinxhirë dhe rendin e vet. Shtimi i një zinxhiri vendas pranë tyre e lë politikën e menaxhuar të paprekur dhe inventarin më konfuz.
Hapësira e emrave e një kontejneri mund të mbajë një grup rregullash të ndryshëm nga ai i strehuesit, prandaj një komandë e ekzekutuar në kontekstin e gabuar nuk mund të tregojë cili zinxhir e pa paketën e përcjellë. Ngritja e privilegjeve sepse një zinxhir i pritur nuk dukej nuk është diagnozë.
Numëruesit vërtetojnë arritjen, jo verdiktin
Numëruesit e rregullave ju thonë se një rregull u arrit. Nuk ju thonë se një rregull i mëvonshëm e lejoi veprimin, dhe nuk vërtetojnë se çdo rrugë alternative u refuzua. Lexojini gjatë një fluksi të vetëm të autorizuar dhe të padëmshëm, së bashku me rendin e rregullave dhe lidhjen e zinxhirit, dhe trajtojini si një vëzhgim dhe jo si verdikt. Një numërues jo zero në një rregull drop do të thotë që trafiku e goditi; nuk thotë asgjë për trafikun që nuk e goditi.
Përcjellja IP e kernelit është një cilësim plotësisht i veçantë. Ekzistenca e një zinxhiri nuk e aktivizon përcjelljen, dhe mungesa e një etikete të njohur nuk do të thotë që përcjellja u ndal.
Përshkruani fluksin që dëshironi të mbroni
Shkruani një kërkesë klienti pas dekapsulimit: burimin, destinacionin, familjen e adresave dhe nëse përfundon në portë ose kalon përmes saj. Hyrja e shërbimit lokal dhe trafiku i përcjellë vëzhgohen në pika të ndryshme, prandaj kërkojnë rregulla dhe prova të ndryshme. Për një VPN me urë, verifikoni edhe rrugën e urës, sepse një zinxhir në nivel IP nuk i kontrollon automatikisht kornizat Ethernet.
Ruani akses të pavarur rikuperimi përpara se të ndryshoni një portë të largët. Pastaj konfirmoni fluksin e synuar dhe refuzimet e nevojshme nën të njëjtin grup rregullash. Një zinxhir i ri bosh me emër të njohur nuk është riparim.
Krahasimi përfundon në një pyetje: cilin grep thërret kerneli në të vërtetë për këtë paketë? Përgjigjuni asaj, dhe emri i zinxhirit nuk ka më rëndësi.