NAT vum LAN duerch tun0 op engem OpenBSD VPN-Gateway
Wiel tëschent Quell-NAT an enger Retourroute fir LAN-Trafic, deen en OpenBSD tun0-Ausgang verléisst, a plazéier duerno d'nat-to-Regel do, wou pf se nach duerchléisst.
Zwee Ingenieuren mam selwechte OpenBSD-Gateway ginn dir dacks zwee verschidde Regelwierker fir en entfernt Netzwierk z'erreechen, an déi zwéin loosse sech verdeedegen. D'Wiel tëschent Quelltranslatatioun an enger Retourroute ass iwwerhaapt keng Syntaxfro. Et hänkt dovun of, wat déi aner Säit schonn iwwer 192.168.88.0/24 weess an wat s du an dengem Log wëlls behalen. Maach dat falsch an d'nat-to-Linn wäert perfekt ausgesinn, wärend d'Äntwerten am entfernten Standardgateway verschwannen.
Routing a Rëschreiwen äntweren op verschidde Froen
D'Routingstabell décidéiert, datt 172.20.0.0/16 iwwer tun0 erreechbar ass, an déi Decisioun fällt, ier eng pf-Translatatioun consultéiert gëtt. Duerno ännert d'Quelltranslatatioun de Pakkekapp, sou datt déi aner Säit dem Gateway seng Tunneadress gesäit amplaz vun engem LAN-Host. Keen vun deenen zwee Mechanisme ersetzt deen aneren: eng nat-Regel kann net einfach eng Route erschafen, an eng Route kann en entfernte Router net iwwerzeegen, deen nach ni vun dengem private Subnet héiert huet. Wann der Géigesäit en Retourpad feelt, ginn d'Äntwerten verweidert oder an hire Standardgateway weidergeleet, a keng Regel-Tuning hëlleft do.
Einfach gesot, d'Weiderleeung äntwert dobrop, wou den Trafic hiengeet, an d'Translatatioun dobrop, wou en hier ze kommen schéngt. Hal se a getrennte mentale Këschte fest, während s de Regelwierk designen.
Dräi Konditiounen, déi et entscheeden
Stell dräi Froen an der Rei an d'Design wielt sech meeschtens selwer. Huet d'entfernt Netzwierk eng statesch Route, déi op d'Tunneadress fir 192.168.88.0/24 weist, oder kontrolléiert säin Administrateur d'Routeren op deem Wee? Wann jo, loos d'LAN-Adressen onverännert reesen an iwwerspréng d'Translatatioun ganz. Brauchs du pro Client Visibilitéit op der anerer Säit, sief et fir Zougangspolitik oder fir en Audit-Trail? Wann jo, ass d'Erhalen vun der Quell den Routingaufwand wäert. Ass d'Tunneadress stabil genuch, fir se an eng entfernt Route ze schreiwen, oder ännert se sech tëschent de Reconnecten?
Wann eng Äntwert nee oder onbekannt ass, ass nat-to déi pragmatesch Optioun, an et ass och déi ëmkippbar. Eng Translatatiounsregel geet an enger Linn eraus, soubal déi aner Säit eng richteg Route bäisetzt. Eng Retourroute, déi ni installéiert gouf, kascht dech en Support-Thread all Kéier, wann een freet, firwat den Tunnel nëmmen an eng Richtung schafft.
Den Deel esou placéieren, datt pf en tatsächlech evaluéiert
Den Deel hei drënner geet dovun aus, datt de LAN 192.168.88.0/24 ass, dat entfeernt Netzwierk 172.20.0.0/16 an d'Tunnelschnëttstell tun0. Et ass näischt dran, wat den nächsten Hop wielt. Et schreift just d'Quell op Paketen ëm, déi schonn duerch den Tunnel erausgoen.
match out on tun0 inet from 192.168.88.0/24 to 172.20.0.0/16 nat-to (tun0)
pass in on em0 inet from 192.168.88.0/24 to any keep state
Zwou Detailer an där éischter Linn droen de gréissten Deel vum Gewiicht. Klameren ëm tun0 soen dem pf, d'Schnëttstelladress all Kéier ze liesen, wann en en Zoustandsentrée baut, wat zielt, wann den Tunnel no engem Reconnect nei nummeréiert gëtt. D'Wuert match heescht, datt d'Regel ëmschreift an dann duerchfält, sou datt eng separat pass-Regel de Flux nach ëmmer muss zouloossen. D'Schnëttstell, déi an der match-Linn genannt gëtt, muss och déi sinn, déi d'Routingstabell erauswiehlt, soss evaluéiert pf d'Regel op engem aneren Ausgangswee wéi dee, deen de Pak tatsächlech hëlt.
Vergiesst d'Kär-Säit net. IPv4-Weiderleeung muss ageschalt sinn, an d'stateful pass-Regele fir Tunnel a LAN mussen do sinn, ier dëst alles Sënn mécht. D'PF NAT-Sektioun vun der OpenBSD FAQ ass déi richteg Referenz fir d'Uerdnung vun de Schlësselwierder hei.
Iwwerpréif de Regelwierk, ier s dem Trafic traus
Préif d'Syntax fir d'éischt mat pfctl -nf /etc/pf.conf, wat d'Datei parst, ouni se ze lueden. Duerno lued d'Politik a lies zréck, wat de Kär tatsächlech hält, well eng Regel, déi propper geparst gouf, nach ëmmer iwwerschatt oder un déi falsch Schnëttstell gehang ka sinn. pfctl -sn dréckt Translatatiounsregele an hirer geluedener Form aus, a pfctl -sr dréckt Filterregele mat der Evaluatiounsuerdnung aus.
Kuck duerno de Kabel. Um Gateway weist tcpdump -ni tun0 'host 172.20.0.10', ob d'Quelladress, déi aus dem Tunnel erauskënnt, d'Tunneadress oder de LAN-Host ass. En nets netstat -rn -f inet bestätegt, op wéi eng Schnëttstell d'Zil opgeléist gëtt. Soubal den Trafic fléisst, listet pfctl -ss Zoustandsentréen op; wann e Flux kee Zoustand produzéiert huet, huet de Pak ni eng Regel getraff, déi en een erschaaft.
Wann d'Tunnelsäit richteg ausgesäit an d'Äntwerten awer net kommen, hals op, d'pf-Konfiguratioun ze änneren. De verblëwwe Feeler sëtzt um entfernten Router, wou d'Äntwert op eng privat Adress geet, déi déi Säit net erreeche kann.
Wann d'Translatatioun méi kascht wéi se spuert
Translatatioun verstoppt Clienten, an heiansdo ass dat genee den falschen Deal. Iwwerlappend Subnetter sinn ee Fall: wann déi aner Säit bannen och 192.168.88.0/24 benotzt, mécht d'Presentéiere vun LAN-Hoste wéi de Gateway de Konflikt méi schlëmm amplaz besser. IPsec-Politiken, déi den Trafic no Adresspaar wielen, sinn en anere Fall, well d'Sécherheetspolitik-Datebank virun der Translatatioun ofgeglach gëtt an deng ëmgeschriwwene Pak ni gesäit. All Deployment, deen no User fakturéiert, drosselt oder audit, verléiert d'Identitéit, déi et brauch, soubal d'Quell op eng eenzeg Adress zesummefällt.
Portabel pf-Derivater sinn eng separat Falle. Produiten, déi hir eege Regeldateie generéieren, erwaarden, datt NAT iwwer hir Schnëttstell konfiguréiert gëtt, an hand-editéiert Deeler ginn beim nächsten Nei-Lueden iwwerschriwwen. Regelwierker, déi aus Guidë kopéiert goufen, déi virum Wuert match geschriwwe goufen, luede sech op engem aktuelle Kär net, dofir portéier d'Syntax a lies de Feeler, amplaz ze roden.
D'Entscheedungsregel, déi de Kontakt mat reale Netzwierker iwwerliewt, ass kuerz: installéier eng Retourroute, wann s de kanns, iwwersetze wann s de net kanns, a schreif op, wat vun den dräi Konditiounen dech zu där Wiel bruecht huet. Déi Notiz spuert der nächster Persoun en Nomëtteg.