Տեղադրեք թույլտվության կանոնը սխալ տեղում, և այն իրեն պահում է այնպես, կարծես ընդհանրապես կանոն չկա։ nftables-ում insert-ի և add-ի միջև ընտրությունը որոշում է, թե հղված կանոնի որ կողմում կտեղավորվի նոր պնդումը, իսկ բռնակը անվանում է կանոնը կենդանի կանոնների հավաքածուում, ոչ թե նրա տողի համարը։ Եթե տեղադրումը սխալ է, փաթեթը նախ հասնում է մերժմանը։

Ստորև բերված համեմատությունը օգտագործում է մեկ ֆիքսված գործընկեր և մեկ արտաքին լսորդի փոխանակում։ Այն միտումնավոր նեղ է. ամբողջ շղթան փոխարինելը այլ փոփոխություն է՝ ռիսկի այլ պրոֆիլով։

Երկու տեղադրում, երկու տարբեր արդյունք

insert-ը կանոնը տեղադրում է հղված կանոնից առաջ։ add-ը տեղադրում է այն դրանից հետո։ Եթե հղված կանոնը հոսքի վերջնական մերժումն է, այս երկու հրամանները հակառակ արդյունքներ են տալիս, նույնիսկ երբ կանոնի տեքստը նույնն է։

Տեղը բաց թողնելն ունի իր լռելյայն վարքը, ինչը ևս մեկ պատճառ է ֆորումից հրաման չպատճենելու առանց կարդալու, թե ինչին է այն խարսխված։ Խարիսխը ողջ որոշումն է։ Գրեք նախատեսված կողմը նախքան հրամանը մուտքագրելը։ insert-ը և add-ը ֆայլում մեկ բառով են տարբերվում։

Տեղադրումը հարաբերական է կոնկրետ շղթայում գտնվող կանոնի նկատմամբ։ Նույն պնդումը այլ շղթա կամ այլ hook-առաջնահերթություն տեղափոխելը փոխում է, թե որ փաթեթներն է այն տեսնում, նույնիսկ երբ կանոնի շարահյուսությունը ճիշտ է թվում։

Բռնակը նույնականացնում է կանոն, ոչ թե տողի համար

42-ի նման բռնակը նույնացուցիչ է կանոնների հավաքածուի ընթացիկ վիճակում։ Այն քառասուներկրորդ կանոնը չէ և կայուն չէ հյուրերի, վերակառուցումների կամ իր կազմաձևը վերաբեռնող կառավարիչի միջև։

Նախքան խարիսխ ընտրելը գտեք շղթան և փաստացի վերջնական մերժումը։ Այնուհետև հաստատեք բռնակը այդ կանոնի վրա նույն ցանկում, որը ցույց է տալիս մերժումը, որպեսզի համարը և կանոնը միասին կարդացվեն։ Հին ցանկից կարդացված բռնակը կարող է արդեն պատկանել այլ կանոնի։ Կրկին կարդացեք այն նստաշրջանում, որը կկիրառի փոփոխությունը։

iptables --version
nft -a list ruleset

iptables-ի տարբերակը հայտնում է, թե որ backend-ն է օգտագործվում։ iptables-nft կանոնների հավաքածուն և ինքնուրույն կառավարվող բնիկ աղյուսակը կարող են գոյակցել, ուստի մեկ frontend-ից ստացված ցանկը ինքնաբերաբար զտման ամբողջական պատկերը չէ։ Նախքան շղթա ընտրելը ստուգեք երկու տեսքերը։

Գտեք շղթան և կանոնը, որն իսկապես մերժում է

Կարդացեք input hook-ը, շղթայի առաջնահերթությունը և այն կանոնը, որը մերժում է այս լսորդի հոսքը։ inet աղյուսակը կարող է կրել հասցեների երկու ընտանիքները, բայց առանձին կանոնը դեռ կարող է համապատասխանել միայն IPv4-ին։

