Dva odjemalca VPN, dva javna naslova: uskladite SNAT
SNAT po viru lahko izbere javni naslov, a le dokler prehod še razlikuje odjemalce. Pred pisanjem pravila preverite preostali vir.
Dva odjemalca VPN lahko izhajata skozi dva različna javna naslova IPv4, in pravilo, ki to počne, je krajše, kot pričakuje večina. Ne deluje zaradi sintakse iptables, ampak zaradi stanja paketa, ko doseže izhodno verigo: naslov vira mora tam še vedno razlikovati odjemalce. Če je prejšnji masquerade že združil oba na en naslov, nobeno pravilo na odjemalca ne more obnoviti razlike. Najprej rešite to vprašanje, nato napišite prevod.
Katera identiteta preživi do prehoda
Pravilo se ujema z naslovom vira paketa, ne z uporabniškim imenom VPN in ne z imenom, ki ga prikazuje odjemalska aplikacija. Vse, kar paket prevede prej na poti, določa, kaj vaše pravilo še lahko vidi. Zaženite tabelo nat po vrstnem redu in poiščite točko, kjer je vir še vedno ločen za vsakega odjemalca.
iptables -t nat -S POSTROUTING
Preberite ta seznam od zgoraj. Pravilo masquerade blizu vrha prepiše vir za vsak ujemajoči tok, vnosi na odjemalca, postavljeni za njim, pa se ujemajo z naslovom, ki ne obstaja več. Ko si dve napravi LAN delita en tunel in prideta kot en notranji naslov, se mora zasnova spremeniti pred požarnim zidom: obdržite njuna obsega vira ločena ali vsakemu dajte svoj notranji naslov.
Povežite dodelitev notranjega naslova z overjenim odjemalcem. Predaja tega naslova drugi napravi preda tudi izhodno politiko, prevajanje vira pa samo po sebi ni dokaz identitete.
Prevajanje si ne more izmisliti naslova
Vsak javni naslov mora biti dodeljen ali usmerjen na to izhodno točko, odgovori pa morajo najti pot nazaj. Pravilo, ki pošilja promet z naslova, kamor nihče ne usmerja nazaj, se na oddaljenem koncu zavrže ali pa se odgovori gostitelju, ki tega ni nikoli zahteval. Primerek pri ponudniku oblaka ima običajno javni naslov preveden v naslov zasebnega vmesnika, preden paket odide, zato mora biti vir SNAT naslov, ki ga bo ponudnik sprejel, ne vrednost, ki jo prikazuje konzola. Preberite model naslovov ponudnika in mu sledite, namesto da kopirate javno vrednost v vsak paket.
V praksi to pomeni preveriti usmerjeni predpono v konzoli ponudnika, preden se dotaknete požarnega zidu, in uporabiti naslov zasebnega vmesnika kot vir prevajanja, ko je preslikava ena na ena. Naslovi v spodnjih primerih prihajajo iz dokumentacijskih obsegov, zato je prva stvar, ki jo je treba zamenjati, besedilo naslova samo.
Vstavite pred splošni masquerade
Preden kar koli dodate, potrdite izhodni vmesnik in trenutno verigo. Prvo določa, katere pakete lahko pravilo ujame, drugo pa kaže, kaj že stoji pred njim.
ip -4 route show default
iptables -t nat -L POSTROUTING -n -v --line-numbers
Prvi ukaz poimenuje vmesnik, skozi katerega paket v internet dejansko odide. Drugi izpiše verigo s številkami vrstic. Splošni vnos masquerade je vrstica, nad katero morate ostati.
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
Dve zgornji pravili se ujemata z enim notranjim naslovom vsako, omejujeta ujemanje na izhodni vmesnik in izrecno nastavita vir. Vstavite, ne dodajte: na položaju 1 se ocenjujeta pred vrstico masquerade. Vrstni red med njima ni pomemben, ker se njuna vira razlikujeta. Zamenjajte ens3 s tem, kar je sporočil ukaz poti, in držite druge upravitelje požarnega zidu stran od istih kavljev, saj sta dva orodja, ki pišeta eno tabelo, običajen razlog, da pravilno pravilo nima učinka.
Dokažite vir z novim tokom
Stateful NAT veže prevajanje, ko se tok začne, in ga znova uporabi za poznejše pakete, zato seja, odprta pred spremembo, po spremembi obdrži stari vir. Pravilo dokaže le na novo vzpostavljena povezava.
conntrack -L -s 10.88.4.20 -p tcp --dport 443
Preberite smer odgovora tega vnosa: njegov cilj je naslov, ki ga oddaljeni konec vidi kot vir. Primerjajte ga z načrtovanim javnim naslovom in vnos s starim naslovom obravnavajte kot dokaz toka, ki se je začel prezgodaj, ne kot pokvarjeno pravilo. Prosite odjemalca, naj odpre novo povezavo, nato ponovite poizvedbo. Praznjenje celotne tabele sledenja, da bi vsilili preizkus, prekine vsako drugo sejo na prehodu.
Prevajanje še vedno ne izbere poti, ne spusti toka skozi filter in ne objavi dohodne storitve. Napačna pot in manjkajoče pravilo dovoljenja še naprej ne uspeta tudi po popolnem pravilu SNAT. Preverite tudi IPv6 in vsako sekundarno izhodno pot, nato zapišite pare notranji-proti-javnemu v dokumentacijo požarnega zidu, da se bo naslednja sprememba začela pri preslikavi in ne pri besedilu pravila.