PPTP սերվերը տնային երթուղիչի հետևում. սկզբում ուղղեք 1723-ը և GRE-ն
Գործարկեք PPTP-ն տնային երթուղիչի հետևում՝ TCP 1723, IP արձանագրություն 47, անցման վանդակը և MTU-ի թվաբանությունը, ինչպես նաև՝ երբ L2TP-ն կամ OpenVPN-ը ավելի լավ գործարք է։
PPTP-ն տնային երթուղիչի հետևում ձախողվում է երկու անկապ եղանակով, և դրանք իրար խառնելը կորստի է մատնում մի ամբողջ երեկո։ Առաջին խափանումը վերահասցեավորման բաց է. երթուղիչը թողնում է TCP 1723-ը և գցում IP արձանագրություն 47-ը, այդ պատճառով հաճախորդը մնում է 619 սխալի վրա։ Մյուսը չափի խնդիր է. թունելը բարձրանում է, նույնականացվում, ապա սառչում, երբ լրիվ չափի փաթեթը պետք է անցնի։ Պարզելը, թե դրանցից որն ունեք, առաջին իսկական քայլն է. մնացածը համեմատում է, թե ինչ կարող է արտահայտել ձեր երթուղիչը, ոչ թե որ ապրանքանիշն է լավը։
Երկու փոխադրիչ, և դրանցից միայն մեկն ունի պորտ
PPTP-ն բաժանվում է երկու փոխադրիչի՝ կառավարման միացում TCP 1723-ի վրա, և PPP շրջանակներ՝ փաթաթված ընդլայնված GRE-ի մեջ, որը IP արձանագրություն 47-ն է։ GRE-ն պորտի համար չունի, ուստի 1723 պորտի փոխանցում գրված կանոնը չի կարող ծածկել այն, ինչպես էլ վեբ ինտերֆեյսը անվանի դաշտը։ Սպառողական երթուղիչը սովորաբար արձանագրության կանոնի փոխարեն առաջարկում է PPTP անցում անունով վանդակ, և այդ վանդակը երկու գործ է կատարում. թույլ է տալիս 47 արձանագրությանը անցնել հրե պատի միջով և սովորեցնում է NAT-ին հետևել GRE հոսքին։ Linux երթուղիչում այդ գործերը առանձին մոդուլներ և առանձին կանոններ են, այդ պատճառով կիսով չափ կարգավորված անցումը դեռ աշխատող կառավարման ուղի է տալիս։ Պարզեք, թե որ կեսն է առկա, նախքան ինչ-որ բան փոխելը։
Սերվերի սեփական հրե պատը նույնպես պետք է թույլ տա 47 արձանագրությունը երթուղիչի հասցեից։ Հոսթի հրե պատը, որն ընդունում է միայն 1723/tcp, վերարտադրում է 619 սխալը LAN-ի ներսից, ինչի պատճառով կոտրված փոխանցումը և կոտրված հոսթի կանոնը նույն տեսքն են ստանում։
sudo iptables -S FORWARD | grep -i gre
sudo nft list ruleset | grep -i gre
lsmod | grep -E 'nf_conntrack_proto_gre|nf_nat_proto_gre'
Եթե մոդուլները բացակայում են, բեռնեք դրանք sudo modprobe nf_conntrack_proto_gre nf_nat_proto_gre-ով և բեռնումը դարձրեք մշտական, որովհետև օգնականին մոռացող վերագործարկումը աշխատող թունելը նորից 619 սխալի է վերածում։ Փոխանցման կանոնը պետք է 47 արձանագրությունն ընդունի միայն սերվերի հասցեի ուղղությամբ, ոչ ամբողջ LAN-ը։ RFC 2637-ի սահմանումը բաժանում է կառավարման և տվյալների ուղիները, այդ պատճառով ոչ մի պորտի փոխանցման էկրան PPTP-ն ամբողջությամբ չի նկարագրում։
Անցման վանդակ, թե արձանագրության բացահայտ կանոն
Անցման վանդակը, որը միայն բացում է հրե պատը, ավելի մոտ է ճիշտին, քան զանգի նույնացուցիչները վերագրող ALG-ն։ Հրե պատի կեսը կանխատեսելի է, որովհետև 47 արձանագրությունը կա՛մ ընդունվում է, կա՛մ գցվում, և հաշվիչները ասում են՝ որը։ Վերագրման կեսն այն տեղն է, որտեղ արտադրողները տարբերվում են, որովհետև PPTP-ի զանգի նույնացուցիչները յուրաքանչյուր թունելի համար են, և դրանք խմբագրող NAT-ը պետք է հետևի իր հպած յուրաքանչյուր զանգի։ Երբ մեկ հաճախորդ է միանում, իսկ երկուսը՝ ոչ, ALG-ն առաջին կասկածյալն է։
1723-ի համար նպատակակետ NAT կանոնը նույնպես սեփականության խնդիր ունի։ Եթե հին կանոնը դեռ 1723-ը ուղարկում է հոսթի, որը դադարել է սերվերը գործարկել, փաթեթները վայրէջք են կատարում փակ պորտի վրա, և երթուղիչի սեփական PPTP ծառայությունը դադարում է պատասխանել, ինչը կարդացվում է որպես հրե պատի խափանում, բայց իրականում հնացած նպատակ է։ Կարդացեք կանոնը և դրա նպատակակետը նախքան երկրորդն ավելացնելը։ Այն երթուղիչների վրա, որոնք իրենք են ավարտում PPTP-ն, WAN կանոնը մրցակցում է ներկառուցված ծառայության հետ, ուստի 1723-ի և 47 արձանագրության համար ընտրեք մեկ սեփականատեր։
Նույն NAT-ի հետևում երկու հաճախորդ այն դեպքն է, որն առանձնացնում է պարզ փոխանցումը խելացիից։ 47 արձանագրությունը զանգի նույնացուցիչները չվերագրելով փոխանցելը սովորաբար ավելի լավ է վարվում, քան դրանք ուղղել փորձող օգնականը։
Չափեք թունելը, նախքան երթուղիչին մեղադրելը
PPTP-ն կրճատում է օգտակար բեռը, և այդ կրճատումը թվաբանություն է, ոչ առեղծված։ Թունելի յուրաքանչյուր փաթեթ կրում է արտաքին IP վերնագիր, ընդլայնված GRE վերնագիր, PPP վերնագիր և, գաղտնագրման դեպքում, MPPE վերնագիր։ Երբ ուղին չի կարող տանել առաջացած շրջանակը, փոքր փաթեթներն անցնում են, մուտքը ավարտվում է, և նստաշրջանը կանգ է առնում առաջին անգամ, երբ ֆայլի փոխանցումը կամ TLS-ի ձեռքսեղմումը լրիվ չափի փաթեթ է ուղարկում։
Հաշվեք թիվը՝ փոխարենը գուշակելու։ Ընդլայնված GRE-ն արժե 8 բայթ, PPP-ն՝ 4, MPPE-ն՝ 4, իսկ արտաքին IP վերնագիրը՝ 20, ուստի թունելը ցանկացած բեռից առաջ ուտում է 36 բայթ։ 1492-ով ավարտվող PPPoE WAN-ի վրա ամենամեծ տեղավորվող PPP MTU-ն 1492 հանած 36-ն է, այսինքն՝ 1456։ PPP ընտրանքներում mtu-ը և mru-ը դրեք այդ արժեքին և նորից փորձարկեք առանց բեկորացման ping-ով։
ping -M do -s 1464 198.51.100.7
grep -E '^(mtu|mru)' /etc/ppp/options.pptpd
Ping-ը չափում է ուղին, ոչ թունելը. 1464 բայթ բեռը գումարած 28 բայթ IP և ICMP վերնագիրները լրացնում են ուղիղ 1492 բայթանոց շրջանակ։ Եթե այդ ping-ը ձախողվի, իջեցրեք թիվը մինչև այն անցնի և արդյունքից հանեք 36։ Ուղու սահմանից վեր դրված թունելի MTU-ն սառչում է առաջացնում՝ առանց չափը հիշատակող ոչ մի մատյանի տողի։
PPTP, L2TP/IPsec կամ OpenVPN նույն երթուղիչի վրա
Նույն երթուղիչը կարող է կրել երեք սովորական թունելներից ցանկացածը, և տարբերությունն այն է, ինչ նա պետք է արտահայտի։ PPTP-ն պահանջում է երկու կանոն երկու տարբեր շերտերում։ IPsec-ի վրայի L2TP-ն բանալիների փոխանակման համար պահանջում է UDP 500 և 4500, և եթե NAT-T-ն այն չի կրում, բեռի համար՝ 50 արձանագրություն։ OpenVPN-ը պահանջում է մեկ UDP պորտ և ընդհանրապես օգնական չի պահանջում։
| Tunnel | What the router must allow | Practical note |
|---|---|---|
| PPTP | TCP 1723 and IP protocol 47 | Two transports, two rules |
| L2TP/IPsec | UDP 500, UDP 4500, protocol 50 without NAT-T | ESP has no port either |
| OpenVPN | UDP 1194 or a chosen TCP port | Single rule, no helper |
L2TP սյունակը ավտոմատ կերպով ավելի բարեկամական չէ, քան GRE-ն։ ESP-ն IP արձանագրություն 50-ն է և նույնպես պորտ չունի, ուստի 47 արձանագրության հետ դժվարություն ունեցող երթուղիչը նույն պատճառով կարող է դժվարություն ունենալ 50 արձանագրության հետ։ NAT-T-ն գոյություն ունի ESP-ն UDP 4500-ի մեջ փաթաթելու համար, և երբ երկու ծայրերն էլ աջակցում են դրան, 50 արձանագրության կանոնը դառնում է ավելորդ։ Դա ծայրերի հատկություն է, ոչ թե երթուղիչի PPTP վանդակի։ Հաստատեք, թե որ ինկապսուլյացիան է հաճախորդը իրականում բանակցել, նախքան երկուսի համար կանոններ գրելը։
OpenVPN-ը երթուղիչի կողմից ամենաքիչ շարժական մասերով տարբերակն է։ Մեկ UDP պորտ, մեկ փոխանցում, միացումների հետևման օգնական չկա և զանգի նույնացուցիչների վերագրում չկա։ Գործարքը ներկառուցված հավաքիչի փոխարեն տեղադրվող հաճախորդն է, և հաճախ դա է միակ պատճառը, որ PPTP-ն մնում է քննարկման մեջ։
Ինչ վերանորոգել և ինչ փոխարինել
Փոխանցման և MTU-ի ուղղումը ձեզ տալիս է աշխատող թունել, ոչ թե այնպիսին, որը պետք է պահեք։ PPTP-ի MSCHAPv2 նույնականացումը տարիներ շարունակ հարձակման ենթակա է, և աշխատող թունելը տեղափոխում է հավատարմագրեր, որոնք կարելի է վերականգնել առցանցից դուրս։ Եթե հեռավոր սարքը կարող է գործարկել L2TP/IPsec կամ OpenVPN, վերանորոգումը համարեք ժամկետ ունեցող ժամանակավոր միջոց։
Որոշումը հանգում է նրան, թե ինչ է աջակցում հեռավոր ծայրը և որքան պետք է տևի դասավորությունը։ Միայն PPTP խոսող հին սարքը ստանում է վերանորոգումը. այն ամենը, ինչի վրա կարելի է հաճախորդ տեղադրել, միգրացվում է։
Նախքան տոմսը փակելը, հաստատեք, որ հաճախորդը դիմանում է մեծ փոխանցման, ոչ միայն մուտքի, և որ երթուղիչը վերագործարկումից հետո դեռ պահում է 47 արձանագրության իր կանոնը։ Այն թունելը, որն անցնում է մեկ ֆայլի պատճենումով և մահանում հաջորդ որոնվածի թարմացումից հետո, երբեք ավարտված չի եղել։