Що таке kill switch у VPN?
Kill switch у VPN — це функція, яка блокує мережевий трафік, якщо тунель VPN несподівано розривається. Ця стаття пояснює, що kill switch насправді робить, як він реалізований на рівні операційної системи та як перевірити, що функція працює правильно.
Визначення
Kill switch — це елемент керування на рівні мережі, який не дає трафіку залишати пристрій через незахищений інтерфейс, поки VPN номінально активний. Якщо тунель VPN розривається — через зміну мережі, збій сервера чи будь-яку іншу причину — kill switch гарантує, що трафік не перемикнеться непомітно назад на типовий мережевий інтерфейс.
Цю функцію іноді також називають «мережевим блокуванням,» «постійним захистом,» або «інтернет kill switch.» Поведінка та сама незалежно від назви.
Навіщо потрібен kill switch
Тунелі VPN не завжди ідеально стабільні. Зміни мережі — перемикання з Wi-Fi на мобільний зв'язок, переміщення між точками доступу, проїзд через тунелі — можуть ненадовго перервати з'єднання. Технічне обслуговування сервера, тимчасові проблеми з пірингом або рідкісні помилки протоколу теж можуть спричинити розриви.
Без kill switch операційна система спрямує трафік через будь-який доступний інтерфейс. З погляду користувача пристрій ніби продовжує працювати нормально — вебсторінки завантажуються, застосунки з'єднуються — але трафік тепер проходить через локальну мережу та інтернет-провайдера, а не через VPN.
Для користувачів, які покладаються на VPN заради приватності чи доступу до сервісів, прив'язаних до місцеположення, таке непомітне перемикання зводить нанівець сенс використання VPN. Kill switch гарантує, що зв'язок буде призупинено, а не непомітно перенаправлено.
Як це реалізовано
Реалізації kill switch різняться залежно від платформи. Існує два загальні підходи.
Реалізація на рівні системи
На платформах із вбудованою підтримкою VPN kill switch забезпечує операційна система. В iOS фреймворк Network Extension надає параметр «includeAllNetworks», який у поєднанні з відповідними правилами маршрутизації не дає трафіку залишати пристрій через жоден інтерфейс, крім тунелю. Це забезпечується на рівні ядра й поширюється на всі застосунки, зокрема ті, що працюють у фоновому режимі.
У Linux kill switch зазвичай реалізують за допомогою правил фаєрвола — iptables або nftables — які блокують увесь трафік, окрім пакетів, призначених для адреси сервера VPN. Ці правила додаються під час встановлення тунелю й видаляються, коли його навмисно відключають.
Реалізація на рівні застосунку
Деякі застосунки VPN реалізують kill switch усередині самого застосунку, відстежуючи тунель і змінюючи правила маршрутизації чи фаєрвола у відповідь на розрив. Реалізації на рівні застосунку гнучкіші, але залежать від того, чи застосунок залишається активним для забезпечення політики.
Забезпечення на рівні системи зазвичай надійніше, бо воно продовжує працювати навіть якщо застосунок VPN аварійно завершується чи його примусово закривають.
Типи kill switch
Kill switch можна налаштувати в кількох режимах, які відрізняються тим, наскільки агресивно вони блокують трафік.
- Постійний kill switch. Трафік блокується щоразу, коли VPN не підключений активно, зокрема коли застосунок не був запущений. Це дає найсильнішу гарантію, але потребує явної дії для вимкнення.
- Сеансовий kill switch. Трафік блокується лише під час активного сеансу VPN. Якщо користувач відключається вручну, kill switch деактивується й звичайний трафік відновлюється.
- Kill switch для окремих застосунків. Доступний на деяких настільних платформах, цей режим блокує певні застосунки, коли VPN не працює, дозволяючи іншим продовжувати роботу нормально. Така конфігурація корисна для інструментів, що працюють із конфіденційними даними, але деталізація додає складності.
Коли спрацьовує kill switch
Kill switch створений, щоб опрацьовувати умови, які операційна система зазвичай не вважає збоями. Поширені тригери включають:
- Сервер VPN стає недосяжним через збої мережі або технічне обслуговування на боці сервера.
- Мережевий інтерфейс пристрою змінюється — наприклад, перехід з Wi-Fi на мобільний зв'язок — і тунель не відновлюється швидко.
- Помилка на рівні протоколу спричиняє завершення тунелю.
- Локальна мережа втрачає пакети до сервера VPN чи від нього, зокрема в певних сценаріях із captive portal.
У кожній із цих умов kill switch призупиняє трафік, доки тунель не буде відновлено або користувач явно не вимкне kill switch.
Обмеження
Kill switch — це захисна функція, а не повне рішення. Варто відзначити два обмеження.
Перехід не завжди миттєвий. Між моментом, коли тунель розривається, і моментом, коли kill switch повністю вмикається, може існувати невеличке вікно, протягом якого трафік теоретично може просочитися. У добре спроєктованих системах це вікно настільки коротке, що практично ним можна знехтувати — зазвичай кілька мілісекунд — але воно не завжди нульове. Реалізації на рівні системи закривають це вікно надійніше, ніж реалізації на рівні застосунку.
Витоки DNS — окрема проблема. Kill switch не дає IP-трафіку залишати пристрій через незахищені інтерфейси, але запити DNS іноді можуть обходити тунель через типові налаштування системи. Повна конфігурація використовує і kill switch, і маршрутизацію DNS через тунель. Snap VPN налаштовує обидва за замовчуванням.
Перевірка
Kill switch можна перевірити, змоделювавши збій тунелю й переконавшись, що трафік заблоковано.
- Підключіть VPN і переконайтеся, що сервіс перевірки IP показує адресу сервера.
- Не відключаючись через застосунок, вимкніть мережевий інтерфейс, який використовує VPN — наприклад, вимкнувши Wi-Fi, поки тунель активний.
- Спробуйте завантажити вебсторінку. З робочим kill switch сторінка не повинна завантажуватися, доки тунель не буде відновлено або kill switch навмисно не вимкнуть.
В iOS kill switch забезпечується на рівні системи, коли профіль VPN налаштований з відповідними параметрами. Snap VPN вмикає kill switch за замовчуванням і не показує його як необов'язковий параметр — ця функція є частиною стандартної конфігурації, а не налаштуванням, яке можна випадково вимкнути.
Докладніше про конфігурацію VPN і про те, чого можна очікувати від VPN, читайте в нашому вступі до VPN та посібнику з налаштування на iPhone.