Захоплення на вузлі VPN не записує одну-єдину річ. Ядро показує пакет двічі: загорнутим, на фізичному адаптері, і розгорнутим, на пристрої тунелю. Вибір інтерфейсу — це вибір того, яку з цих історій ви читаєте. Більшість суперечок про те, що доводить захоплення, насправді суперечки про те, яку історію було зібрано.

Інкапсуляція створює два види

Тунель бере пакет, створений застосунком, і поміщає його всередину нового, чиїм призначенням є сервер VPN. Внутрішня форма з’являється на tun0, wg0 або на будь-якому пристрої, створеному клієнтом. Зовнішня форма з’являється на адаптері, який несе її в мережу. Обидві форми законні; вони відповідають на різні питання. Збирайте кожну окремо, бо обидві мають різні заголовки й різних читачів.

sudo tcpdump -i tun0 -n -s 0
sudo tcpdump -i eth0 -n host 198.51.100.20 and udp port 51820

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

Усередині тунелю пакет звичайний

На пристрої тунелю ви бачите те, що застосунок попросив ядро надіслати. Адреси призначення, порти, імена DNS, імена серверів TLS, розміри й час — усе там. Корисне навантаження TLS залишається зашифрованим власною сесією застосунку, тож захоплення не розкриває вміст сторінки. DNS-запит відкритим текстом видно тут, хоча його носій зашифровано, бо він ніколи не захищався.

Зашифрований DNS прибирає це єдине видиме поле. Він не приховує адресу призначення, кількість байтів чи ритм — це властивості потоку, а не запиту.

Ззовні лише конверт і його форма

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

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

Адреса партнера й гігієна захоплення

OpenVPN у режимі TCP тримає встановлений сокет, тож таблиця сокетів може назвати партнера. OpenVPN у режимі UDP часто залишає сокет неза’єднаним, і ss може показати лише локальний бік. Читайте натомість remote профілю, докладний журнал клієнта або маршрут до кінцевої точки. WireGuard безпосередньо повідомляє свою кінцеву точку й останнє рукостискання.

wg show
ss -tunp | grep 51820

Файл захоплення живе довше за сеанс, який його створив. Його можна скопіювати, і він може бути доступним для читання будь-кому з локальним доступом. Зберігайте лише те, що потрібно розслідуванню, обмежте права й видаліть його, коли роботу буде завершено.

Захоплення, яким можна поділитися, має вказувати, який інтерфейс його створив і коли. Без цієї нотатки наступному читачеві доведеться вгадувати, на який рівень він дивиться.

Схожі статті