Դուք հետևեցիք ստուգաթերթին՝ մերժել արտագնա երթևեկությունը, թույլատրել թունելը, ակտիվացնել ufw-ն։ Հետո հաճախորդը սպասում է ձեռքսեղմմանը և երբեք չի միանում, կամ միանում է ու ոչ մի էջ չի բեռնվում։ Երկու ձախողումներն էլ գալիս են նույն բացից։ Բացակայում է այն կանոնը, որը թունելին թույլ է տալիս գոյություն ունենալ, որովհետև թունելը այն ինտերֆեյսը չէ, որտեղից ձեր փաթեթները դուրս են գալիս։

Ինչու tun0-ի վրա թույլտվությունը սկզբում ոչնչի չի համապատասխանում

tun0-ն ստեղծում է հաճախորդը, երբ սեսիա արդեն գոյություն ունի։ Այն դատագրամները, որոնք կառուցում են այդ սեսիան, սովորական UDP փաթեթներ են՝ ուղղված մատակարարին 1194 պորտով, և դուրս են գալիս wlan0 կամ eth0-ով՝ ֆիզիկական աղբյուրի հասցեով։ allow out on tun0 համապատասխանում է միայն այն երթևեկին, որի ելքային ինտերֆեյսը tun0 է, ուստի ձեռքսեղմման ընթացքում այն ընդհանրապես ոչնչի չի համապատասխանում։

Դրեք default deny outgoing դրա վրա, և արտաքին փաթեթները դեն են նետվում նախքան ինտերֆեյսի ի հայտ գալը։ Հաճախորդը նորից փորձում է, ժամանակը սպառվում է և հայտնում TLS-ի կամ ձեռքսեղմման ձախողման մասին, ինչը մարդկանց ուղարկում է վկայագրերի ու MTU-ի մեջ փնտրելու, մինչդեռ հրապատը հանգիստ ուտում է կապը։ Այն կանոնը, որը պիտի զսպեր ձեր երթևեկությունը, խանգարում է այդ երթևեկության զսպմանը։

Ռեֆլեքսային ուղղումը արտահոսքը դարձնում է մշտական։ sudo ufw allow out on wlan0, կամ լռելյայնը նորից թույլտվության վերածելը, բարձրացնում է թունելը և թողնում մեքենան առանց անջատիչի. հաջորդ անգամ, երբ թունելն ընկնի, ամեն ինչ կշարունակվի ֆիզիկական ադապտերով։ Ես կորցրի մի կես օր հենց այդ զույգ փոփոխությունների վրա, մինչև հասկացա, թե որ փաթեթն եմ իրականում զտում։

Ինչ է պետք փաթեթների երկու հավաքածուներին

Ձեր երթևեկությունը երկու անգամ, երկու ձևով է անցնում հրապատով։ Ներքին փաթեթը թունելի հասցեից դուրս է գալիս tun0-ով։ Արտաքին փաթեթը ֆիզիկական հասցեից գնում է դեպի հասակակիցը, և դա է միակ բանը, որ երևում է լարի վրա։ Մեկ կանոն յուրաքանչյուր ձևի համար՝

sudo ufw allow out on tun0
sudo ufw allow out to 203.0.113.10 port 1194 proto udp
sudo ufw allow out to 203.0.113.10 port 443 proto tcp comment 'tcp fallback'

Փոխարինեք հասցեն ու պորտը ձեր սեփական պրոֆիլի համապատասխաններով։ WireGuard-ի հասակակիցները սովորաբար պատասխանում են 51820/udp-ով. TCP 443-ով գնացող OpenVPN պրոֆիլներին փոխարենը պետք է այդ պորտը։ Մանրամասները տարբեր են, ձևը՝ ոչ. երկու կանոններն էլ նեղ են, և միասին սահմանում են միակ նպատակակետերը, որոնց մեքենան կարող է հասնել, երբ թունելն անջատված է։

Հերթականությունը երկրորդ առասպելն է։ Հում iptables-ով դուք շղթան կարդում եք վերևից ներքև և պատճառաբանում, թե որ կանոնն է հաղթում։ ufw-ն ձեր մուտքագրած ցանկի բարակ փաթաթան չէ. այն ձեր կանոնները վերածում է իր իսկ շղթաների և ընտրում ներդրման կետերը։ ufw status դրանք տպում է ufw-ի հերթականությամբ, ոչ ձերով։ Երբ կանոնն անտեսված է թվում, համեմատեք ufw show added ձևափոխված հավաքածուի հետ՝ iptables -S | grep ufw ցանկացած բան վերաշարադրելուց առաջ։

