Ֆայրվոլի միայն NEW կանոնները չեն փակում WAN-ի բոլոր ուղիները
NEW միացությունների մերժումը թողնում է հաստատված հոսքերն ու պատասխանները անփոփոխ։ Կարդացե՛ք conntrack վիճակը, կանոնների հերթականությունը և բացառությունները՝ նախքան քաղաքականությունը փակ համարելը։
WAN-ում նոր ելքային միացությունների մերժումը նման է ձախողման դեպքում փակվող քաղաքականության, բայց ավելի նեղ խոստում է, քան թվում է։ Արդեն գոյություն ունեցող հոսքերին պատկանող փաթեթները չեն համապատասխանում դրան, և շատ պատասխաններ նույնպես։ Այս բացը հեշտ է բաց թողնել, որովհետև կանոնը կարդացվում է այնպես, կարծես ծածկում է ինտերֆեյսը, այլ ոչ թե դրա վրա գտնվող միացության մեկ վիճակը։ Իսկ վիճակի համընկնումը որպես վճիռ կարդալը հենց այն է, ինչը ստեղծում է փակվածության կեղծ զգացում։
Վիճակը համընկնման պայման է, ոչ վճիռ
Միացությունների հետևումը փաթեթները դասակարգում է ըստ այն բանի, ինչ ֆայրվոլն արդեն տեսել է, այլ ոչ ըստ այն բանի, ինչ հավելվածը կարծում է։ Երկու ուղղությամբ դիտված հոսքը հաստատված է, և նրա հետագա փաթեթները մնում են հաստատված նույնիսկ այն ժամանակ, երբ դրա տակի երթուղին թունելից փոխվում է սովորական վերին կապի։ Մուտքային միացության պատասխանը նույնպես կարող է հաստատված երթևեկություն լինել։ Այդ փաթեթները երբեք նորից նոր չեն դառնում։
Այդ պատճառով նոր միացություններով սահմանափակված կանոնը չի կարող ապացուցել, որ յուրաքանչյուր պաշտպանված փաթեթ արգելափակված է։ Այն մյուս վիճակները թողնում է կանոնների հավաքածուի մնացած մասի հայեցողությանը, ինչը կարող է ավելի վաղ շղթայում տեղադրված թույլտվություն լինել։
Կարդացե՛ք կանոնը իր շրջապատում
Արգելափակումից առաջ տեղադրված լայն թույլտվությունը հաստատված և կապակցված երթևեկության համար փաթեթին անցնել է տալիս նախքան արգելափակման գնահատումը։ Վիճակի պայմանը ավելի ուշ կանոնից հեռացնելը դա չի փոխի, որովհետև գնահատումը երբեք չի հասնում դրան։ Արդյունքը որոշում է հերթականությունը, և վիճակի համընկնումը որոշում է, թե որ փաթեթներն են հասնում այդ հերթականությանը։
Ուսումնասիրե՛ք գործող կանոնների հավաքածուն, ոչ թե ձեր խմբագրած ֆայլը, ներառյալ այլ շղթաներ ցատկերը և այն ամենը, ինչ պլատֆորմը ստեղծում է։ iptables-ով կառավարվող երթուղիչում շղթայի ցուցակումը ցույց է տալիս կանոնների սահմանումները, և այն շղթաները, որոնց այն հղում է կատարում, նույնպես պետք է հետևել։ Նատիվ nftables համակարգը պահանջում է ուսումնասիրել իր սեփական կանոնների հավաքածուն և կեռիկների առաջնահերթությունները, քանի որ որոնվածը հազվադեպ է ստեղծում նույնական շղթաներ։
Հաշվիչները ցույց են տալիս, թե որ կանոնն է իրականում համընկել, և դրանք սովորաբար ավելի տեղեկատվական են, քան որոշումից հետո արված փաթեթի գրավումը։ Զրո հաշվիչ ունեցող կանոնին չեն հասել, անկախ նրանից, թե դիրքը ինչ է ակնարկում։
Արտահայտե՛ք արգելքը վիճակից անկախ
Եթե հաճախորդների խումբը երբեք չպետք է համացանց հասնի թունելից դուրս, ասե՛ք դա ուղղակիորեն, փոխարենը մեկ վիճակով մոտարկելու։ Կանոնը պետք է ընտրի ըստ աղբյուրի, ելքի և նպատակակետի՝ առանց միացության վիճակից կախվածության, և պետք է կանգնի այնտեղ, որտեղ ոչ մի նախկին թույլտվություն չի կարող շրջանցել այն։ Այնուհետև կառավարման մուտքը և տեղական ցանցի բացառությունները ստանում են իրենց բացահայտ կանոնները, և մտադրությունը տեսանելի է դառնում քաղաքականության մեջ։
drop-ի փոխարեն reject ընտրելը փոխում է, թե ինչպես է ձախողվում համընկնող երթևեկությունը, և չի լայնացնում այն փաթեթների բազմությունը, որ ընտրում է կանոնը։ Մերժված միացությունը և լուռ ժամկետի սպառումը տարբեր ախտանիշներ են, որոնք մատնանշում են նույն ընտրությունը։
Քաղաքականությունը, որը միտումնավոր թույլ է տալիս WAN-ի վրայով հեռվից սկսված մուտքի պատասխանները, պաշտպանելի է։ Պարզապես պետք է այն այդպես նկարագրել, փոխարենը ներկայացնելու որպես ամբողջական մեկուսացում միայն թունելով։
Ստուգե՛ք, թե ով է իրականում խմբում
Օրինակը ընդգրկում է մեկ նախածանցից մեկ ինտերֆեյսով փոխանցվող IPv4 երթևեկությունը։ Այն ոչինչ չի ասում IPv6-ի, երկրորդ վերին կապի կամ երթուղիչի ինքն ստեղծած երթևեկության մասին։ DNS լուծիչի դերում հանդես եկող երթուղիչն ուղարկում է իր սեփական վերին հարցումները, և դրանք ընդհանրապես չեն անցնում forward շղթայով։
Հաստատե՛ք, որ պաշտպանված հաճախորդները դեռ ունեն հասցեներ ընտրված նախածանցի ներսում, որովհետև դրանից դուրս տեղափոխված սարքը ուղիղ է պատահաբար, ոչ թե քաղաքականությամբ։ Արգելափակումը ամբողջ LAN-ի վրա տարածելը առանց բացառությունների նախագծի վերանայման նույնպես հակված է հեռացնելու ձեր սեփական վարչական ուղին։
iptables -S FORWARD
iptables -L FORWARD -v -n
cat /proc/net/nf_conntrack | grep -c ESTABLISHED
Ապա փորձարկե՛ք հին հոսքը նորի կողքին։ Թարմ միացման փորձը և արդեն ակտիվ երկկողմանի փոխանցումը այս կանոնի ներքո տարբեր կերպ են վարվում, և միայն երկուսն էլ փորձարկելը ցույց է տալիս, թե իրականում ինչ քաղաքականություն ունեք։