Protokoll 47 mot TCP-port 47: to hovud, to reglar
Eit protokollnummer og ein port bur i ulike hovud, så éin regel kan ikkje erstatta den andre. PPTP skil dei to, og ein portboks kan ikkje uttrykka GRE.
Hotellnettverk og konferansebrannmurar viser ofte ein tilpassa løyveboks, og nokon skriv 47 i han og ventar at PPTP skal verka. Regelen vert oppretta, tunnelen feilar framleis, og neste forsøk brukar eit anna nummer. Det som gjekk gale, sit i pakken sjølv: IPv4 har eit protokollfelt som nemner kva som kjem etter IP-hovudet, medan TCP og UDP har portfelt som berre finst når du er inne i eitt av desse hovuda. Dei er ikkje to stavemåtar av den same løyva.
IPv4-hovudet nemner neste protokoll
Protokollfeltet er éin byte i IPv4-hovudet, og det held eit tal som skildrar nyttelasta: 6 for TCP, 17 for UDP, 47 for GRE, 50 for ESP. Alt som filtrerer pakkar les denne verdien før det ser djupare, fordi det djupare hovudet først gjev meining når typen er kjend. Bytt ein port seinare i samtalen, og dette feltet har ikkje flytta seg.
Ein regel skriven mot protokoll 47 skildrar derfor IP-laget. Ingen port deltek i avgjerda i det heile.
Portar finst inne i TCP og UDP, ingen andre stader
Portar er seksten bit lange identifikatorar inne i TCP- og UDP-hovud, og oppgåva deira er å skilja samtalar som deler éin adresse. Eit GRE-hovud ber ein protokolltypeverdi, ofte ein EtherType, pluss valfrie nøklar for multipleksing. Uttrykket port 47 nemner derfor ingenting som ein GRE-pakke kan samsvara med.
Brannmur-grensesnitt er ulike i kor mykje av dette dei viser. Nokre godtek eit protokollnummer, nokre byr på ei namngjeven liste, og nokre få godtek berre TCP eller UDP med portar.
PPTP brukar begge laga samstundes
PPTP er det klåraste dømet fordi det med vilje deler arbeidet sitt mellom dei to. Kontrollsambandet er ein TCP-økt til port 1723, og datastien er GRE, protokoll 47, utan at nokon port er involvert nokon stad. Ein brannmur som lèt 1723 gjennom og ingenting anna, slepp forhandlinga i gang og kastar deretter nyttelasta. Tunnelen ser ut til å henga etter autentisering i staden for å ikkje klara å kopla til, og difor vert symptomet ofte rapportert som eit passordproblem.
| Path | Outer protocol | Port |
|---|---|---|
| Control channel | TCP, protocol 6 | 1723 |
| Data channel | GRE, protocol 47 | None |
Les dei to radene kvar for seg når du skriv regelen, og kontroller kvar av dei mot syntaksen til leverandøren. Den eine rada treng ein port, den andre treng eit protokollnummer, og ingen einskild oppføring dekkjer begge.
Kvifor ei portvideresendingsside ikkje kan uttrykka GRE
Eit videresendingsskjema som berre godtek TCP og UDP, kan ikkje skildra GRE, uansett kva skjemaet heiter. Adresseomsetjing legg til ein annan vanskemme, fordi GRE ikkje har portar, og omsetjaren må følgja anropsidentifikatoren i staden. Nokre forbrukarrutarar kjem med ein hjelpar som handterer det; mange gjer det ikkje, og ingen ekstra TCP-løyveoppføring vil skapa den åtferda.
Der ein moderne tunnel er det faktiske kravet, vel eit design som med vilje brukar TCP eller UDP i staden for å håpa at ein omsetjar gissar rett.
Innkapsling avgjer kva filteret ser
Innkapsling endrar den ytre pakken, og den ytre pakken er det ein regel samsvarar med. Innebygd ESP er protokoll 50, medan NAT-gjennomgang pakkar ESP inn i UDP 4500 slik at det overlever adresseomsetjing. Eit filter som lèt UDP 4500 gjennom ser aldri protokoll 50, og eit filter skrive for protokoll 50 samsvarar aldri med den innpakka forma.
Spør kva innkapsling klienten og gatewayen vart samde om, og skriv deretter regelen for nettopp den ytre forma og ingenting meir.
Skriv regelen slik at nokon kan kontrollera han
Uttrykk kvar regel som adressefamilie, ytre protokoll, transportportar om nokre, retning og begge endepunkta. Ein gjennomgåar kan samanlikna den setninga med ein pakkefangst og koma til ein dom. Ein instruks om å opna 47 kan ingen kontrollera, og difor overlever han i årevis i prosedyrebøker.
Legg til testen som provar det: kople til medan du fangar på det ytre grensesnittet, og stadfest den ytre protokollen og porten som faktisk viser seg i sporet.