SNAT, DNAT en Masquerade: wat elke VPN-NAT-regel docht
Boarne-NAT skriuwt oer wêr’t in stream wei liket te kommen; bestimming-NAT skriuwt oer wêr’t er hinne giet. Masquerade is boarne-NAT mei in liende adres.
Set in opname oan beide kanten fan in VPN-poarte en ien stream kin fjouwer ferskillende adressen sjen litte. Boarne-NAT skriuwt oer wêr’t in pakket beweart wei te kommen; bestimming-NAT skriuwt oer wêr’t it hinne giet. Masquerade is gjin tredde rjochting, it is in boarne-NAT-regel dy’t syn adres fan ’e útgeande ynterface nimt ynstee fan in fêste wearde. Neam hokker fan ’e trije Jo echt nedich hawwe en de measte „de VPN is stikken”-kaartsjes wurde in fraach oer de weromwei.
Wat elke regel oerskriuwt
Boarne-NAT, meastentiids SNAT skreaun, feroaret it boarne-adres fan in stream as dy in router of poarte ferlitten hat. De tsjinst dy’t ûntfangt antwurdet op it oersetten adres, en it kast dat oerset draait de feroaring werom mei de tastân dy’t it foar dy ferbining hold. Op Linux wennet dy tastân yn conntrack, dêrom printsjelet conntrack -L de oarspronklike en antwurd-tuples neist elkoar.
Bestimming-NAT, DNAT, feroaret ynstee it bepaalde plak. In pakket oan in iepenbier adres op UDP 51820 kin oerskreaun wurde nei in ynterne WireGuard-tsjinner op 10.8.0.2:51820. Sa publisearret in thúsrouter of in wolkbelêstingbalâns in VPN-harker, en dat seit neat oer wat de tunnel dêrnei drage mei.
Masquerade heart by de SNAT-famylje. De regel neamt gjin adres; hy brûkt it adres dat de útgeande ynterface hat as it pakket fuortgiet. Linux jout him in eigen doel, en dat is de gewoane kar op in WAN-ynterface dat syn adres fan DHCP of PPPoE krijt.
Wêr’t de mapping wennet, beslút de flater
Skriuw de tuple by elke grins op: foar de tunnel, der yn en op ’e iepenbiere ynterface. In opname yn ’e tunnel ferskilt rjochtmjittich fan ien derbûten, en wa’t de twa ferliket sûnder te witten wêr’t de oersetting bart, sil de ferkearde host efternei sitte.
Weromferkear moat troch it apparaat gean dat de mapping hâldt. As it antwurd in oare rûte nimt, in twadde uplink, in beliedsrûte of in provider dy’t nea fan Jo partikuliere berik heard hat, dan bart de tastânfolle omkearde oersetting nea en de klant sjocht ienrjochtingferkear. Mear boarne-NAT tafoegje reparearret selden in ûntbrekkende weromrûte; it kin it symptoom op ien stream ferbergje wylst it adresbelied oeral oars brekt.
De oare gewoane flater is te ferwachtsjen dat in tunnel rûteberens skept. In partikuliere klant waans pakketten nei it ynternet geane, hat in jildige útgeande regeling nedich: in standertrûte, in trochstjoerende poarte en meastentiids boarne-oersetting nei in iepenbier adres. Fersifering allinnich makket in partikulier adres net berikber.
Masquerade of eksplisite SNAT
Ferlykje de twa nei wat se belove. Masquerade kiest it útgeande adres, eksplisite SNAT fêstiget it. Op in poarte mei in stabile iepenbiere adres jout fêstigjen oan logs en partner-toliste ien foarsisbere wearde. Op in dynamyske WAN-ferbining wurdt in fêstige SNAT-adres ferkeard op it momint dat de lease feroaret, en dat is krekt it gefal dêr’t Masquerade foar boud is.
Omfang jildt likefolle as de kar. In Masquerade-regel dy’t op elk pakket past dat de poarte ferlit, sûnder boarne- of bestimmingsgrins, oerset ek ferkear dat Jo yntakt litte woene, ynklusyf ferkear nei oare partikuliere netwurken. Behein de regel ta it klantberik, de bedoelde bestimming en de ynterface.
Beliedsbasearre IPsec is wêr’t dit it fûlst byt. De trochstjoergids fan strongSwan rint troch it ynskeakeljen fan IP-trochstjoering en it tafoegjen fan in boarne-NAT-regel foar klanten, en deselde dokumintaasje behannelet it útsluten fan ferkear dat syn oarspronklike adres hâlde moat. Oerset in boarne foardat it feiligingsbelied him treft en de tunnel kin omheech komme wylst it ferkear noch falt, om’t it pakket net mear liket op ’e ûnderhannele selektor.
Beslút ek wat de fiere kant sjen moat. Nei de oersetting sjocht in tsjinst de poarte, net de yndividuele klant. Dat ferienfâldiget de weromrûte en flakket tagelyk logs ôf en docht tolisten per klant te net. As it behâlden fan klantadressen der ta docht, plan dan in rûtearre weromwei ynstee fan se te ferbergjen om in test te heljen.
De regels lêze op in Linux-poarte
In poarte foar ôfstânstagonkear mei klanten op 10.8.0.0/24 en in WAN-ynterface mei de namme eth0 hat ynskeakele trochstjoering nedich en in filterbelied dat de stream tastiet, foardat in NAT-regel helpe kin. De iptables-ferzje hâldt beide rjochtingen yn ’e nat-tabel:
sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 51820 \
-j DNAT --to-destination 10.8.0.2:51820
De nftables-foarm brûkt deselde twa hakken mei in neamde ynterface en in eksplisite ketting:
nft add rule ip nat postrouting ip saddr 10.8.0.0/24 oifname "eth0" masquerade
nft add rule ip nat prerouting iifname "eth0" udp dport 51820 dnat to 10.8.0.2:51820
Beide stikken geane derfan út dat de filterketting de trochstjoerde stream al akseptearret. NAT is gjin tastimmingregel, en in korrekt oerset pakket kin ien tabel letter noch fuort smiten wurde. Befêstigje de libbene mapping mei conntrack -L, befêstigje wat laden is mei nft list ruleset of iptables-save -t nat, en meitsje dan opname op beide ynterfaces om te sjen dat it adres echt feroaret.
Flatermodi dy’t op in minne regel lykje
Hierspjeldeferkear is de klassiker. In ynterne klant dy’t in ynterne tsjinner berikt fia it iepenbiere adres fan ’e tsjinner hat de DNAT nedich op ’e wei nei binnen en in boarne-oersetting op ’e weromwei nei bûten, oars antwurdet de tsjinner direkt oan de klant en it antwurd wurdt wegere. De oplossing is in twadde, smeller regel foar dat gefal fan yntern nei iepenbier, gjin bredere Masquerade-regel foar alles.
Dûbele oersetting is de stille. In klant dy’t al efter NAT op providernivo sit, komt by Jo poarte oan mei in adres dat Jo net weromrûte kinne, dat Jo oersette wer. It wurket, mar logs drage no twa springen partikuliere adressearring en elk ûndersyk hat beide mappings nedich. Beliedsbasearre IPsec foeget in tredde draai ta: oerset foar de belieds-oerienkomst en Jo krije in SA dy’t omheech is sûnder ferkear dat trochgiet, wat as in firewall-flater lêzen wurdt, net as in NAT-flater.
Dan is der de test dy’t slagget en de ynset dy’t mislearret. It NAT-kommando mei de hân rinne bewissiget it meganisme, net de konfiguraasje. In regel dy’t op runtime tafoege is, ferdwynt by it opnij starten of by de folgjende ynterface-barren, en in Masquerade-regel bûn oan in ynterface dat opnij nûmere wurdt, kin it adres dat de fiere kant sjocht stil feroarje. Set de regel yn ’e konfiguraasje fan ’e firewall dy’t him hat en test opnij nei in werferbining.
Kontrollist foardat Jo de regel bewarje
Neam earst de rjochting: boarne, bestimming of beide. Beskied dan wa’t de tastân hâlde moat — de poarte, de router boppe of de IPsec-peer — en befêstigje dat de antwurdwei dêr troch weromkomt. Behein de regel ta it klantberik, de bestimming en de ynterface dy’t Jo echt bedoele, en beslút foarôf oft de fiere kant de poarte of it oarspronklike klantadres sjen moat.
Test fan in klant, net fan de poarte. In browser op ’e poarte sels kin de klant-oersettingsregel folslein foarby hawwe, dat in side dy’t dêr wurket bewissiget neat oer de tunnel. Stjoer ien fersyk dat by de klant wei komt, sjoch nei de tellers en de conntrack-tabel, en werhelje it nei in werferbining fan ’e tunnel en in feroaring fan it WAN-adres as ien fan beide mooglik is dêr’t Jo wurkje.