Վերցրեք մեկ հաստատված գործընկեր՝ որպես օրինակ օգտագործելով փաստաթղթային տիրույթի 198.51.100.25-ը։ Վերանայված բնիկ ֆայլը կարող է արտաքին թույլտվություն տեղադրել 42 բռնակից առաջ:

insert rule inet filter input handle 42 iifname "eth0" ip saddr 198.51.100.25 udp dport { 500, 4500 } counter accept

Ստուգումից հետո փոխարինեք ընտանիքը, աղյուսակը, շղթան, բռնակը, մուտքային ինտերֆեյսը և գործընկերը։ Օրինակը օգտագործում է nft 1.0.9-ի համար փաստաթղթավորված բռնակ-տեղադրության ձևը, և այն պատկանում է մուտքային ֆայլին. փակագծերի չակերտումը առանձին հարց է, երբ հրամանը մուտքագրվում է ինտերակտիվ։

Կազմաձևի սեփականատերը պահեք հստակ։ Կառավարիչը, որը վերակառուցում է իր կանոնները, կարող է վերագրել գործարկման ժամանակի խմբագրումը, իսկ հնացած բռնակը կոշտ կոդավորող բեռնարկման սկրիպտը կամ կձախողվի, կամ կկցվի սխալ կանոնին։

Թույլտվությունը սահմանափակ է, մերժումը՝ վերջնական

Թույլտվության վճիռը ավարտում է գնահատումը իր ընթացիկ ուղու վրա, բայց ավելի ուշ կիրառելի բազային շղթան դեռ կարող է մերժել փաթեթը։ Մերժման վճիռը վերջնական է։ Ահա թե ինչու աճող թույլտվությունների հաշվիչը հոսքի հաջողության ապացույց չէ։

Ուսումնասիրեք բոլոր համապատասխան hook-առաջնահերթությունները, այլ ոչ թե մեկ շղթա առանձին։ Փաթեթը կարող է անցնել input զտիչով և այնուամենայնիվ մերժվել այլ աղյուսակի hook-ի կողմից այլ առաջնահերթությամբ։ Թվարկեք յուրաքանչյուր բազային շղթա, որը կարող է տեսնել հոսքը։

Այդ կանոնը ծածկում է միայն արտաքին լսորդի փոխանակումը։ Տրանսպորտային փաթեթավորված ESP-ն, բնիկ ESP-ն, IPv6 գործընկերները և թունելի ներսում վերծանված երթևեկությունը բոլորն ունեն իրենց քաղաքականության կարիքը։ Սա կայքի VPN-ի ամբողջական հրապատ չէ։

Ստուգեք ֆայլը, ապա հաստատեք կենդանի արդյունքը

Նախքան կիրառելը վերանայված ֆայլի վրա գործարկեք շարահյուսության և գործարքի ստուգում։ Ստուգման ռեժիմը հայտնում է, թե արդյոք nft-ն կարող է վերլուծել և նախապատրաստել փոփոխությունը. այն չի կիրառում այն և չի ապացուցում, որ մեկ այլ hook կթույլատրի փաթեթը։ Ֆայլը մնում է առաջարկ, քանի դեռ սեփականատերը չի կիրառել այն:

nft -c -f reviewed-vpn-rule.nft

Կիրառեք սեփականատիրոջ վերահսկվող գործընթացով և պահպանեք վերականգնման հասանելիությունը։ Եթե կանոնը սխալ է, մերժումը, որին փորձում էիք նախորդել, կարող է կտրել նաև այն ուղին, որն օգտագործում եք այն շտկելու համար։

Փոփոխությունից հետո դիտեք թույլատրված գործընկերոջ նոր փորձ և ստուգեք, որ հաստատված գործընկերոջից դուրս աղբյուրները դեռ մերժվում են։ Տեղափոխեք մշտական կանոնը այն կառավարիչ, որը տիրապետում է կանոնների հավաքածուն, որովհետև գործարկման ժամանակի բռնակները տեղորոշում են ընթացիկ օբյեկտները, ոչ թե նույնականացնում դրանք բեռնարկումների միջև։

Առնչվող հոդվածներ