Формулари заштитног зида траже TCP порт, а очигледан унос је 50. Тај унос не дозвољава ништа, јер је ESP IP протокол број 50, а бројеви протокола нису портови. Два именска простора деле само мале целе бројеве и ништа друго, и грешка остаје невидљива док се IKE не заврши и заштићени саобраћај никада не стигне.

Два именска простора која деле мале бројеве

IP заглавље носи поље протокола које именује оно што следи: 6 за TCP, 17 за UDP, 1 за ICMP, 50 за ESP, 51 за AH. TCP или UDP заглавље носи бројеве портова, који бирају процес на одредишном домаћину. Протокол 50 и TCP порт 50 су неповезане вредности, али дијалог може учинити да изгледају заменљиво.

Зато правило за прослеђивање портова не може изразити изворни ESP. Не постоји ESP одредишни порт који би се проследио, а уређај који разуме само правила о портовима нема никакав речник за тај пакет. Исправно правило уместо тога именује IP протокол. Сваки дијалог о портовима је погрешан алат за тај пакет.

Забуна има и другу половину. Када је пакет шифрован, све унутар њега је непрозирно, укључујући TCP заглавље изворне везе. Заштитни зид који прегледа портове на том пакету гледа спољашње заглавље, које у изворном случају нема портова за преглед.

Изворни ESP, затим инкапсулирана алтернатива

Изворни ESP се преноси директно као IP протокол, што је једнако ефикасно и незгодно. Ефикасно је зато што нема додатног заглавља, а незгодно зато што га ниједан уређај који преводи адресе и портове не може пратити. NAT traversal постоји да то реши, тако што ESP пакет умота у UDP како би преводилац имао портове за преписивање.

Form on the wireHow it is identifiedWhat the firewall must permit
IKE negotiationUDP with a destination portUDP 500, and 4500 once traversal is detected
Native ESPIP protocol 50 in the outer headerThe protocol itself, with no port to name
ESP inside UDPUDP 4500 carrying an ESP payloadThe UDP port pair, which translation devices can track

Два облика су алтернативна распоређивања истог канала података, а не слојеви једног. Дозвола изворног ESP не дозвољава инкапсулирани облик, а дозвола UDP 4500 не дозвољава изворни саобраћај, па скуп правила мора да одговара распоређивању, а не да случајно покрива оба.

И откривање је овде важно. Крајње тачке одлучују између облика током преговора, а прелаз се обично догађа када се између њих открије NAT. Зато пут који се промени након успостављања тунела може преместити саобраћај у именски простор који ваша правила никада нису покривала.

Прочитајте који облик веза стварно користи

Питајте крајњу тачку уместо да нагађате из заштитног зида. У Linux-у запис стања извештава да ли асоцијација користи UDP инкапсулацију и који су портови укључени. Снимање пакета одговара на исто питање са жице, и обоје је брже од читања скупа правила и наде.

ip xfrm state | grep -A3 encap
tcpdump -ni any 'ip proto 50 or udp port 4500'

Прва команда приказује тип инкапсулације када се користи NAT traversal и ништа када се не користи. Друга приказује који од два облика стварно прелази интерфејс, и то завршава расправе о конфигурацији која на папиру изгледа исправно.

Супротни доказ припада истом кораку. Правило које извештава нула подударања говори вам да пакет никада није стигао до њега, и то је питање рутирања или селектора, а не заштитног зида.

Затим одвојено потврдите контролни канал. IKE има своје портове и своје дневнике, а завршени преговори без података су управо та подела о којој је овај чланак.

Напишите правило у исправном именском простору

Правило протокола и правило порта су различите инструкције, па алат мора да изрази ону коју мислите. У nftables-у подударање протокола је експлицитно, а инкапсулирана алтернатива добија своје UDP правило. Држите два правила једно поред другог да пар буде видљив при прегледу.

nft add rule inet filter input ip protocol esp accept
nft add rule inet filter input udp dport { 500, 4500 } accept

Не шири ни једно од правила да надокнадиш погрешну дијагнозу. Дозвола за све за ESP протокол на сваком интерфејсу, или UDP дозвола од било чега до било чега, исправља симптом и уклања контролу коју си покушавао да поставиш. Уски подржани ток је скоро увек довољан када је облик познат.

На крају, држите слојеве исправно када тунел ради, а апликација не. Пакети који стижу на мрежни пролаз и даље траже прослеђивање, повратну руту и политику која их прихвата, а ништа од тога није изражено ESP правилом. Порт који недостаје објашњава конкретан квар, а не сваки квар IPsec-а. Држите исправку правила и проверу рутирања као два одвојена закључка.

Запишите облик који сте приметили, правило протокола које сте додали и бројач који сте после видели. Три реда, и следећа особа може да разликује грешку именског простора од грешке рутирања за минут уместо за поподне.

Повезани чланци