Трафік на eth0 не азначае, што тунель VPN працякае
Публічныя адрасы на фізічным адаптары звычайна з'яўляюцца ўласнай абгорткай тунеля. Параўнайце інтэрфейсы, затым спытайце ў ядра, якую прыладу яно выбірае.
Бачыць публічныя адрасы на 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 апісвае селектары інтэрфейса і кірунку, выкарыстаныя вышэй.