Բացառությունը պետք է մնա մեկ հասցեի լայնությամբ

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

Ամբողջ ենթացանցի կամ 1194 պորտի յուրաքանչյուր նպատակակետի լայնացումը քաղաքականությունը նորից դարձնում է ծակ հրապատ։ Բացառությունը անջատիչն է. երբ այն լայն է, անջատելու բան չի մնում։ Պահեք այն մեկ հասցեի վրա և թողեք մեկնաբանություն, որը նշում է պրոֆիլն ու մատակարարին, որին այն պատկանում է, որովհետև վեց ամիս հետո հասցեն կթվա կամայական։

Անունների լուծումն արժանի է իր տողին։ Որոնումը տեղի է ունենում նախքան թունելի գոյությունը՝ ֆիզիկական ինտերֆեյսով, ուստի խիստ արտագնա մերժման քաղաքականությունը կարող է հաճախորդին թողնել առանց սեփական սերվերը գտնելու հնարավորության։ Թույլատրեք 53 պորտը դեպի ձեր լուծիչի հասցեն, կամ լուծեք մեկ անգամ և ամրացրեք հասցեն պրոֆիլում։ DNS-ի թույլատրումը յուրաքանչյուր ինտերֆեյսում որոշում է, ոչ լռելյայն։

Կառուցեք քաղաքականությունը նախքան թունելի անհրաժեշտությունը

ufw enable կիրառում է ամբողջ քաղաքականությունը միանգամից և վերաբեռնում իր շղթաները, և աշխատող հրապատի վրա լռելյայն քաղաքականության փոփոխությունը նույնպես վերաբեռնում է դրանք։ ufw-ի ձեռնարկը զգուշացնում է, որ դա կարող է գցել գոյություն ունեցող կապերը, ինչպիսին է SSH-ը։ Այդ պատճառով հրամանները գնում են այս հերթականությամբ՝ SSH-ի կանոնը ակտիվացումից առաջ և բաց կոնսոլի սեսիայով՝

sudo ufw default deny incoming
sudo ufw default deny outgoing
sudo ufw allow out on tun0
sudo ufw allow out to 203.0.113.10 port 1194 proto udp
sudo ufw allow 22/tcp
sudo ufw enable
sudo ufw status verbose

ufw reset դիտավորյալ թողնված է այդ բլոկից դուրս։ Այն ջնջում է բոլոր կանոնները և անջատում հրապատը, իսկ հեռավոր հոսթում հաջորդ ակտիվացումն է, որ գցում է ձեր սեսիան։ Եթե այնուամենայնիվ վերակայեք, ավելացրեք SSH-ի կանոնը և նախքան առաջ անցնելը հաստատեք վերադարձի երկրորդ ուղին կոնսոլի միջով։

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

Փորձարկեք արգելափակված վիճակը և պահեք հետարկումը

Չփորձարկված անջատիչը ենթադրություն է. Դիտավորյալ անջատեք հաճախորդը և փորձեք բեռնել էջ. այն պետք է ձախողվի։ Նորից միացեք, և այն պետք է վերականգնվի առանց որևէ կանոնի դիպչելու։ sudo ufw status verbose հաստատում է լռելյայններն ու գրանցման վիճակը, և ufw status numbered ցույց է տալիս, թե որ փորձնական կանոնը ջնջել, երբ այն ապրի իր նպատակից ավելի։

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

sudo ufw reset
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw enable

Գործարկեք այն, երբ թունելն արդեն իջած է, և կանոնները պետք է հանվեն, ոչ թե որպես սովորական քայլ։ Նախքան տերմինալը փակելը, չորս բան պետք է ճշմարիտ լինի. հասակակցի կանոնը նշում է ուղիղ մեկ հասցե, DNS-ն ունի անվանված բացառություն, ակտիվացումը եկել է թույլտվություններից հետո, և թունելը քաշելը սպանում է սովորական երթևեկությունը՝ չսպանելով հաճախորդին ընդմիշտ։

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