Հրդեհային պատերը, որոնք թույլ են տալիս IKE և ESP, բայց ոչ UDP 1701, կոտրում են L2TP կապերը այնպես, որ թվում է հավատարմագրերի խնդիր։ Պատճառն այն է, որ L2TP-ն երկրորդ արձանագրություն է, որը ճամփորդում է առաջինի ներսում։ IPsec-ը փոխանցում և վավերացնում է փոխանակումը, իսկ L2TP-ն իր սեփական թունելն է վարում UDP 1701-ի վրա, որը տեղական ստեկը դեռ պետք է առաքի։ Իմանալը, թե որտեղ է հայտնվում յուրաքանչյուր վերնագիր, բացատրում է, թե որ սարքին որ կանոնն է պետք։

Երկու արձանագրություն, երկու պորտերի հավաքածու

L2TP/IPsec կապը օգտագործում է IKE UDP 500-ի վրա, NAT անցում UDP 4500-ի վրա, որտեղ թարգմանություն կա, և ESP՝ որպես IP արձանագրություն 50, որտեղ չկա։ L2TP-ն ինքնին թունելային արձանագրություն է UDP 1701-ի վրա, և այն աշխատում է այն բանից հետո, երբ IPsec-ը վավերացրել է գործընկերոջը։ Երկու կեսերը տարբեր կերպ են ձախողվում, և դրանց մասին հաղորդող մատյանի տողերը գալիս են տարբեր բաղադրիչներից։ Միայն առաջին կեսը ծածկող կանոնների հավաքածուն ստեղծում է կապ, որը բանակցում է, ապա մահանում թունելի փուլում։

Պորտի համարները նկարագրում են փոխադրման վերջնակետերը, իսկ ESP-ն ամենևին պորտ չէ։ Դրա համար էլ միայն TCP և UDP կանոններ առաջարկող հրդեհային պատի ինտերֆեյսը չի կարող արտահայտել ամբողջական IPsec քաղաքականություն։ 50 արձանագրությունը պետք է թույլատրվի որպես արձանագրություն, և միայն UDP հիշատակող կանոնը երբեք չի համապատասխանի դրան։

Փաթաթան բացատրում է պորտը

Լարի վրա L2TP/IPsec կապը սովորաբար ցույց է տալիս IKE 500-ի վրա և փաթաթված ESP 4500-ի վրա։ UDP 1701 վերնագիրը գտնվում է պաշտպանված բեռնվածքի ներսում, դրա համար էլ արտաքին ինտերֆեյսի վրա արված գրավումը այն չի ցույց տալիս։ Տեղական հոսթը դեռ պետք է այդ դատագրամը հասցնի L2TP դեմոնին, և առաքումը տեղի է ունենում դեկապսուլացումից հետո։ Ուստի 1701 կանոնը պատկանում է հենց վերջնակետի հրդեհային պատին, նույնիսկ երբ ոչ մի միջանկյալ սարք երբեք չի տեսնում պորտը։

Մշակման կարգը բացատրում է շփոթության մեծ մասը։ Եթե ստեկը IPsec քաղաքականությունը կիրառում է հոսթի զտիչից առաջ, ապա դեկապսուլացված L2TP փաթեթը համադրվում է որպես UDP 1701՝ եթե կարգը հակառակ է, արտաքին պորտերն են այն, ինչ տեսնում է կանոնների հավաքածուն։ Երկու վարքագիծն էլ գոյություն ունի գործնականում, դրա համար էլ նույն կանոնների հավաքածուն կարծես աշխատում է մի հարթակում և ձախողվում մյուսում։

Ստուգեք ուղին հերթականությամբ

Նախ գրավեք արտաքին ինտերֆեյսը և հաստատեք, որ IKE-ն և փաթաթված ESP-ն շարժվում են երկու ուղղություններով։ Այնուհետև ստուգեք տեղական հրդեհային պատի հաշվիչները դեկապսուլացված երթևեկության համար։ Հերթականությունը կարևոր է, քանի որ ոչինչ չցուցադրող գրավումը նշանակում է, որ խնդիրը հոսթից վերև է։

sudo tcpdump -ni eth0 'udp port 500 or udp port 4500'
sudo nft list ruleset | grep -i -A2 1701
sudo ss -lunp | grep 1701

Գրավումը հաստատում է փոխանակման առաջին կեսը և ցույց է տալիս՝ արդյոք գործընկերը պատասխանում է։ Կանոնների ցանկը ցույց է տալիս՝ արդյոք 1701 կանոն կա և որտեղ է այն գտնվում ցանկացած կորստի քաղաքականության նկատմամբ։ Սոկետների ցանկը հաստատում է, որ L2TP դեմոնը կապված է և լսում է, ինչը բացառում է երբեք չմեկնարկած ծառայությունը։ Կարդացեք բոլոր երեքը կանոնը փոխելուց առաջ, որովհետև բացակայող լսողը և զտված պորտը ստեղծում են նույն բողոքը օգտատիրոջից։

Ինչ չի կարող ցույց տալ պորտի սկանավորումը

UDP 1701-ի արտաքին սկանավորումը ճիշտ կազմաձևված սերվերի դեմ սովորաբար ոչինչ չի հաղորդում, և դա սպասված արդյունքն է։ Պորտը բաց չէ ինտերնետի համար՝ դրան հասնում են միայն այն բանից հետո, երբ IPsec-ը վավերացրել է գործընկերոջը։ Փակ արդյունքը որպես խափանում դիտարկելը հանգեցնում է պորտի բացմանը, որը պետք է փակ մնա։ Սկանավորումը չի կարող տեսնել թունելի ներսը այնպես, ինչպես չի կարող տեսնել հավելվածի երթևեկությունը։

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

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