ESP ir IP protokols 50, nevis TCP ports 50: ko atļaut
Protokola numuri un porta numuri ir dažādas nosaukumu telpas. Noteikums TCP portam 50 neko neatļauj, un NAT traversal pārvieto ESP uz UDP 4500.
Ugunsmūra veidlapas prasa TCP portu, un acīmredzamā vērtība ir 50. Šī vērtība neko neatļauj, jo ESP ir IP protokols numurs 50 un protokola numuri nav porti. Abas nosaukumu telpas kopīgi izmanto tikai mazus veselus skaitļus un neko citu, un kļūda paliek neredzama, līdz IKE beidzas un aizsargātā plūsma tā arī neierodas.
Divas nosaukumu telpas, kas kopīgi izmanto mazus skaitļus
IP galvenei ir protokola lauks, kas nosauc to, kas seko: 6 TCP, 17 UDP, 1 ICMP, 50 ESP, 51 AH. TCP vai UDP galvenei ir porta numuri, kas izvēlas procesu mērķa resursdatorā. Protokols 50 un TCP ports 50 ir nesaistītas vērtības, taču dialoga logs var likt tām izskatīties apmaināmām.
Tāpēc portu pāradresācijas noteikums nevar izteikt vietējo ESP. Nav ESP mērķa porta, ko pāradresēt, un ierīcei, kas saprot tikai portu noteikumus, šim paketei vispār nav vārdu krājuma. Pareizais noteikums tā vietā nosauc IP protokolu. Jebkurš portu dialogs šim paketei ir nepareizais instruments.
Apjukumam ir arī otra puse. Kad pakete ir šifrēta, viss tajā ir necaurspīdīgs, tostarp sākotnējā savienojuma TCP galvene. Ugunsmūris, kas pārbauda portus šajā paketē, skatās ārējo galveni, kurai vietējā gadījumā nav portu, ko pārbaudīt.
Vietējais ESP, tad iekapsulētā alternatīva
Vietējais ESP tiek pārsūtīts tieši kā IP protokols, kas ir vienlīdz efektīvi un neērti. Efektīvi, jo nav papildu galvenes, un neērti, jo neviena ierīce, kas veic adrešu un portu tulkošanu, to nevar izsekot. NAT traversal pastāv tieši tāpēc: tas iesaiņo ESP paketi UDP, lai tulkotājam būtu porti, ko pārrakstīt.
| Form on the wire | How it is identified | What the firewall must permit |
|---|---|---|
| IKE negotiation | UDP with a destination port | UDP 500, and 4500 once traversal is detected |
| Native ESP | IP protocol 50 in the outer header | The protocol itself, with no port to name |
| ESP inside UDP | UDP 4500 carrying an ESP payload | The UDP port pair, which translation devices can track |
Abas formas ir viena un tā paša datu kanāla alternatīvi izvietojumi, nevis viena slāņi. Atļaujot vietējo ESP, netiek atļauta iekapsulētā forma, un atļaujot UDP 4500, netiek atļauta vietējā plūsma, tāpēc noteikumu kopai jāatbilst izvietojumam, nevis nejauši jāaptver abi.
Arī noteikšana šeit ir svarīga. Galapunkti izlemj starp formām sarunu laikā, un pārslēgšanās parasti notiek, kad starp tiem tiek konstatēts NAT. Tāpēc maršruts, kas mainās pēc tuneļa izveides, var pārvietot plūsmu uz nosaukumu telpu, ko jūsu noteikumi nekad nav aptvēruši.
Izlasiet, kuru formu savienojums faktiski izmanto
Jautājiet galapunktam, nevis miniet no ugunsmūra. Linux stāvokļa ieraksts norāda, vai asociācija izmanto UDP iekapsulēšanu un kuri porti ir iesaistīti. Pakešu tveršana atbild uz to pašu jautājumu no vada, un abas ir ātrākas par noteikumu kopas lasīšanu un cerēšanu.
ip xfrm state | grep -A3 encap
tcpdump -ni any 'ip proto 50 or udp port 4500'
Pirmā komanda parāda iekapsulēšanas tipu, kad tiek izmantots NAT traversal, un neko, kad netiek. Otrā parāda, kura no abām formām faktiski šķērso saskarni, un tas izbeidz strīdus par konfigurāciju, kas uz papīra izskatās pareiza.
Pretējie pierādījumi pieder pie tā paša soļa. Noteikums, kas ziņo par nulli atbilstību, jums saka, ka pakete to nekad nav sasniegusi, un tas ir maršrutēšanas vai selektora jautājums, nevis ugunsmūra.
Pēc tam atsevišķi apstipriniet vadības kanālu. IKE ir savi porti un savi žurnāli, un pabeigtas sarunas bez datiem ir tieši tas atdalījums, par ko ir šis raksts.
Rakstiet noteikumu pareizajā nosaukumu telpā
Protokola noteikums un porta noteikums ir dažādas instrukcijas, tāpēc instrumentam jāizsaka tas, ko jūs domājat. nftables protokola atbilstība ir skaidra, un iekapsulētā alternatīva iegūst savu UDP noteikumu. Turiet abus noteikumus blakus, lai pāris būtu redzams pārskatīšanas laikā.
nft add rule inet filter input ip protocol esp accept
nft add rule inet filter input udp dport { 500, 4500 } accept
Nepakļaujieties kārdinājumam paplašināt kādu no noteikumiem, lai kompensētu nepareizu diagnozi. Atļauja visam ESP protokolam katrā saskarnē vai UDP atļauja no jebkurienes uz jebkurieni izlabo simptomu un noņem kontroli, ko mēģinājāt iestatīt. Šaurā atbalstītā plūsma gandrīz vienmēr ir pietiekama, tiklīdz forma ir zināma.
Visbeidzot, turiet slāņus taisni, kad tunelis strādā, bet lietojumprogramma ne. Paketēm, kas nonāk pie vārtejas, joprojām vajadzīga pāradresācija, atgriešanās maršruts un politika, kas tās pieņem, un neviens no tiem nav izteikts ar ESP noteikumu. Trūkstošais ports izskaidro konkrētu kļūmi, nevis katru IPsec kļūmi. Turiet noteikuma labojumu un maršrutēšanas pārbaudi kā divus atsevišķus secinājumus.
Pierakstiet formu, ko novērojāt, protokola noteikumu, ko pievienojāt, un skaitītāju, ko redzējāt pēc tam. Trīs rindas, un nākamā persona var atšķirt nosaukumu telpas kļūdu no maršrutēšanas kļūdas minūtē, nevis pēcpusdienā.