Որտեղ դիտարկել OpenVPN հաճախորդի երթևեկությունը դարպասում
Երթուղայնացված VPN դարպասը փոխանցում է փաթեթները՝ դրանց համար բնիկներ չբացելով։ Ընտրեք conntrack, թունելի սահմանափակ գրավում կամ պրոքսի մատյաններ՝ կախված նրանից, թե որտեղ է անցնում հոսքը։
Ցանկանում եք իմանալ, թե միացված հաճախորդը որ նպատակակետերին է հասնում, ուստի VPN սերվերի վրա shell եք բացում և մուտքագրում ss։ Ոչ մի օգտակար բան չի հայտնվում, և այն եզրակացությունը, թե թունելը կոտրված է, գալիս է մի փոքր չափից դուրս հեշտությամբ։ Երթուղայնացված OpenVPN դարպասը փոխանցում է հաճախորդի փաթեթները՝ այն չի ավարտում նրանց TCP կապերը և բնիկներ չի տիրապետում նրանց համար։ Ապացույցն ապրում է այլ տեղ, և թե որտեղ, կախված է նրանից, թե ինչպես է երթևեկությունը մշակվում թունելից դուրս գալուց հետո։
Որոշեք, թե որ դասավորությունն եք դիտարկում
Երկու տարածված ձևեր տալիս են բոլորովին տարբեր ապացույցներ։ Երթուղավորող դարպասը ապակապսուլավորում է, փոխանցում և հնարավոր է կատարում աղբյուրի NAT, ուստի հաճախորդի կապը շարունակում է գոյություն ունենալ ծայրից ծայր՝ առանց տեղական բնիկի։
Պրոքսին ավարտում է երթևեկությունը՝ այն ընդունում է կապը, ապա բացում իր սեփական վերին կապը։ Այդ դասավորությունում մեկ հարցման համար կա երկու կապ, և նրանց միջև կապը գոյություն ունի միայն պրոքսիի սեփական գրառումներում։ Իմանալը, թե այս երկուսից որն եք տեղակայել, որոշում է՝ պետք է կարդալ միջուկի հոսքի վիճակը, թե հավելվածի մատյանները։
Շփոթության մեծ մասը գալիս է գուշակությունից։ Հաստատեք ձևը նախքան գործիք ընտրելը։ Նախ կարդացեք սերվերի կարգավորումը՝ պրոքսի հրահանգ փնտրելով, քանի որ դրա առկայությունը փոխում է յուրաքանչյուր հաջորդ քայլ։ Առանց դրա փաթեթների ուղին երթուղավորում է, և միջուկի հոսքի վիճակն է ձեր ապացույցը։
Նախ հասցեն կապեք նստաշրջանին
Սկսեք սերվերի նստաշրջանների վիճակից և բացահայտեք հաճախորդի ընթացիկ ներքին հասցեն։ Լողավազանի հասցեները վերօգտագործվում են, ուստի հասցեն ինքնին վարձակալություն է, ոչ թե անձ։
Գրանցեք ժամանակը և նույնականացված ինքնությունը միասին, և նշեք՝ արդյոք մի ամբողջ տեղական ցանց թաքնված է այդ հաճախորդի հետևում։ Եթե հեռավոր ծայրը երթուղավորում է ենթացանց, ապա ձեր տեսած ներքին հասցեները կարող են լինել բնօրինակ հոսթեր կամ թարգմանված։
ip -4 addr show dev tun0
journalctl -u [email protected] --since '-10 min' | tail -n 40Այդ զույգը միանգամից պատասխանում է երկու հարցի՝ թե թունելի ինտերֆեյսը որ նախադիրն է սպասարկում, և թե որ նստաշրջանն էր ակտիվ ձեզ հետաքրքրող միջակայքում։ Արեք դա նախքան որևէ հոսքի գրառում մեկնաբանելը, քանի որ սխալ նստաշրջանին կապված համոզիչ tuple-ը ավելի վատ է, քան ընդհանրապես ապացույց չունենալը։
Կարդացեք հոսքի աղյուսակը երթուղավորող դարպասում
Երբ հասցեն և միջակայքը հաստատված են, հետևված կապերի միայն-ընթերցման ցանկը ցույց է տալիս, թե դարպասը ինչ է փոխանցում դրա համար։ Զտեք ըստ բնօրինակ աղբյուրի, որպեսզի չկարդաք ամբողջ աղյուսակը։
sudo conntrack -L -p tcp -f ipv4 --orig-src 10.8.0.37Յուրաքանչյուր գրառում պարունակում է երկու tuple՝ բնօրինակ և պատասխան, որոնք մեկ հոսքի երկու ուղղություններն են, ոչ թե երկու հավելված։ Աղբյուրի NAT ուղու վրա բնօրինակ tuple-ը պահում է թունելի հասցեն, մինչդեռ պատասխանի կողմը ցույց է տալիս թարգմանված դարպասի հասցեն, և հենց դա է ստիպում ելքին առաջին հայացքից սխալ թվալ։
Ցանկին վերաբերվեք որպես կենդանի վիճակի, ոչ որպես պատմության։ Կարճ հոսքերը կարող են արդեն սպառվել, չհետևված երթևեկությունը երբեք չի հայտնվում, և այլ ցանցային անվանատարածք ցույց է տալիս այլ աղյուսակ։ conntrack-ի տեղեկագիրը փաստագրում է զտիչները և երկուղղություն ելքը։
Մեկ սահմանափակ գրավում՝ ընթերցումը հաստատելու համար
Եթե թունելի ինտերֆեյսը տեսանելի է այնտեղ, որտեղ նայում եք, մեկ սահմանափակ գրավումը որոշում է՝ արդյոք ձեր բացահայտած փաթեթներն են լարի վրա։ Զտիչը պահեք նեղ, իսկ փաթեթների սահմանը՝ փոքր։
sudo tcpdump -ni tun0 -nn -c 50 'host 10.8.0.37 and tcp'Համեմատեք ժամանակային դրոշմները, արձանագրությունը և պորտերը հոսքի գրառման և որպես փորձարկում արված հարցման հետ։ NAT-ից հետո վերցված գրավումը ցույց է տալիս միայն դարպասի հանրային հասցեն, մինչդեռ թունելի կողմը կարող է դեռ ցույց տալ հաճախորդինը, և այդ տարբերությունը տեղեկություն է, ոչ թե անհամապատասխանություն։
Եթե ինտերֆեյսը ոչինչ չի տեսնում, ստուգեք տվյալների ուղին նախքան եզրակացնելը, որ հաճախորդը պարապ է՝ հաճախորդ-հաճախորդ երթևեկությունը և որոշ բեռնաթափման ուղիներ երբեք չեն անցնում ձեր դիտարկած կետով։
Պրոքսիի մատյանները, և տեսածի սահմանները
Երբ պրոքսին ուղու վրա է, նրա վերին բնիկները երևում են բնիկների աղյուսակում, բայց դրանք մեկը մեկին չեն քարտեզագրվում VPN հաճախորդներին, հատկապես լողավազանացման կամ մուլտիպլեքսավորման դեպքում։ Օգտագործեք պրոքսիի կարգավորված գործարքի մատյանը՝ հաճախորդի ինքնությունը, նպատակակետը, ժամանակային դրոշմը և գրանցված ցանկացած հարցման նույնացուցիչը կապելու համար։
Ստուգեք տեղակայված տարբերակի գրանցման կարգավորումը՝ փոխարենը ենթադրելու, որ յուրաքանչյուր հարցում լռելյայն գրանցվում է։
Վերջում եղեք ճշգրիտ շրջանակի հարցում։ Նպատակակետի հասցեն և պորտը մետատվյալներ են, ոչ URL և ոչ էջի բովանդակություն, քանի որ ներքին HTTPS նստաշրջանը պահպանում է իր սեփական պաշտպանությունը՝ անկախ թունելից։ Հաղորդեք, թե ինչ եք դիտարկել, ո՛ր դիտարկման կետից և ինչ ժամի։