ESP on IP-protokoll 50, mitte TCP-port 50: mida lubada
Protokollinumbrid ja pordi numbrid on erinevad nimeruumid. Reegel TCP-pordi 50 jaoks ei luba midagi ja NAT-i läbimine viib ESP UDP 4500 sisse.
Tulemüüri vormid küsivad TCP-porti ja ilmne vastus on 50. See vastus ei luba midagi, sest ESP on IP-protokoll number 50 ja protokollinumbrid ei ole pordid. Kaks nimeruumi jagavad väikeseid täisarve ja mitte midagi muud, ning viga jääb nähtamatuks seni, kuni IKE lõpeb ja kaitstud liiklus kunagi kohale ei jõua.
Kaks nimeruumi, mis jagavad väikeseid numbreid
IP-päis kannab protokolli välja, mis nimetab järgmise: 6 TCP jaoks, 17 UDP jaoks, 1 ICMP jaoks, 50 ESP jaoks, 51 AH jaoks. TCP või UDP päis kannab pordi numbreid, mis valivad sihtkohas protsessi. Protokoll 50 ja TCP-port 50 on seostamata väärtused, kuid dialoogiboks võib need tunduda vahetatavana.
Seetõttu ei saa pordi edusaatmise reegel väljendada kohalikku ESP-d. Edasi saata pole ühtegi ESP sihtporti ja seade, mis mõistab ainult pordireegleid, ei oma selle paketi jaoks üldse sõnavara. Õige reegel nimetab hoopis IP-protokolli. Iga pordi dialoog on selle paketi jaoks vale tööriist.
Segadusel on ka teine pool. Kui pakett on krüpteeritud, on kõik selle sees läbipaistmatu, sealhulgas algse ühenduse TCP-päis. Tulemüür, mis selles paketis porte uurib, vaatab välist päist, millel kohalikul juhul porte uurida pole.
Kohalik ESP, seejärel kapseldatud alternatiiv
Kohalikku ESP-d kantakse otse IP-protokollina, mis on ühtviisi tõhus ja ebamugav. See on tõhus, sest lisapäist pole, ja ebamugav, sest ükski aadresse ja porte tõlkiv seade ei suuda seda jälgida. NAT-i läbimine ongi selle lahendamiseks: see mässib ESP-paketi UDP sisse, et tõlkijal oleks porte, mida ümber kirjutada.
| 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 |
Need kaks vormi on sama andmekanali alternatiivsed juurutused, mitte ühe kihid. Kohaliku ESP lubamine ei luba kapseldatud vormi ja UDP 4500 lubamine ei luba kohalikku liiklust, seega peab reeglistik vastama juurutusele, mitte kogemata mõlemat katma.
Tuvastamine loeb ka siin. Lõpp-punktid otsustavad vormide vahel läbirääkimiste ajal ja üleminek toimub tavaliselt siis, kui nende vahel tuvastatakse NAT. Seetõttu võib pärast tunnelit muutuv tee viia liikluse nimeruumi, mida teie reeglid kunagi ei katnud.
Lugege, millist vormi ühendus tegelikult kasutab
Küsige lõpp-punktilt, mitte oletage tulemüüri põhjal. Linuxis teatab oleku kirje, kas assotsiatsioon kasutab UDP kapseldamist ja millised pordid on seotud. Paketi püüdmine vastab samale küsimusele juhtmelt ja mõlemad on kiiremad kui reeglistiku lugemine ja lootmine.
ip xfrm state | grep -A3 encap
tcpdump -ni any 'ip proto 50 or udp port 4500'
Esimene käsk näitab kapseldamise tüüpi, kui NAT-i läbimine on kasutusel, ja mitte midagi, kui pole. Teine näitab, milline kahest vormist tegelikult liidest läbib, ja see lõpetab vaidlused seadistuse üle, mis paberil õige välja näeb.
Vastutõend kuulub samasse sammu. Reegel, mis teatab nullist vastest, ütleb teile, et pakett ei jõudnud kunagi selleni, ja see on marsruutimise või selektori küsimus, mitte tulemüüri oma.
Seejärel kinnitage juhtkanal eraldi. IKE-l on oma pordid ja oma logid ning andmeteta lõpetatud läbirääkimine on täpselt see lõhe, millest see artikkel räägib.
Kirjutage reegel õigesse nimeruumi
Protokollireegel ja pordireegel on erinevad juhised, seega peab tööriist väljendama seda, mida te mõtlete. Nftablesis on protokolli vastavus selgesõnaline ja kapseldatud alternatiiv saab oma UDP-reegli. Hoidke kaks reeglit kõrvuti, et paar oleks ülevaatamisel nähtav.
nft add rule inet filter input ip protocol esp accept
nft add rule inet filter input udp dport { 500, 4500 } accept
Vastupanu kiusatusele laiendada kumbagi reeglit vale diagnoosi kompenseerimiseks. Kõige lubamine ESP-protokollile igal liidesel või UDP-luba ükskõik kust ükskõik kuhu parandab sümptomi ja eemaldab kontrolli, mida te seadistada püüdsite. Kitsas toetatud voog on peaaegu alati piisav, kui vorm on teada.
Lõpuks, hoidke kihid õigesti, kui tunnel töötab ja rakendus mitte. Lüüsile saabuvad paketid vajavad endiselt edasisaatmist, tagasiteed ja poliitikat, mis need lubab, ja ükski neist ei väljendu ESP-reeglis. Puuduv port seletab konkreetset tõrget, mitte iga IPsec-i tõrget. Hoidke reegli parandus ja marsruutimise kontroll kahe eraldi järeldusena.
Kirjutage üles vorm, mida nägite, protokollireegel, mille lisasite, ja loendur, mida pärast nägite. Kolm rida ja järgmine inimene suudab nimeruumi vea marsruutimise veast eristada minuti, mitte pärastlõunaga.