In iepenbiere gateway draait al WireGuard op UDP 51820, SSH op 22 en ien applikaasje dy't fan it ynternet berikber wêze moat. De ferliedlike regel stjoert elke poarte troch nei de peer en neamt it dien. Op in WireGuard-gateway kin sa'n regel it eigen transport fan de tunnel pakke en dy bûten it masine slute dat him beëiniget. Publikaasje is in routingbeslissing mei in útsûndering foar it kontrôleflak, net ien inkelde DNAT-regel.

Iepenbiere yngong of tunnelyngong: kies ien

It publisearjen fan in tsjinst makket in nij yngongspunt nei it ynternet. Dat is net itselde as it jaan fan VPN-lidmaatskip oan in peer, want de besiker komt nea yn de tunnel en de gateway wurdt it iepenbiere gesicht fan de backend. Dy ûnderskied bepaalt it publyk fan de regel en it sertifikaat dat derby heart.

Bestjoerlike ynterfaces hearre dêr selden. In admin-side dy't troch autorisearre VPN-klanten berikt wurdt, hâldt it oanfalsflak binnen de tunnel en foarkomt dat in oanmeldformulier foar willekeurige scans iepen leit. Iepenbiere applikaasje-einpunten hawwe noch hieltyd har eigen TLS-sertifikaat, autentikaasje en snelheidsbeheining nedich; de fersifere WireGuard-hop beskermet it stik fan de besiker nei de gateway net.

As de tsjinst echt iepenbier wêze moat, skriuw dan de hostnamme op, it sertifikaat dat dêrby heart en de besikersgroepen dy't der komme moatte. Dy trije feiten bepale letter de foarm fan de regel en it filterbelied. Alles dêrboppe is omfanggroei op in iepenbiere listener.

Ien poarte yn, ien backend út

Brûk ien iepenbiere poarte en ien backend-tsjinst. Yn dit foarbyld draacht eth0 it iepenbiere adres 198.51.100.20, is it tunneladres fan de gateway 10.200.0.1 en draait de peer de applikaasje op 10.200.0.7. Iepenbiere TCP 9443 wurdt mapt op TCP 8443 fan de peer:

iptables -t nat -A PREROUTING -i eth0 -d 198.51.100.20 -p tcp --dport 9443 -j DNAT --to-destination 10.200.0.7:8443
iptables -t nat -A POSTROUTING -o wg0 -d 10.200.0.7 -p tcp --dport 8443 -m conntrack --ctorigdst 198.51.100.20 --ctorigdstport 9443 -j SNAT --to-source 10.200.0.1

De SNAT-regel matcht de oersetten backend en de oarspronklike iepenbiere bestimming, sadat in oare ferbining nei deselde backend-tsjinst bûten dizze mapping bliuwt. Hy ferberget ek it adres fan de besiker foar de peer, en dat is de ôfwaging dy't in rûtearre weromreis mei behâld fan boarne in apart ûntwerp meitsje lit. De referinsje foar iptables-útwreidings beskriuwt beide doelen en har matchopsjes.

Trochstjoeren moat noch ynskeakele wurde, en de filterketen hat in tastimming nedich foar de oersetten bestimming en poarte plus beëinige antwurden. De FORWARD-keten sjocht de oersetten bestimming nei DNAT, sadat in regel tsjin it iepenbiere adres it trochstjoerde pakket net matcht. Skriuw de tastimming tsjin de backend-tuple, net tsjin de iepenbiere.

De peer moat de tsjinstferbining fan it tunneladres fan de gateway akseptearje en it antwurd werom troch de tunnel stjoere. Syn AllowedIPs moat de boarne autorisearje dy't er wier krijt, en dat is ûnder boarneoersetting it tunneladres fan de gateway; in brede 0.0.0.0/0-yngong op elke peer is foar dit ûntwerp net nedich. Wat it weromferkear lit falle, is in peer waans list dat adres mist, of in ûntwerp mei behâld fan boarne dat it adres fan de besiker sels trochstjoert, dus kontrolearje de boarne dy't de peer echt sjocht, net dy't yn dyn regel stiet.

