Kial hejma NAT ne ŝirmas vian VPN-interfacon
Hejma enkursigilo plusendas la tunelon, sed la gastiganto juĝas la malĉifritan paketon. Legu la aŭskultanton, la internan vojon kaj la enigan politikon aparte.
Tekkomputiloj malantaŭ hejma enkursigilo sen pordoadapto ankoraŭ akceptas SSH-konektojn venantajn tra la VPN. Tio ne estas kontraŭdiro, ĉar du malsamaj aparatoj juĝas du malsamajn paketojn. La enkursigilo plusendas la ĉifritan transporton, kaj la gastiganto decidas, kion fari kun la malĉifrita paketo alvenanta al ĝia tunela interfaco. Teni tiujn du decidojn apartaj estas la tuta ekzerco.
La enkursigilo plusendas la tunelon, la gastiganto juĝas la paketon
Skizu la vojon de la malproksima fonto al la servo antaŭ ol rigardi unu regulon. La ekstera parto estas la VPN-transporto, prizorgata de la enkursigilo kaj la pordego. La interna parto komenciĝas kiam la finpunkto forigas la tunelan tavolon kaj la gastiganto ricevas paketon adresitan al ĝia VPN-adreso.
Kunfandu tiujn du partojn kaj la enkursigilo ricevas meriton por decido, kiun faras la gastiganto. Pordoadapta paĝo aŭ enkursigila protokolo priskribas nur eksterajn interparolojn, kaj neniu diras, kiun malĉifritan trafikon la gastiganto akceptos. La gastiganto aplikas sian propran enigan politikon al la interna paketo, same kiel al ĉiu paketo alvenanta al interfaco. En tiu politiko la demando pri elmontro fakte solviĝas.
Ĵokera aŭskultanto ne estas publika servo
En Linux, ligi al INADDR_ANY signifas ĉiun lokan adreson, do servo povas respondi sur tunela interfaco, kiun ĝi neniam nomis. La IP-soketa referenco priskribas tiun ligon, kaj indas legi ĝin antaŭ ol fari konkludojn el aŭskultanta listo. Ĵokera enskribo estas fakto pri la soketo, ne aserto pri atingeblo.
La du linioj sube estas la sama servo en du malsamaj ligoj, kaj la diferenco estas la tuta respondo al ĉu la interfaco gravas. Legu, sur kiu adreso la soketo sidas, antaŭ ĉio alia.
ss -lntp "sport = :22"
LISTEN 0 4096 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=812,fd=3))
LISTEN 0 4096 10.8.0.6:22 0.0.0.0:* users:(("sshd",pid=812,fd=4))
Nomu la aranĝon, kiu povus atingi la pordon
Tri aranĝoj metas paketon sur tiun interfacon, kaj ili havas malsamajn posedantojn. Nomante la ĝustan oni decidas, kiu devas ŝanĝi politikon.
| Arrangement | What reaches the port | Where the decision lives |
|---|---|---|
| Another permitted VPN peer | A packet from the same tunnel subnet | Gateway forwarding policy and host input rules |
| A deliberate public forward | Traffic the gateway publishes on purpose | Gateway service definition |
| A subnet routed behind the gateway | Client traffic from the far side | Gateway route and host input rules |
Retumila rezulto montranta publikan elir-adreson diras nenion pri iu el la tri, ĉar ĝi priskribas kiel elira trafiko foriras, ne kion oni permesas al enira trafiko. Laboru malantaŭen de la aŭskultanto kaj la fonta adreso en la serva protokolo. Se la fonto estas alia tunela samtavolano, la pordega politiko estas la interesa dokumento. Se ĝi estas tradukita adreso, trovu la tradukon antaŭ ol ŝanĝi regulon.
Limigu la servon al la celita vojo
Se SSH necesas nur el administra vojo, skribu tiun vojon kiel fontan intervalon plus interfaco. Poste limigu la enirajn regulojn de la gastiganto laŭ interfaco, celo kaj fonto anstataŭ laŭ reta nomo, ĉar nomo, kiu aspektas privata, povas signifi ajnan adreson. Konservu itineron por la persono, kiu solvos la sekvan problemon.
nft add rule inet filter input iifname "tun0" ip saddr 10.8.0.0/24 tcp dport 22 accept
nft list chain inet filter input
Regulo, kiu nomas la tunelan interfacon kaj la administran intervalon, esprimas la intencon en unu loko. Komparu ĝin kun regulo skribita por la Wi-Fi-reto, kiu diras nenion pri malĉifrita tunela trafiko. Kiam la du tavoloj malkonsentas, la gastiganta politiko estas tiu, kiun la paketo renkontas.
Lasu ensalutojn kaj flikaĵojn ĝuste tie, kie ili estas; atingi pordon neniam estis la samo kiel rajtis uzi ĝin. Notu la adresan familion kaj tempon por ĉiu nekonata fonto, kaj esploru antaŭ ol kulpigi funkcion aŭ vundeblecon. Regulo, kiu akceptas ĉiun tunelan samtavolanon, estas alia dezajno ol tiu, kiu akceptas administran subreton, kaj neniu protokola linio diros, kiu estis celita.
Akceptu la riparon per unu sukceso kaj unu rifuzo
Pruvu ambaŭ duonojn: unu aprobita konekto sukcesas kaj unu ekskludita vojo estas rifuzata. La rifuzo estas la duono, kiun oni preterlasas, kaj ĝi montras, ke la regulo laboras anstataŭ stari apud permesa defaŭlto. Testu de la ekskludita flanko anstataŭ pripensadi pri ĝi.
Ripetu la paron post rekonekto, ĉar tunelo, kiu revenas kun alia interfaca nomo, povas silente preterpasi regulon limigitan al la malnova. La limo, kiu gravas, estas tiu, kiun la gastiganto aplikas al paketoj, kiujn ĝi efektive ricevas.