Ime lanca nije kuka: iptables nasuprot nftables
Lanac je spremnik; kuka odlučuje da li ga jezgra pregleda. Uporedite ugrađene lance u iptables s osnovnim lancima u nftables prije nego što uredite pravila.
Oba firewall-a mogu filtrirati proslijeđeni VPN saobraćaj, a pravila pričvršćuju na putanju paketa na različite načine. iptables ima ugrađene lance unutar tabele, pa FORWARD postoji kao imenovana tačka kuke. nftables odvaja ime lanca od njegovog tipa, kuke i prioriteta, što znači da običan lanac pod imenom FORWARD ne filtrira baš ništa. Poređenje dva modela objašnjava zašto unos koji izgleda ispravno u jednom alatu nema efekta u drugom.
Lanac je spremnik. Da li ga jezgra pregleda zavisi od implementacije i od toga kako ga skup pravila pričvršćuje.
Dva modela, dva različita pričvršćivanja
U iptables-u tabela filter isporučuje tri ugrađena lanca, INPUT, FORWARD i OUTPUT, a -N stvara lanac koji definiše korisnik i koji djeluje samo kada se na njega skoči iz nekog od njih. Priručnik nftables-a umjesto toga definiše osnovne lance, koji objavljuju svoj tip, kuku i prioritet, i obične lance, koji to ne čine. Osnovni lanac može nositi koje god ime želite, a običan lanac imena FORWARD ne dobija nikakva svojstva od svoje oznake. To je cijela razlika i ona je nevidljiva u tutorijalu koji prikazuje samo tekst pravila.
Kompatibilni pozadinski slojevi dodaju drugi razlog da se ponašanje ne zaključuje iz imena komande. Dokumentacija iptables-a navodi operacije koje se razlikuju pod iptables-nft, pa tretirajte izvorni nftables, iptables-nft i stari skup pravila kao tri sistema, a ne kao tri pravopisa jednog.
Čitajte grešku u njenom stvarnom kontekstu
Tabela koja nedostaje, neuspjeh dozvole, nedostupna mogućnost jezgre i imenovani lanac koji nedostaje četiri su različita nalaza, a samo jedan se tiče lanca. Zapišite verziju alata, zatražene porodicu adresa i tabelu, mrežni prostor imena i prvu tačnu grešku. Zatim provjerite koji komponent ima skup pravila: servis firewall-a ili mrežni prolaz kojim upravlja proizvod može generisati vlastite lance i redoslijed. Dodavanje izvornog lanca pored njih ostavlja upravljanu politiku netaknutom, a inventar zbunjuje još više.
Prostor imena kontejnera može držati drugačiji skup pravila od hosta, pa komanda pokrenuta u pogrešnom kontekstu ne može pokazati koji je lanac vidio proslijeđeni paket. Podizanje privilegija zato što očekivani lanac nije bio vidljiv nije dijagnoza.
Brojači dokazuju doseg, ne presudu
Brojači pravila vam kažu da je pravilo dosegnuto. Ne kažu vam da je kasnije pravilo dozvolilo radnju, niti dokazuju da je svaka alternativna putanja odbijena. Čitajte ih tokom jednog bezopasnog odobrenog toka, uz redoslijed pravila i pričvršćenost lanca, i tretirajte ih kao jedno opažanje, a ne presudu. Brojač različit od nule na pravilu odbacivanja znači da je saobraćaj udario u njega; to ne govori ništa o saobraćaju koji nije.
IP prosljeđivanje u jezgri je potpuno odvojena postavka. Postojanje lanca ne uključuje prosljeđivanje, a odsustvo poznate oznake ne znači da je prosljeđivanje prestalo.
Opišite tok koji namjeravate zaštititi
Zapišite jedan zahtjev klijenta nakon dekapsulacije: njegov izvor, odredište, porodicu adresa i to da li se završava na mrežnom prolazu ili prolazi kroz njega. Ulaz lokalnog servisa i proslijeđeni saobraćaj posmatraju se na različitim tačkama, pa im trebaju različita pravila i različiti testovi. Za VPN preko mosta provjerite i putanju mosta, jer lanac na IP nivou ne kontroliše automatski Ethernet okvire.
Sačuvajte neovisan pristup za oporavak prije promjene udaljenog prolaza. Zatim potvrdite namjeravani tok i potrebna odbijanja u istom skupu pravila. Novi prazan lanac s poznatim imenom nije popravka.
Poređenje se završava jednim pitanjem: koju kuku jezgra zaista poziva za ovaj paket? Odgovorite na to i ime lanca prestaje biti važno.