Naziv lanca nije kuka: iptables prema nftables
Lanac je spremnik; kuka odlučuje hoće li ga jezgra pregledati. Usporedite ugrađene lance iptablesa s osnovnim lancima nftablesa prije uređivanja pravila.
Oba vatrozida mogu filtrirati proslijeđeni VPN promet, a pravila na put paketa pričvršćuju na različite načine. iptables ima ugrađene lance unutar tablice, pa FORWARD postoji kao imenovana točka kuke. nftables odvaja naziv lanca od njegova tipa, kuke i prioriteta, što znači da redoviti lanac nazvan FORWARD ne filtrira baš ništa. Usporedba dvaju modela objašnjava zašto unos koji izgleda ispravno u jednom alatu nema učinka u drugome.
Lanac je spremnik. Hoće li ga jezgra pregledati ovisi o implementaciji i o tome kako ga skup pravila pričvršćuje.
Dva modela, dva različita pričvršćenja
U iptablesu tablica filter dolazi s tri ugrađena lanca, INPUT, FORWARD i OUTPUT, a -N stvara korisnički definiran lanac koji djeluje samo kad se na njega skoči iz jednoga od njih. Priručnik nftablesa umjesto toga definira osnovne lance, koji deklariraju svoj tip, kuku i prioritet, te redovite lance, koji to ne čine. Osnovni lanac može nositi bilo koji naziv, a redoviti lanac nazvan FORWARD ne dobiva nikakva svojstva od svoje oznake. To je cijela razlika i ona je nevidljiva u vodiču koji prikazuje samo tekst pravila.
Kompatibilni pozadinski slojevi dodaju drugi razlog da se ponašanje ne zaključuje iz naziva naredbe. Dokumentacija iptablesa bilježi radnje koje se razlikuju pod iptables-nft, pa nativni nftables, iptables-nft i naslijeđeni skup pravila tretirajte kao tri sustava, a ne kao tri načina pisanja jednoga.
Pročitajte pogrešku u njezinu stvarnom kontekstu
Nedostajuća tablica, neuspjeh dopuštenja, nedostupna mogućnost jezgre i nedostajući imenovani lanac četiri su različita nalaza, a samo se jedan odnosi na lanac. Zabilježite verziju alata, obitelj adresa i zatraženu tablicu, mrežni prostor imena i prvu točnu pogrešku. Zatim provjerite koja komponenta posjeduje skup pravila: servis vatrozida ili produktom upravljani pristupnik mogu generirati vlastite lance i redoslijed. Dodavanje nativnog lanca uz njih ostavlja upravljana pravila nedirnutima, a popis zbunjujućim.
Prostor imena kontejnera može sadržavati skup pravila različit od onoga na hostu, pa naredba pokrenuta u pogrešnom kontekstu ne može pokazati koji je lanac vidio proslijeđeni paket. Podizanje ovlasti zato što očekivani lanac nije bio vidljiv nije dijagnoza.
Brojači dokazuju doseg, ne presudu
Brojači pravila govore da je pravilo dosegnuto. Ne govore da je kasnije pravilo dopustilo radnju i ne dokazuju da je svaki alternativni put odbijen. Čitajte ih tijekom jednog bezopasnog ovlaštenog toka, zajedno s redoslijedom pravila i pričvršćenjem lanca, i tretirajte ih kao jedno opažanje, a ne presudu. Brojač različit od nule na pravilu za odbacivanje znači da je promet na njega naišao; ne govori ništa o prometu koji nije.
IP prosljeđivanje u jezgri posve je zasebna postavka. Postojanje lanca ne omogućuje prosljeđivanje, a odsutnost poznate oznake ne znači da je prosljeđivanje stalo.
Opišite tok koji želite zaštititi
Zapišite jedan zahtjev klijenta nakon dekapsulacije: njegov izvor, odredište, obitelj adresa i završava li na pristupniku ili prolazi kroz njega. Ulaz lokalne usluge i proslijeđeni promet promatraju se na različitim mjestima, pa trebaju različita pravila i različite testove. Za premosni VPN provjerite i put preko premosnice, jer lanac na razini IP-a ne nadzire automatski Ethernet okvire.
Prije promjene udaljenog pristupnika sačuvajte neovisan pristup za oporavak. Zatim potvrdite namjeravani tok i potrebna odbijanja pod istim skupom pravila. Novi prazan lanac s poznatim nazivom nije popravak.
Usporedba završava jednim pitanjem: koju kuku jezgra doista poziva za ovaj paket? Odgovorite na to i naziv lanca prestaje biti važan.