Hâld de eigen listeners fan de gateway bûten de regel

Ferwikselje de poartematch foar in regel dy't elke TCP- en UDP-bestimming dekt, en de eigen WireGuard-socket fan de gateway falt derbinnen. Bestimmingsfertaling bart foardat it masine beslút dat in pakket lokaal is, sadat UDP 51820 by de peer telâne komme kin ynstee fan by it proses dat alle peerferbinings hâldt. De regel laadt mei súkses en de tunnel stjert, wat in dreech te lêzen flater fan de peerkant is.

SSH, monitoring-aginten en elke oare tsjinst op de gateway hawwe deselde bleatstelling. In regel dy't alles trochstjoert, ûnderskiedt it kontrôleflak net fan de publisearre applikaasje, en de earste reboot nei de wiziging is wannear't de útsluting fanselssprekkend wurdt. De catch-all warskôget net oer de tsjinst dy't er stil oernimt. Do ûntdekst it as de folgjende ferbining mislearret.

As brede trochstjoering echt nedich is, reservearje dan de kontrôlepoarten foar de catch-all of brûk in apart iepenbier adres foar publikaasje. De twadde opsje is skjinner, want it kontrôleadres hâldt syn eigen belied, mar de provider moat dat adres leverje; in DNS-record tafoegje allocearret der gjin.

Brede TCP- en UDP-trochstjoering is ek net alle protokollen. ICMP, IPv6, paad-MTU-feedback en it bûtenste VPN-transport hawwe har eigen belied nedich, en in regel dy't TCP en UDP dekt, lit dy gefallen oan de standertketen oer.

Kies it model foar't do regels skriuwst

Fjouwer foarmen dekke de measte gateway-publikaasjes, en de kar hinget ôf fan hoefolle tsjinsten do draaist en hoefolle risiko foar it kontrôleflak do tolerearje kinst. De tabel hjirûnder set se fan smelst nei breedst.

ModelWhat it protectsCostUse when
Narrow port forwardEvery other listener, including the VPNOne rule per serviceFew services, stable ports
Catch-all with reserved portsPorts named in the exception listRule order becomes criticalMany services and disciplined review
Separate public addressControl address fully isolatedProvider must supply the addressHigh-value publication
VPN-only accessNo public entry at allVisitors need the tunnelAdmin interfaces and internal tools

Begjin mei it smelle model, sels as do letter mear tsjinsten ferwachtet. It is it maklikst te auditearjen, en in set smelle regels omfoarmje ta in beoardiele catch-all is ienfâldiger as ûntdekke hokker listener in brede regel pakt hat. Hokker model do ek kiest, hâld de regels by de eigenier fan de firewall. iptables-regels njonken in UFW- of nftables-konfiguraasje sette dy't deselde ketens beheart, jout in belied dat feroaret ôfhinklik fan de bootfolchoarder.

Bewiis sawol de publikaasje as it kontrôlepaad

Test fan in autorisearre bûtenclient mei de goedkarde hostnamme en in sertifikaat dat dêrfoar jildich is. Befêstigje hokker backend antwurde, en kontrolearje dan dat net-relatearre iepenbiere poarten wegere bliuwe. In útskeakele sertifikaatkontrôle is gjin slagge HTTPS-test, en in ferbining nei de ferkearde backend is slimmer as in mislearre.

Kontrolearje dêrnei de gateway sels: ferbyn in WireGuard-peer, iepenje in SSH-sesje en befêstigje dat monitoring noch rapportearret. De publisearre tsjinst kin wurkje wylst it kontrôleflak stikken is, dus beide kontrôles hearre yn itselde wizigingsfinster. Reboot ien kear om te bewizen dat de regels yn de ferwachte folchoarder opnij tapast wurde, ferwiderje dan de publikaasje en befêstigje dat it ferwiderjen wier by it tafoegjen past. In grutte set opstart-tafoegings mei in ûnfolsleine opromming is hoe't in tydlike test in permaninte iepening wurdt.

Relatearre artikelen