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

Սոքեթը կամ կապված է, կամ ոչ

Ակտիվ հայտնող ծառայությունը դեռ կարող է կապված լինել մի հասցեի կամ տրանսպորտի հետ, որը դուք երբեք չեք նախատեսել։ Հարցրեք հենց սոքեթին. ss -lunp թվարկում է UDP լսողներ, և ss -ltnp՝ TCP, և ընթերցման արժանի սյունակը տեղական հասցեն է, ոչ թե վիճակը։

Դատարկ պատասխանը սովորաբար նշանակում է երեքից մեկը. գործընթացը դուրս եկավ մեկնարկից հետո, բեռնեց այլ կազմաձևման ֆայլ, կամ լսում է այլ հասցեում, քան այն, որին զանգահարում են։

ss -lunp | grep 1194
ss -ltnp | grep 1194

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

Որսացեք արտաքին փաթեթը, ոչ թե թունելը

Զտեք ֆիզիկական ինտերֆեյսի և իրական պորտի վրա, ձեր ինտերֆեյսով փոխարինված. tcpdump -ni eth0 udp port 1194։ Ելքային փաթեթները, որոնց ոչինչ չի վերադառնում, մատնանշում են վերևում նստածը. մատակարարի զտում, NAT սարք, կամ հեռավոր հասցե, որը այն չէ, ինչ դուք մտածում եք։ Երկու ուղղությամբ լռությունը մատնանշում է հաճախորդի երթուղում կամ տեղական ֆայրվոլ։ Առանց թունելի առաջընթացի ժամանող պատասխանները մատնանշում են կառավարման ուղին, այսինքն՝ բանալու կամ ծածկագրի անհամապատասխանություն, ոչ թե զտում։

Որսացեք երկու ուղղությունները և ֆայլը կարճ պահեք։ Երկար որսը թաղում է հետաքրքիր երեք վայրկյանը, և պատասխանը գրեթե միշտ առաջին փոխանակման մեջ է։

Նախ հաշվիչները, հետքը միայն երբ նրանք ստում են

Սկսեք հաշվիչներից, որովհետև նրանք ոչ մի բան չեն արժենա։ Կամ nft list ruleset, կամ iptables -L -n -v պատասխանում է այստեղ կարևոր միակ հարցին. արդյոք կանոնը համընկել է։ Հերթականությունը որոշում է արդյունքը, որովհետև առաջին համընկնումը հաղթում է, դրա համար է, որ լայն DROP-ը ավելի ուշ ACCEPT-ից առաջ թողնում է այդ ACCEPT-ը մեռած, և դրա համար է, որ կանոն ավելացնելը այդքան հազվադեպ ինչ-որ բան է ուղղում։

Սեփականությունը նույնպես գցում է մարդկանց։ Միջուկը տեղական ստեղծված փաթեթները վերագրում է այն գործընթացին, որը բացել է սոքեթը, և OpenVPN-ը սովորաբար աշխատում է որպես root, ուստի սովորական օգտվողի ID-ին կապված կանոնը երբեք չի տեսնում հենց թունելի երթևեկությունը։ Ստուգեք սեփականատեր UID-ը նախքան որոշելը, որ կանոնը սխալ է։

Միայն երբ հաշվիչները մնում են երկիմաստ, մատյանն արժե աղմուկը, և այն էլ միայն նեղ հատվածի համար. iptables կանոն, որը սահմանափակում է արագությունը և նախածանց ավելացնում իր տողերին, կամ nftables կանոն, որը կրում է meta nftrace set 1, մինչ nft monitor trace աշխատում է։ Հետքը անվանում է շղթան և կանոնը, որը ընդունել կամ գցել է փաթեթը։ Դրանից հետո հեռացրեք երկուսն էլ և օգտակար բեռի գրանցումը դուրս պահեք։

Ստուգեք նաև տրանսպորտը։ TCP-ով սահմանափակված ֆայրվոլի ծառայությունը ոչինչ չի ասում այդ համարի UDP լսողի մասին, ուստի ճիշտ կարդացվող կանոնը դեռ կարող է գցել յուրաքանչյուր փաթեթ։

Երթուղումը և վերադարձի ճանապարհը

Ընդունված փաթեթը, որը դեռ անհետանում է, պահանջում է նպատակակետի ուղու ուսումնասիրություն։ ip route get հաղորդում է մեկ հասցեի համար ընտրված երթուղին, և հակադարձ ուղու զտումը կարող է գցել պատասխան, որը ժամանում է ինտերֆեյսով, որը հիմնական աղյուսակը երբեք չէր ընտրի։ Ախտանիշը ճիշտ նման է ֆայրվոլի գցելուն, դրա համար է, որ այս ստուգումը գալիս է մեկ այլ NAT կանոնից առաջ։

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

Ինչ պետք է ասի գրառումը

Յուրաքանչյուր փոփոխության համար նշեք փորձարկված փուլը, կարդացված ապացույցը և հաշվիչի արժեքը դրա երկու կողմերում։ Հենց այդ գրառումն է "հիմա աշխատում է"-ը դարձնում հաջորդ վերանայմանը դիմացկուն։

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

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