Նպատակը խելամիտ է․ այս մեքենայի ծառայություններին պետք է հասնեն միայն թունելի օգտատերերը։ Այն լուծումը, որին դիմում են, IPv6 մուտքային շղթա է, որը գցում է ամեն ինչ բացի WireGuard-ից, և դրանով գցում է նաև այն երթևեկությունը, որը հոսթը պահում է իր իսկ կապուղուն միացված։ Հարևանների հայտնաբերումն ու ուղու պահպանման հաղորդագրությունները ծառայության հասանելիություն չեն, և դրանց հեռացումը ստեղծում է անհասանելի մեքենա՝ ձեր քաղաքականությանը չառնչվող պատճառներով։ Թունելը բարձրանում է, ծառայությունները ճիշտ սահմանափակված են, և կապուղու վրա էլ ոչինչ չի աշխատում։

Երեք պատասխանատվություն, մեկ կանոնների հավաքածու

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

Սրանք երեք տարբեր քաղաքականություններ են, և միայն երկրորդն ու երրորդն են VPN-ի մասին։ Կանոնների հավաքածուն, որը դրանք մեկն է համարում, ժառանգում է ձախողման եղանակ, երբ հավելվածի սահմանի խստացումը լուռ կոտրում է հոսթի միացվածությունը։

Պահեք դրանք առանձին շղթաներում կամ գոնե առանձին մեկնաբանություններում, որպեսզի հաջորդ մարդը տեսնի, թե որ տողն ինչի համար է։

Ինչ է անում ICMPv6-ը հոսթի համար

IPv6-ը շատ ավելի շատ բաների համար է ապավինում ICMPv6-ին, քան արձագանքը։ Հարևանի հարցումն ու հայտարարությունը փոխարինում են ARP-ին և անհրաժեշտ են տեղական առաքման համար։ Packet Too Big-ը կրում է ուղու MTU-ի տեղեկատվությունը, և դրա անտեսումը ստեղծում է փոխանցումներ, որոնք կանգ են առնում մեծ փաթեթների վրա։ Երթուղիչի հայտարարությունները կրում են լռելյայն երթուղին և նախածանցի տեղեկատվությունը, երբ կապուղին օգտագործում է ավտոմատ կարգավորում։

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

Գործնական կանոնն այն է՝ թույլատրել էական սխալի և կարգավորման հաղորդագրությունները այն ինտերֆեյսում, որն իրենց կարիքն ունի՝ սահմանափակված ըստ տեսակի և աղբյուրի այնտեղ, որտեղ հարթակը թույլ է տալիս, և հստակ որոշում կայացնել մնացածի մասին։

Այս ամենը փոխարինել ընդհանուր ICMPv6 թույլտվությամբ լուծում է հասանելիության խնդիրը և հրաժարվում զտումից։ Այն փոխարինել ընդհանուր գցմամբ լուծում է զտման խնդիրը և հրաժարվում հոսթից։

Նախ ընդունեք թունելը, հետո՝ ծառայությունը

Ընդունեք WireGuard-ի տեղափոխումը նախատեսված արտաքին հասցեով և UDP պորտով, իսկ վերադարձի երթևեկությունը՝ միացումների հետևման միջոցով։ Այնուհետև թույլատրեք հավելվածային ծառայություններին անցնել թունելի ինտերֆեյսով՝ այն աղբյուրներից, որոնք իրոք լիազորում եք։

Արտաքին UDP պորտի թույլտվությունը չի լիազորում դրա ներսում եղած ապակոդավորված հարցումները։ Հենց այդ տարբերությունն է թունելի ինտերֆեյսի՝ ծառայության կանոններում հայտնվելու ամբողջ պատճառը։

Կարդացեք կանոնների հավաքածուն այնպես, ինչպես այն կա, ոչ թե ինչպես ֆայլը նկարագրում է:

sudo nft list ruleset
ip -6 addr show
ip -6 route show default

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

Փորձարկեք կապուղին, ոչ միայն թունելը

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

Ստուգեք միացվածությունը ուղղակիորեն, ապա ստուգեք, որ բացառված ուղին դեռ ձախողվում է․

ip -6 neigh show
ping -6 -c 3 2001:db8:1::1
sudo nft -c -f /etc/nftables.conf

Վերագործարկումից հետո ամբողջական մնացող հարևանների աղյուսակը նշան է, որ հայտնաբերումը դեռ աշխատում է։ Դատարկվող և երբեք չլցվող աղյուսակը նշան է, որ դուք զտել եք այն։ Երրորդ հրամանը վավերացնում է կանոնների հավաքածուի շարահյուսությունը՝ առանց կիրառելու, ինչը արժե անել, քանի դեռ սեսիա ունեք։

Վերականգնեք հոսթը, որից ինքներդ ձեզ կողպել եք դուրս

Նախքան ձեր սեփական վարչական սեսիան կրող ֆայրվոլի կանոնները փոխելը, պահեք երկրորդ ուղին՝ կոնսոլ, սերիական միացում կամ պլանավորված հետշրջում, որը հեռացնում է նոր կանոնները, եթե չեղարկեք այն։

Եթե փոփոխությունը իսկապես կողպի ձեզ դուրս, վերականգնումը այդ ուղիով է, ոչ թե այն ցանցով, որը հենց նոր հեռացրիք։ Վերականգնեք նախորդ կանոնների հավաքածուն պահված պատճենից, հաստատեք, որ հոսթը նորից հասանելի է, և միայն դրանից հետո կիրառեք նախատեսված քաղաքականությունը ավելի փոքր մասերով։

Վերջնական քաղաքականությունը համընդհանուր չէ։ Հասցեավորումը, երթուղումը և ֆայրվոլի իրականացումը տեղակայման մուտքեր են, բայց սահմանը ամենուր նույնն է․ մերժեք չնախատեսված հավելվածային հասանելիությունը՝ պահպանելով վերահսկիչ երթևեկությունը, որը կրում է լիազորված թունելը։

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