To VPN-klientar, to offentlege adresser: få SNAT til å stemme
Kildebasert SNAT kan velje ei offentleg adresse, men berre så lenge gatewayen framleis kan skilje klientane. Sjekk kjelda som står att før du skriv regelen.
To VPN-klientar kan gå ut gjennom to ulike offentlege IPv4-adresser, og regelen som gjer det er kortare enn folk flest ventar. Det som får han til å verke er ikkje iptables-syntaksen, men tilstanden til pakken når han når egress-kjeda: kildeadressa der må framleis kunne skilje klientane. Viss ein tidlegare masquerade allereie har slått begge saman på éi adresse, kan ingen regel per klient gjenopprette skillnaden. Avgjer det spørsmålet først, og skriv så omsetjinga.
Kva identitet som overlever til gatewayen
Regelen matchar kildeadressa til pakken, ikkje eit VPN-brukarnamn og ikkje namnet ein klientapplikasjon viser. Alt som omset pakken tidlegare på vegen avgjer kva regelen din framleis kan sjå. Køyr nat-tabellen i rekkjefølgje og finn punktet der kjelda framleis er per klient.
iptables -t nat -S POSTROUTING
Les lista ovanfrå. Ein masquerade-regel nær toppen skriv om kjelda for kvar samsvarande straum, og oppføringar per klient som blir plasserte etter han matchar ei adresse som ikkje finst lenger. Når to LAN-einingar deler éin tunnel og kjem som éi indre adresse, må designet endrast før brannmuren: hald kildeområda deira åtskilde eller gi kvar eining si eiga indre adresse.
Knytt tildelinga av den indre adressa til den autentiserte klienten. Å gi den adressa vidare til ei anna eining overfører også egress-policyen, og kjeldeomsetjing er ikkje i seg sjølv eit identitetsbevis.
Omsetjing kan ikkje finne opp ei adresse
Kvar offentleg adresse må tildelast eller rutast til dette egress-punktet, og svara må finne vegen tilbake dit. Ein regel som sender trafikk frå ei adresse ingen ruter tilbake til, blir droppa i den fjerne enden eller svara til ein vert som aldri bad om det. Ein sky-leverandør-instans har vanlegvis si offentlege adresse omsett til ei privat grensesnittadresse før pakken forlèt han, så SNAT-kjelda må vere adressa leverandøren godtek, ikkje verdien konsollen viser. Les adressemodellen til leverandøren og følg han i staden for å kopiere den offentlege verdien inn i kvar pakke.
I praksis betyr det å kontrollere det ruta prefikset i konsollen til leverandøren før du rører brannmuren, og å bruke den private grensesnittadressa som omsetjingskjelde når mappinga er ein-til-ein. Adressene i døma nedanfor kjem frå dokumentasjonsområda, så det første som må erstattast er adresseteksten sjølv.
Set inn før den generiske masqueraden
Stadfest egress-grensesnittet og den gjeldande kjeda før du legg til noko. Den første avgjer kva pakkar regelen kan matche, og den andre viser kva som allereie står framfor han.
ip -4 route show default
iptables -t nat -L POSTROUTING -n -v --line-numbers
Den første kommandoen namngir grensesnittet ein pakke til internett faktisk forlèt gjennom. Den andre skriv ut kjeda med linjenummer. Den generiske masquerade-oppføringa er linja du må halde deg over.
iptables -t nat -I POSTROUTING 1 -s 10.88.4.20/32 -o ens3 -j SNAT --to-source 198.51.100.77
iptables -t nat -I POSTROUTING 1 -s 10.88.4.21/32 -o ens3 -j SNAT --to-source 198.51.100.78
Dei to reglane ovanfor matchar éi indre adresse kvar, avgrensar matchinga til egress-grensesnittet og set kjelda eksplisitt. Set inn i staden for å leggje til: på posisjon 1 blir dei vurderte før masquerade-linja. Rekkjefølgja mellom dei to spelar inga rolle fordi kjeldene deira er ulike. Erstatt ens3 med det route-kommandoen rapporterte, og hald andre brannmur-handsamarar borte frå dei same krokane, sidan to verktøy som skriv éi tabell er den vanlege grunnen til at ein korrekt regel ikkje har effekt.
Prov kjelda med ein ny straum
Stateful NAT bind ei omsetjing når ein straum byrjar og brukar ho på nytt for seinare pakkar, så ein sesjon som vart opna før endringa held på den gamle kjelda si etter endringa. Berre ei nyleg starta tilkopling provar regelen.
conntrack -L -s 10.88.4.20 -p tcp --dport 443
Les svarretninga til den oppføringa: destinasjonen er adressa den fjerne enden ser som kjelda. Samanlikn henne med den offentlege adressa du meinte, og handsam ei oppføring med den gamle adressa som prov på ein straum som starta for tidleg, ikkje på ein øydelagd regel. Be klienten opne ei ny tilkopling, og gjenta så spørjinga. Å tømme heile sporingsstabellen for å tvinge testen avbryt alle andre sesjonar på gatewayen.
Omsetjing vel framleis ikkje ruta, slepp ikkje straumen gjennom filteret og publiserer ikkje ei innkomande teneste. Ei feil rute og ein manglande tillatingsregel held fram med å feile etter ein perfekt SNAT-regel. Sjekk også IPv6 og kvar sekundær egress-veg, og noter så para indre-til-offentleg i dokumentasjonen til brannmuren slik at neste endring startar frå mappinga i staden for regelteksten.