VPN թունելը երբեք չի միանում որտեղ են իրականում կանգնում փաթեթները
Թունելը, որը երբեք չի ձևավորվում, երկու ծայրերում էլ դատարկ մատյան է թողնում։ Ստուգեք՝ արդյոք GRE-ն, ESP-ն կամ UDP 4500-ը դեն են նետվում, և բացահայտեք օպերատորի NAT-ը նախքան սերվերը խմբագրելը։
Հաճախորդը շարունակ փորձում է նորից, մատյանը կանգ է առնում ձեռքսեղմումն ավարտվելուց առաջ, և սերվերը բացարձակապես ոչինչ չի գրանցում։ Այդ օրինաչափությունը շեղում է ուշադրությունը հավատարմագրերից դեպի ուղին՝ ինչ-որ բան երկու ծայրերի միջև հրաժարվում է կրել այն արձանագրությունը, որն անհրաժեշտ է թունելին։ Որոշեք՝ որտեղ են կանգնում փաթեթները, նախքան երկու կարգավորումներից որևէ մեկին դիպչելը, քանի որ զտված արձանագրությունը և սխալ գաղտնաբառը հաճախորդների մեծ մասում նույն բարեկամական սխալն են առաջացնում։ Թեստերը դասավորված են ըստ արժեքի՝ ամենաէժանը առաջինը։
Ապացուցեք, թե որտեղ է կանգնում երթևեկությունը
Միաժամանակ ձայնագրեք հաճախորդի ելքային ինտերֆեյսի վրա և սերվերի վրա։ Համեմատեք՝ ինչ է դուրս եկել, ինչ է ժամանել, և նշեք՝ որ ուղղությամբ է տարբերությունը երևում։
Սերվերի վրա ոչինչ լինելը նշանակում է, որ ուղին կամ առաջին NAT-ը գցում է երթևեկությունը, մինչդեռ պատասխան չստացած ժամանումները ցույց են տալիս սերվերի հրային պատը կամ գոյություն չունեցող վերադարձի ուղի։ Երթուղիչը, որը հաճախ ավարտում է թունելներ, սովորաբար օգտակար մատյան չի վարում, այնպես որ ձայնագրությունը դառնում է արձանագրություն։ Գրեք նշանակման պորտը և արձանագրության համարը, քանի որ երկու ձախողումները հաճախորդի երկխոսությունում նույն տեսքն ունեն։
PPTP-ն մահանում է առանց 47 արձանագրության
PPTP-ն կառավարումը կրում է TCP 1723-ով, իսկ տվյալները՝ GRE-ի ներսում, որը IP արձանագրություն 47 է, այլ ոչ թե պորտի համար։ Միայն 1723-ի փոխանցումը տալիս է դասական արդյունքը՝ կապը նույնականացվում է, ապա լռում, քանի որ բեռը կրող արձանագրության համար կանոն չկա։ Հաճախորդը չի կարող դա տարբերել մերժված գաղտնաբառից, դրա համար ձայնագրությունը պետք է լինի կարգավորումների փոփոխություններից առաջ։
Անցումն աշխատում է մուտքային փոխանցման հակառակ ուղղությամբ, և որոնվածը բավական հաճախ մեկ պիտակ է օգտագործում երկուսի համար՝ բոլորին շփոթելու չափ։ Linux հաճախորդում տեղական հրային պատը կարող է GRE-ն գցել շատ ավելի վաղ, քան երթուղիչը կմասնակցի, ուստի 47 արձանագրությանը պետք է սեփական կանոն, և conntrack օգնականը պետք է բեռնված լինի։ Ubuntu-ի ufw-ն այդ կանոնները պահում է before ֆայլում, քանի որ սովորական allow կանոնները չեն կարող արտահայտել արձանագրության համար։ Դրանից հետո վերաբեռնեք հրային պատը՝ մեքենան վերագործարկելու փոխարեն։
# /etc/ufw/before.rules, inside *filter
-A ufw-before-input -p gre -j ACCEPT
sudo ufw allow 1723/tcp
sudo modprobe nf_conntrack_pptp
sudo conntrack -L | grep greL2TP և IPsec՝ երկու NAT-ի հետևում
L2TP-ն IPsec-ի ներսում պահանջում է UDP 500 բանալիների փոխանակման համար, UDP 4500՝ NAT-ի հայտնաբերման դեպքում, և ESP՝ որպես արձանագրություն 50։ Դրանցից յուրաքանչյուրը զտվում է առանձին, ուստի մեկը թույլատրող կանոնը ոչինչ չի ապացուցում մյուս երկուսի մասին։ Երկու երթուղիչ հաջորդաբար յուրաքանչյուր փաթեթ թարգմանում է երկու անգամ, և ծայրերը այլևս համաձայն չեն, թե ինչ է բանակցվել։
Կամուրջ դարձրեք արտաքին մոդեմը կամ անջատեք NAT-ը ներքին երթուղիչում, որպեսզի հանրային հասցեն հասնի այն սարքին, որը ավարտում է թունելը։ Այնտեղ, որտեղ ոչ մեկը հնարավոր չէ, թունելը պետք է սկսվի կրկնակի NAT-ի սահմանի ներսից, ոչ թե այնտեղ ավարտվի։
Օպերատորների ցանցերը և հասցեների համօգտագործումը
WAN հասցեն 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 կամ 100.64.0.0/10 միջակայքում նշանակում է, որ երթուղիչը հանրային հասցե չունի, և ինտերնետից ոչ մի մուտքային փոխանցում չի կարող հասնել դրան։ Օպերատորի մակարդակի NAT-ը նաև զտում է արձանագրությունները, որոնք չի սպասում, և GRE-ն հաճախ տուժող է բջջային կապերում։ Համեմատեք WAN հասցեն հենց երթուղիչի վրա, ոչ այն հասցեն, որը որոնման կայքը հայտնում է դրա հետևում գտնվող հաճախորդի համար։
Նույն երթուղիչը լարային գծում աշխատեցնելը մեկ թեստով առանձնացնում է օպերատորի հայտնաբերումը կարգավորման սխալից։ Այնտեղ, որտեղ օպերատորը մերժում է արձանագրությունը, մնացած տարբերակներն են՝ այլ փոխադրում 443-ի վրա կամ ներսից սկսված թունել։
Կարդացեք լսողների ցանկը նախքան պորտերը փակելը
Անհանգստացնող պորտային սկանավորումը հաճախ ընդամենը այն գործառույթների հավաքածուն է, որը մատակարարվում է միացված։ Գույքագրեք լսողներին, կապեք յուրաքանչյուր սոքեթ գործառույթի հետ, ապա անջատեք գործառույթը՝ պորտը արգելափակելու փոխարեն, որպեսզի երկու տեսքերը չհեռանան իրարից։
ss -lntup
systemctl list-units --type=service --state=running | grep -i vpn
nc -vz 203.0.113.10 1723
nc -vzu 203.0.113.10 4500SoftEther-ի լռելյայն արժեքները լավ օրինակ են՝ TCP 443, 992 և 5555, ընդ որում L2TP/IPsec և DNS-թունել գործառույթներն ավելացնում են իրենց սոքեթները։ Այդ գործառույթներն անջատելը հեռացնում է լսողներին՝ դրանք թաքցնելու փոխարեն, և արտաքին հոսթից արված ստուգումը ասում է՝ արդյոք օպերատորն ընդհանրապես թույլ է տալիս պորտի անցումը։ Տեղում պատասխանող լսողը դեռ կարող է փակ լինել վերևում, ուստի համեմատեք երթուղիչի սեփական WAN հասցեն արտաքին ծառայության հաղորդածի հետ։