UDP-ի VPN-ը լուռ է պորտի սկանավորման ժամանակ? Ինչու է դա տեղի ունենում
WireGuard-ը և կարծրացված OpenVPN-ը մերժում են նույնականացումը չանցած դատագրամները՝ առանց պատասխանելու։ Սկաների կողմից լռությունը սպասված վարքագիծ է, ոչ թե փակ պորտ։
Դուք սկանավորում եք VPN-ի պորտը, պատասխան չեք ստանում և եզրակացնում եք, որ ծառայությունը դադարել է կամ որ firewall-ը փակ է։ WireGuard-ի և սեփական նույնականացումը կրող OpenVPN-ի կառավարման ուղիների դեպքում այդ եզրակացությունը չի բխում։ Առանց վավեր նույնականացման նյութի դատագրամը մերժվում է առանց պատասխանի, ուստի լռությունը հենց այն է, ինչպիսին առողջ ծառայությունը երևում է դրսից։ Փորձարկումը սխալ է ավելի վաղ, քան թունելը։
Լռությունը հենց արձանագրությունն է, ոչ թե խափանում
UDP-ն կապի հաստատում չունի, ուստի չկա SYN և չկա հաստատում, որը թույլ կտար սկաներին տարբերել բաց պորտը զտվածից։ Փորձարկումը գալիս է որպես մեկուսացված դատագրամ, և ծառայությունը ստուգում է՝ արդյոք այն համապատասխանում է իր սպասած արձանագրությանը։ Երբ չի համապատասխանում, փաթեթը մերժվում է, և մերժումը փաստաթղթավորված վարքագիծ է, ոչ թե անսարքություն։
WireGuard-ը գաղտնագրորեն վավերացնում է իր handshake հաղորդագրությունները և անտեսում է այն ամենը, ինչ ձախողվում է։ OpenVPN tls-auth-ով կամ tls-crypt-ով նույնն է անում իր կառավարման ուղու համար։ Երկու դեպքում էլ կամայական բեռը երբեք չի հասնում օգտատիրոջն ուղղված փուլին, ուստի պատասխանելու բան չկա և վերադարձնելու սխալ չկա։
TCP-ն ձեզ reset կտար փակ պորտից։ UDP-ն ձեզ թողնում է անորոշության մեջ, որը սկաներները լուծում են բաց կամ զտված տպելով՝ գուշակելու փոխարեն։
Ինչ կարող է և ինչ չի կարող եզրակացնել սկաները
Սկանավորման արդյունքը նույնքան տեղեկատվական է, որքան այն ուղարկած բեռը։ Դասավորեք հնարավոր դիտարկումները ըստ այն բանի, թե յուրաքանչյուրն իրականում ինչ է հաստատում.
| Probe | Observed result | What it supports |
|---|---|---|
| Empty datagram | No reply | Nothing beyond the fact that UDP was used |
| Random payload | No reply | Consistent with an authenticated service |
| Valid handshake from a real client | A protocol reply | The service is alive and reachable |
| ICMP port unreachable | Unreachable message | The host answered, usually because nothing listens |
Երրորդ տողը կարդացեք որպես ցանկի միակ դրական թեստ։ Այն պահանջում է իրական պրոֆիլ, իրական բանալի և ճիշտ վերջնակետ, ինչը հենց այն է, ինչ ընդհանուր սկաները չունի։
Նայեք ուղու երկու ծայրերին
Ձեր կառավարած սերվերի համար նախքան որևէ եզրակացություն անելը գրավեք ինտերֆեյսի վրա, ապա հարցրեք ծառայությանը, թե ինչ է տեսել։ Երկու հրամաններն էլ պահանջում են root դարպասի վրա.
tcpdump -ni any udp port 51820
tcpdump -ni any udp port 1194
wg show
Եթե ինտերֆեյսի վրա ոչ մի փաթեթ չի հայտնվում, ուղին այն մերժել է նախքան ծառայության ինչ-որ բան տեսնելը, և հաջորդ կանգառը երթուղավորումն ու զտումն է։ Եթե փաթեթները գալիս են, բայց ոչ մի handshake չի ավարտվում, ծառայությունը հասանելի է, և անհամապատասխանությունը բանալիների, վերջնակետի կարգավորման կամ արձանագրության տարբերակի մեջ է։ Այդ համեմատությունը պատասխանում է այն հարցին, որին սկաները չէր կարող։ Կատարեք այն, երբ իրական հաճախորդը փորձում է միանալ, ոչ թե երբ սկաները կրկնում է ինքն իրեն։
Փոխեք թեստը, ոչ թե պաշտպանությունը
Գայթակղիչ կարճ ուղին կառավարման ուղու պաշտպանությունը անջատելն է, որպեսզի ախտորոշումը պատասխան ստանա։ Դա իրական անվտանգության հատկությունը փոխանակում է ավելի գեղեցիկ սկանավորման արդյունքի հետ, և դա սխալ ուղղություն է։ Փոխարենը օգտագործեք վավեր պրոֆիլ հաստատված ցանցից և գրանցեք վերջնակետն ու ժամը, որպեսզի համեմատությունը կրկնելի լինի։
Ամենաօգտակար թեստը դիֆերենցիալն է՝ նույն պրոֆիլը աշխատող ուղու վրա և այն ուղու վրա, որը չի աշխատում։ Եթե աշխատող ուղին handshake է առաջացնում, իսկ ձախողված ուղին ինտերֆեյսի վրա ոչինչ չի առաջացնում, դուք գտել եք ճեղքման տեղը՝ ոչինչ չթուլացնելով։
Այսպիսով, անպատասխան UDP փաթեթը չի ապացուցում ոչ այն, որ սերվերը անցանց է, ոչ էլ այն, որ այն անվտանգ է։ Այն ապացուցում է, որ այս փորձարկումը, այս ուղու վրա, այս պահին, չի ընդունվել։