Захоп VPN: унутраныя пакеты на tun0, канверт на eth0
Інтэрфейс тунеля паказвае пакет адкрытым тэкстам, фізічны адаптар — зашыфраваны канверт. Прачытайце абодва, перш чым назваць захоп уцечкай метаданых.
Захоп на 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
Файл захопу жыве даўжэй за сеанс, які яго стварыў. Яго можна скапіраваць, і ён можа быць даступным для чытання любому з лакальным доступам. Захоўвайце толькі тое, што патрэбна расследаванню, абмежавайце правы і выдаліце яго, калі праца скончана.
Захоп, якім можна падзяліцца, павінен указаць, які інтэрфейс яго стварыў і калі. Без гэтай нататкі наступнаму чытачу давядзецца здагадвацца, на які ўзровень ён глядзіць.