Как да тествате прекъсвач на VPN без истинските си акаунти
Направете тест на прекъсвача с примамлива страница и резервен профил: обхванете всеки тип прекъсване, прочетете кодовете за изход на curl и отделете истинската блокировка от DNS повреда.
Не ви трябва истински акаунт, за да разберете дали прекъсвачът издържа; точно това тестът излага на риск. Проверката създава кратък прозорец, в който трафикът може или не може да излезе извън тунела, затова полезният товар трябва да е нещо, което можете да загубите. Сега правя това с примамлива страница и резервен профил на браузъра и получавам по-ясен отговор от рутината с браузър и уебмейл, която използвах преди. Следващото върви в същия ред, който клиентът представя: настройката, дестинацията, преходът, после доказателствата.
Тестът отговаря на един тесен въпрос: по време на този преход може ли това приложение да достигне мрежата извън тунела? Той не казва нищо за това дали останалата част от политиката е разумна. Дръжте обхвата толкова тесен и резултатът си заслужава да бъде записан.
Намерете прекъсвача и обхвата му в клиента
Отворете клиента и намерете настройката за блокиране, преди да промените каквото и да е състояние на мрежата. Доставчиците я наричат различно: прекъсвач, режим на заключване, мрежова ключалка, блокиране на трафик извън тунела. Етикетът ви казва по-малко от опциите вътре. Важно е дали блокировката се прилага винаги, или само когато приложението реши, че тунелът току-що е отказал, и дали покрива всяко приложение или избран списък.
След това избройте преходите, които клиентът ви реално може да извърши. Прекъсване, започнато от потребителя, затваряне на приложението и загуба на връзката със сървъра са три различни кодови пътя в повечето клиенти и те не споделят една политика за блокиране. Някои освобождават блокировката при изход от приложението. Други оставят правилата за филтриране инсталирани, докато нещо не ги премахне. Прочетете справочника с настройки на доставчика за изданието, което използвате, вместо да предполагате, после запишете кой от трите тествате.
Запишете и профила: протокол, семейства адреси и дали разделеното тунелиране е включено. Твърдение за цялото устройство е безсмислено, ако профилът умишлено изключва няколко приложения, а изключване, което сте настроили, не е изтичане. Справочникът с настройки на OpenVPN Connect е от типа страници, които посочват кой превключвател променя кое поведение, макар етикетите да се различават при различните клиенти.
Изберете примамлива дестинация, която работи и без тунела
Примамката трябва да има две свойства и пропускането на което и да е от тях дава нечетим резултат. Тя трябва да е достъпна директно, когато тунелът е спрян и блокировката е изключена, иначе „тя спря да отговаря“ може просто да означава, че хостът е изчезнал. И не трябва да изисква вход, бисквитка или плащане, за да ви струва изтичането един ред в журнала, а не сесия.
Статична страница на хост, който контролирате, е чистият избор. Резервна виртуална машина с обикновен HTTP сървър е почти толкова добра, а публична страница за проверка на свързаността работи, ако приемете, че нейната наличност е извън вашия контрол. Отбележете адреса, порта, семейството адреси и дали заявката изисква търсене на име, защото всяко от тях става променлива, която може да се наложи да изолирате по-късно.
Установете базовата линия, преди да докоснете прекъсвача. При включен тунел примамката трябва да отговаря през тунела, което доказва, че маршрутът на политиката работи. При спрян тунел и изключена блокировка тя трябва да отговаря директно, което доказва, че дестинацията е жива. Само тогава отказ в блокираното състояние ви казва нещо.
Изпълнете преходите в фиксиран ред
Вземете преходите един по един и дайте на всеки няколко секунди да се установи, защото клиентите често разрушават и преизграждат правила в тази пауза. Изпълнението на същата кратка проверка всеки път запазва наблюденията сравними:
curl -sS -o /dev/null -w 'http=%{http_code}\n' --max-time 5 http://decoy.example/
echo "curl_exit=$?"
dig +short decoy.example
curl -6 -sS -o /dev/null -w 'v6_http=%{http_code}\n' --max-time 5 http://decoy.example/
echo "curl_v6_exit=$?"
| Transition | Expected with the block on | Failure signature |
|---|---|---|
| Manual disconnect | Decoy stops answering within seconds | Decoy still returns 200 |
| Server or path failure | Blocked, with no exemption for the old endpoint | Direct access during the gap |
| Quit the app | Client-dependent; record what happens | Block disappears with the process |
| Wi-Fi to Ethernet | Block holds until the tunnel returns | Traffic flows mid-change |
Редът за затваряне на приложението заслужава отделно изпълнение, дори никога да не затваряте клиента при нормална употреба. Ако блокировката се освободи при изход, срив или принудително обновяване ви дава същото излагане и това е факт за внедряването, не за търпението ви. В Windows еквивалентните проверки са Resolve-DnsName decoy.example и curl.exe -s -o NUL -w "%{http_code}" http://decoy.example/.
Отделете блокировка от повреден резолвер
Страница, която не се зарежда, има няколко причини и само една от тях е работещият прекъсвач. Ако името не се разрешава, научихте, че DNS е блокиран или повреден, а не че пътят на данните е блокиран. Проверете и буквален адрес, за да не зависи отговорът изобщо от разрешаването.
Кодовете за изход на curl разделят тези случаи: 6 е отказ при разрешаване на име, 7 означава, че връзката е отказана, 28 е изчакване. Блокиран маршрут обикновено се появява като изчакване или отказ срещу буквален адрес. Блокировка само на DNS оставя 6 и скрива всичко останало. Кеширана страница или портал за прихващане заблуждава окото, затова доказателството е кодът за изход, а не екранът.
Повторете проверката по IPv6 с буквален адрес. Блокировка, която покрива IPv4 и игнорира IPv6, е достатъчно честа, за да заслужи свой ред в бележките ви, а клиент, който изключва IPv6 извън тунела, трябва да се проваля чисто и при двете семейства.
Запишете обхвата, който резултатът покрива
Когато тунелът се върне, потвърдете възстановяването: примамката отговаря през тунела, резолверът връща отговори и политиката стои там, където сте я оставили. След това отменете експериментите. Временно правило на защитната стена, маршрут за отстраняване на грешки или тестов профил, оставени на място, ще объркат следващото изпълнение и могат да надживеят приложението.
Едно преминаване покрива едно издание на клиента, един профил, един преход и едно семейство адреси. Запишете тези четири заедно с резултата:
- Издание на клиента и платформа и дали настройката е за профил или глобална.
- Профил, протокол и всякакви изключения за разделен тунел.
- Тестван преход и как сте го задействали.
- Семейства адреси и DNS, с кодове за изход на curl за блокираното и неблокираното състояние.
Ако някой ред е празен, тестът не е завършен. Роумингът означава повторение на реда за смяна на мрежата. Ненаблюдавано рестартиране означава проверка, че правилата се връщат, а това е въпрос за реда на възстановяване, не за прекъсвача. Повторете последователността след обновяване на клиента, защото превключвателите рядко се променят, докато поведението зад тях се променя. Дръжте примамката под ръка: нищо за ротиране и следващата проверка отнема пет минути.