Бачити публічні адреси на eth0, поки тунель піднятий, здається доказом того, що щось утекло. Зазвичай усе навпаки: власні пакети тунелю мають перетнути цей адаптер, щоб дістатися сервера, і вони виглядають як звичайні потоки UDP або TCP. Внутрішній пакет з'являється лише на пристрої тунелю. Розрізнити ці два випадки — питання читання обгортки, а не довіри до числа байтів.

Кожен пакет тунелю все одно перетинає дріт

Тунель — це інтерфейс, а не дріт. Клієнт бере внутрішній пакет, загортає його й надсилає результат на адресу та порт сервера з профілю. На фізичному адаптері ви бачите обгортку; на пристрої тунелю ви бачите те, що було загорнуто.

У режимі UDP зовнішній потік — це одна пара адреси й порту в кожному напрямку, тому здоровий тунель виглядає на eth0 майже нудно. Саме цю єдину пару й треба шукати першою.

Захоплюйте по одному інтерфейсу за раз

Захоплюйте по одному інтерфейсу за раз, якщо збираєтеся порівнювати лічильники. Псевдоінтерфейс any збирає всі пристрої одразу, тому пересланий пакет з'являється на вході й виході, а локально створений — двічі у двох різних виглядах. Рівні числа пакетів за нерівних чисел байтів нормальні, адже обгортка більша за те, що вона несе. ARP, DHCP і оголошення маршрутизатора IPv6 належать локальному каналу й нічого не кажуть про ваш застосунок.

sudo tcpdump -i eth0 -n host 203.0.113.10 and udp port 1194

Замініть адресу й порт значеннями з самого профілю. Якщо цей потік стабільний, тунель щось несе.

Запитайте в ядра, який пристрій воно обере

Запитайте в ядра, який пристрій воно обрало б, а потім підтвердьте на дроті. Пошук маршруту — це рішення, а захоплення — доказ того, що рішенню дотрималися. Вони відповідають на різні питання, і вам потрібні обидва.

ip route get 1.1.1.1
ip -6 route get 2606:4700:4700::1111

Розділений результат — звичайна знахідка: IPv4 іде в тунель, а IPv6 іде на фізичний адаптер, бо профіль проштовхнув лише маршрути IPv4. Це справжній витік, і він невидимий у захопленні лише з IPv4. Відфільтруйте IPv6 і стежте за адресами, які не є сервером і не є link-local.

Виконайте обидва пошуки до підключення й після нього, щоб побачити, що клієнт справді змінив. Різниця між двома запусками і є реальним ефектом клієнта.

Коли захоплення справді є витоком

Іноді захоплення каже правду. Вужчий маршрут, який надсилає один префікс в обхід тунелю, підмережа, яку клієнту звеліли виключити, або дозвільне правило брандмауера, що спрацьовує до політики тунелю, усе це може вивести трафік на дріт відкритим. Правило, що збігається з групою процесів, теж може бути навмисним винятком. Прочитайте його інтерфейс і область призначення, перш ніж називати це дефектом.

Виправте маршрут або виняток, а не брандмауер. Потім знову захопіть із нового з'єднання й перевірте IPv4 та IPv6 окремо, адже виправлення одного нічого не каже про інший. посібник із tcpdump описує селектори інтерфейсу й напрямку, використані вище.

Схожі статті