Grandinės pavadinimas nėra kabliukas: iptables prieš nftables
Grandinė yra konteineris; kabliukas nusprendžia, ar branduolys ją tikrina. Palyginkite įtaisytąsias iptables grandines su nftables bazinėmis grandinėmis prieš redaguodami taisykles.
Abi ugniasienės gali filtruoti perduodamą VPN srautą, o taisykles prie paketo kelio jos prijungia skirtingai. iptables turi įtaisytąsias grandines lentelės viduje, todėl FORWARD egzistuoja kaip pavadintas kabliuko taškas. nftables atskiria grandinės pavadinimą nuo jos tipo, kabliuko ir prioriteto, o tai reiškia, kad įprasta grandinė pavadinimu FORWARD nieko nefiltruoja. Dviejų modelių palyginimas paaiškina, kodėl viename įrankyje teisingai atrodantis įrašas kitame neturi jokio poveikio.
Grandinė yra konteineris. Ar branduolys ją tikrina, priklauso nuo įgyvendinimo ir nuo to, kaip taisyklių rinkinys ją prijungia.
Du modeliai, du skirtingi prijungimai
iptables filtro lentelėje yra trys įtaisytosios grandinės, INPUT, FORWARD ir OUTPUT, o -N sukuria vartotojo apibrėžtą grandinę, kuri veikia tik tada, kai į ją peršokama iš vienos iš jų. nftables vadove vietoj to apibrėžiamos bazinės grandinės, kurios deklaruoja savo tipą, kabliuką ir prioritetą, ir įprastos grandinės, kurios to nedaro. Bazinė grandinė gali turėti bet kokį pavadinimą, o įprasta grandinė pavadinimu FORWARD negauna jokių savybių iš savo etiketės. Tai ir yra visas skirtumas, ir jis nematomas vadove, kuriame rodomas tik taisyklių tekstas.
Suderinamumo programinės dalys prideda antrą priežastį nespręsti apie elgseną pagal komandos pavadinimą. iptables dokumentacija nurodo operacijas, kurios skiriasi naudojant iptables-nft, todėl natūralų nftables, iptables-nft ir paveldėtą taisyklių rinkinį vertinkite kaip tris sistemas, o ne kaip tris vienos rašybos variantus.
Skaitykite klaidą jos tikrame kontekste
Trūkstama lentelė, leidimų klaida, nepasiekiama branduolio funkcija ir trūkstama pavadinta grandinė yra keturi skirtingi radiniai, ir tik vienas jų susijęs su grandine. Užrašykite įrankio versiją, prašomą adresų šeimą ir lentelę, tinklo vardų erdvę ir pirmą tikslią klaidą. Tada patikrinkite, kuri komponentė valdo taisyklių rinkinį: ugniasienės tarnyba ar produkto valdoma šliuzas gali generuoti savo grandines ir tvarką. Pridėjus natūralią grandinę šalia jų, valdoma politika lieka nepakeista, o inventorius darosi painesnis.
Konteinerio vardų erdvė gali turėti kitokį taisyklių rinkinį nei pagrindinė sistema, todėl neteisingame kontekste paleista komanda negali parodyti, kuri grandinė matė perduotą paketą. Teisių didinimas dėl to, kad laukiama grandinė nebuvo matoma, nėra diagnozė.
Skaitikliai įrodo pasiekimą, ne nuosprendį
Taisyklių skaitikliai pasako, kad taisyklė buvo pasiekta. Jie nepasako, kad vėlesnė taisyklė leido operaciją, ir neįrodo, kad kiekvienas alternatyvus kelias buvo atmestas. Skaitykite juos vieno nekenksmingo leisto srauto metu, kartu su taisyklių tvarka ir grandinės prijungimu, ir vertinkite juos kaip vieną stebėjimą, o ne nuosprendį. Nenulinis skaitiklis drop taisyklėje reiškia, kad srautas į ją pataikė; jis nieko nesako apie srautą, kuris nepataikė.
Branduolio IP peradresavimas yra visiškai atskiras nustatymas. Grandinės buvimas neįjungia peradresavimo, o žinomos etiketės nebuvimas nereiškia, kad peradresavimas sustojo.
Aprašykite srautą, kurį norite apsaugoti
Užrašykite vieną kliento užklausą po dekapsuliavimo: jos šaltinį, paskirties vietą, adresų šeimą ir tai, ar ji baigiasi prie šliuzo, ar eina per jį. Vietinės tarnybos įvestis ir perduodamas srautas stebimi skirtinguose taškuose, todėl jiems reikia skirtingų taisyklių ir skirtingų bandymų. Sujungtam VPN patikrinkite ir tilto kelią, nes IP lygio grandinė automatiškai nekontroliuoja Ethernet kadrų.
Prieš keisdami nuotolinį šliuzą išsaugokite nepriklausomą atkūrimo prieigą. Tada patvirtinkite numatytą srautą ir reikiamus atmetimus pagal tą patį taisyklių rinkinį. Nauja tuščia grandinė su žinomu pavadinimu nėra taisymas.
Palyginimas baigiasi vienu klausimu: kurį kabliuką branduolys iš tikrųjų kviečia šiam paketui? Atsakykite į tai, ir grandinės pavadinimas nustoja turėti reikšmės.