IKE праз TCP 4500: праверце абодва бакі да правіла порта
Інкапсуляцыя TCP узгадваецца абодвума бакамі, а не выдаецца правілам файрвола. Выканайце праверку слухача, захоп і чатыры этапы прыёму па парадку.
Тыкеты падтрымкі часта прыходзяць, калі змена файрвола ўжо ўзгоднена, а тунель усё яшчэ адмаўляецца ўзнімацца. Гэта чаканы вынік, калі функцыя ёсць толькі на адным баку: інкапсуляцыя TCP паводле RFC 9329 павінна быць рэалізавана і наладжана на абодвух баках, і пагадненне адбываецца ўнутры злучэння, перш чым пойдзе любы абаронены трафік. Адкрыццё порта абвяшчае слухача, якога можа не быць, а слухач без адпаведнай канфігурацыі на іншым баку прымае злучэнне і потым змаўкае. Паслядоўнасць ніжэй ставіць танныя праверкі першымі.
Ведайце, што опцыя насамрэч дадае
Убудаваны IPsec пераносіць зашыфраваныя карысныя нагрузкі як IP-пратакол 50, без нумара порта, які трэба дазваляць. NAT traversal заварочвае гэтыя пакеты ў UDP на порт 4500, таму так шмат правілаў файрвола згадваюць гэты порт. RFC 9329 дадае прадстаўленне патоку: пакеты IKE і IPsec абедзве ідуць унутры аднаго злучэння TCP, звычайна на порт 4500.
Гэты паток не вэб-сэрвіс. Злучэнне TCP на 4500 нічога не кажа пра HTTP, TLS ці прыдатнасць да проксі, і HTTP-проксі на шляху звычайна зламае фарміраванне, а не перанясе яго.
Папярэдняя праверка, перш чым чапаць файрвол
Стандарт ставіць TCP як запасны шлях для сетак, якія скідаюць шлях UDP, а не як яго замену. Атрымайце два факты ў кожнага пастаўшчыка: дакладную назву функцыі і версію, якая рэалізуе RFC 9329, а не ўласную варыяцыю. Такія назвы, як IPsec over TCP, выкарыстоўваліся для незвязаных рашэнняў, таму прасіце спасылку на дакумент і ключ канфігурацыі, які яе ўключае. Без абодвух адказаў нічога не меркавайце пра сумяшчальнасць на провадзе.
Давядзіце гэта ў лабараторыі, дзе абодва канцы вашыя. Шлюз, які адказвае на TCP 4500, але ніколі не завяршае IKE, гэта прыкмета слухача без адпаведнай інкапсуляцыі на іншым баку, і выявіць гэта там значна танней, чым падчас акна змен.
На баку адказчыка: ці слухае нешта
Пачніце з сокета. ss -ltnp | grep 4500 паказвае, ці існуе слухач TCP і які працэс ім валодае. Адсутнасць радка спыняе расследаванне на канфігурацыі шлюза, а не на сетцы.
Калі сокет ёсць, назірайце за рукапацісканнем, а не здагадвайцеся з боку кліента: tcpdump -ni any 'tcp port 4500'. Завершаны трохбаковы рукапаціскак, за якім ідзе цішыня, азначае, што паток быў прыняты і абмен IKE унутры яго праваліўся, а SYN без адказу паказвае на фільтраванне або на няправільны адрас.
Параўнайце са шляхам UDP у тым жа акне захопу, каб не блытаць адно з другім: tcpdump -ni any 'udp port 4500 or proto 50'. Трафік па пратаколе 50 або UDP-порце 4500, калі вы лічыце, што выкарыстоўваецца TCP, азначае, што бакі так і не ўзгаднілі запасны шлях. Рабіце захоп і на шлюзе, калі можаце, бо захоп з боку кліента не можа паказаць, што даслаў далёкі канец.
Прымайце ў чатыры асобныя этапы
Разглядайце ўзняцце як чатыры вынікі. Кожны можа праваліцца па іншай прычыне, і адзіны вынік прайшло ці не прайшло хавае, які менавіта, таму спыніцеся на першым этапе, які праваліўся, і пачніце зноў зверху.
| Stage | What you check | What it proves |
|---|---|---|
| 1 | TCP connection established to 4500 | A listener exists and the path permits it |
| 2 | IKE_SA authenticated in the gateway log | Both peers agreed on the encapsulation |
| 3 | CHILD_SA installed, visible with ip xfrm state | Keys exist for the protected traffic |
| 4 | A new application exchange succeeds | The data path works, not just the control path |
Чацвёрты этап звычайна прапускаюць. Існуючая сесія можа працягваць працаваць на кэшаваным стане, таму адкрыйце новае злучэнне да хоста за шлюзам, перш чым закрыць змену. Калі другі этап правальваецца, а першы праходзіць, разыходжанне ў прапанове або ў наладзе інкапсуляцыі, а не ў файрволе.
Адкат і цана пакідання гэтага ўключаным
Сплануйце адмену да змены: выключыце опцыю інкапсуляцыі на абодвух баках і пацвердзіце, што тунель вяртаецца праз UDP. Пакіньце правіла TCP на адзін цыкл агляду на выпадак, калі запасны шлях спатрэбіцца зноў, потым выдаліце яго. Нявыкарыстаны слухач на 4500 гэта паверхня без аперацыйнай каштоўнасці.
Сачыце за прыкметамі прадукцыйнасці, калі праз яго пойдзе рэальная праца. TCP унутры TCP дадае слаі пацверджання, якія затрымліваюцца на адзінай страце, а патокі, што дзеляць адно злучэнне, могуць блакаваць адзін аднаго, таму вымярайце праграму, якая будзе выкарыстоўваць тунель, а не ping.
Спіс прыёмкі
Пацвердзіце назву і версію функцыі на абодвух канцах, слухача на баку адказчыка, захоп з завершаным рукапацісканнем і чатыры этапы, запісаныя з часавымі пазнакамі. Дадайце прычыну запаснога шляху ў запіс аб змене, каб наступны інжынер ведаў, навошта тут TCP. Адрэпетыруйце адкат да таго, як ён спатрэбіцца.
Калі які-небудзь этап праваліўся, выпраўляйце толькі гэты этап. Змена набору шыфраў або налад ідэнтычнасці, каб дагнаць праблему транспарту, звычайна дадае другую, незвязаную памылку паверх першай.