Як чытаць свежы абмен IKE_SA_INIT у запісе
Свежыя перамовы IKEv2 можна чытаць да з’яўлення ключоў. Запішыце спробу, прачытайце загаловак, супастаўце адказ і адрозніце IKE ад ESP на порце 4500.
Пачынайце з запісу, які пачынаецца да першага пакета спробы, інакш вы будзеце чытаць сярэдзіну размовы. Перамовы, якія ўжо ідуць, паказваюць зашыфраваныя абмены і абнаўленні ключоў, і ні тое, ні другое не падобна на пачатак. Пачатак — гэта частка, якую можна дэкадаваць без ключоў, таму яна так добра адказвае на пытанні дасяжнасці. Чатыры праверкі па парадку вядуць вас ад свежага запісу да абгрунтаванай высновы пра тое, які бок перастаў гаварыць.
Перш за ўсё, пераканайцеся, што запіс пачынаецца з пачатку
Запіс, пачаты пасля ўзняцця тунеля, будзе змяшчаць інкапсуляваны паток даных і перыядычныя keepalive, і абодва альбо зашыфраваныя, альбо амаль пустыя. Перазапусціце кліент і запішыце саму спробу або наўмысна выклічце свежае злучэнне, пакуль ідзе запіс. Калі вы не можаце стварыць свежую спробу, зазначце гэта ў нататках, бо ніякае дэкадаванне не верне пачатак, які вы ніколі не запісалі.
Абмяжуйце запіс двума канчатковымі пунктамі і UDP 500 і 4500, каб файл заставаўся дастаткова малым для чытання. На занятым хосце нефільтраваны запіс хавае перамовы пад староннім трафікам.
tcpdump -i any -n -s 0 -w fresh-ike.pcap 'udp port 500 or udp port 4500'Захавайце файл, калі спроба цікавая, бо той самы запіс адказвае на абодва наступныя пытанні: чым быў абмен і ці вярнулася што-небудзь. Пазначце яго часам пачатку і парай канчатковых пунктаў, па якой вы фільтравалі. Запіс без гэтых двух фактаў бескарысны праз тыдзень, калі адрасы змяніліся і ніхто не памятае, якую спробу ён запісаў.
Другое, чытайце загаловак перад карыснай нагрузкай
Загаловак IKE нясе індэксы параметраў бяспекі, тып абмену і ідэнтыфікатар паведамлення, і пры свежых перамовах гэтыя значэнні адметныя. Ініцыятар прыдумвае ненулявы SPI, пачатковы запыт нясе нулявы SPI адказніка, бо адказу яшчэ не бачылі, тып абмену — IKE_SA_INIT, а ідэнтыфікатар паведамлення нулявы. Усё астатняе належыць пазнейшай стадыі тых жа перамоваў або зусім іншай спробе.
Прапанова, абмен ключамі і nonce-карысная нагрузка ў гэтым першым абмене чытэльныя ў адкрытым выглядзе. Чытэльнасць не азначае аўтэнтыфікацыі, і на гэтым этапе ні адзін бок не даказаў сваю асобу.
Прыватнае значэнне Diffie-Hellman ніколі не перасякае дрот, таму запіс не дазваляе вывесці ключы сеансу. Аўтэнтыфікацыя адбываецца ў наступным абмене, абароненая тым, пра што дамовіўся першы. Калі хтосьці спытае, ці сапраўдны бок, гэты абмен не можа адказаць на гэтае пытанне. Ён можа паказаць толькі, што абодва бакі пагадзіліся на прапанову і стварылі агульны сакрэт, якога ў файле няма.
Трэцяе, супастаўце запыт з яго адказам
Супастаўляйце па пары SPI, тыпе абмену і ідэнтыфікатары паведамлення, затым праверце сцяг адказу. Паўторнае перасыланне паўтарае ідэнтыфікатар паведамлення арыгінала і не з’яўляецца другой спробай уваходу. Падлік пакетаў замест абменаў — гэта шлях, якім здаровыя перамовы ператвараюцца ў фантомны цыкл.
Адказ таксама можа быць адмовай: запыт кукі, паведамленне пра непрымальную групу або памылка пра прапанову. Гэта законныя адказы, і яны значаць, што шлях працуе, а палітыка не працуе. Дэкадуйце паведамленне замест таго, каб лічыць кожны адказ поспехам. Калі паведамленне называе групу або прапанову, выпраўленне на баку канфігурацыі, а не на брандмаўэры.
Кірунак таксама мае значэнне. Запыт без адказу і адказ, які ніколі не даходзіць да кліента, — гэта розныя няспраўнасці, і толькі другая выглядае як тайм-аўт на баку кліента.
Чацвёртае, аддзяліце IKE ад усяго астатняга на 4500
Порт 4500 нясе тры рэчы, якія ў аглядзе выглядаюць аднолькава: IKE за чатырохбайтавым нулявым маркерам non-ESP, інкапсуляваны ESP, у пазіцыі маркера якога ненулявы SPI, і кароткія keepalive. Менавіта гэты маркер аддзяляе IKE ад інкапсуляванага ESP, таму прачытайце гэтыя байты, перш чым называць трафік IKE. Метка запісу, якая чытае 4500, — гэта нумар порта, а не пратакол.
Інкапсуляваны ESP — гэта зашыфраваная карысная нагрузка, якую вы не можаце інтэрпрэтаваць без ключоў, і яго наяўнасць можа быць прыкметай працоўнага тунеля, а не няспраўнасцю.
Сачыце за абодвума партамі для адной і той жа спробы, бо IKE можа перайсці на 4500 пасля выяўлення NAT, хоць адкрыўся на 500. След, адфільтраваны толькі па 500, выглядае ціхім менавіта тады, калі перамовы ўдаліся і перамясціліся. Пашырце фільтр і перачытайце тое ж акно часу, перш чым рабіць любую выснову з адсутнасці.
Што азначае цішыня ў адной кропцы назірання
Адсутнасць адказу ў кліента даказвае толькі тое, што ўбачыла гэтая кропка. Фільтраванне, маршрутызацыя, няправільны выдалены адрас, якая не працуе служба і неадпаведнасць пратакола даюць аднолькавы пусты след.
Адпаведны ICMP unreachable дадае довад, але прачытайце цытаваны пакет унутры яго і адзначце адрас прылады, якая яго адправіла.
Адмова маршрутызатара — гэта падзея, адрозная ад аўтэнтыфікаванай памылкі, якую вяртае бок, і толькі другая даказвае, што служба жывая. Супастаўце тую ж спробу з журналамі сервера або ўзгодненым назіраннем, каб даведацца, ці прыйшоў запыт і ці выйшаў адказ. Трымайце запісы абмежаванымі і прыватнымі, бо чытэльныя палі рукапаціскання не робяць астатні файл бяспечным. Каштоўны вынік — адна супастаўленая пара запыту і адказу або адна дакументаваная прага з названай кропкай назірання.