Yhden isäntäpalvelun on vastattava internetiin fyysisen yläsuunnan linkin kautta, kun kaikki muu koneella jatkaa tunnelin käyttöä. Kolme ehtoa ratkaisee, pystyykö politiikkapohjainen reititys kantamaan sen kuorman, ja jokainen on halpa tarkistaa ennen säännön kirjoittamista. Palvelun on päätyttävä tälle isännälle eikä DNAT:n tai edelleenohjatun portin taakse, VPN:n omien sääntöjen on sallittava poikkeus, ja sinun on sovitettava vastaus eikä pyyntö. Jos yksikin kolmesta epäonnistuu, alla olevat komennot latautuvat virheittä mutta eivät tee mitään hyödyllistä.

Tarkista kolme ehtoa ennen säännön kirjoittamista

Kontti, joka julkaisee portin DNAT:n kautta, tai palvelin portin edelleenohjauksen takana, tuottaa paketteja, jotka eivät synny tällä isännällä. Ne paketit välitetään, joten isännän paikalliseen syötteeseen sidottu sääntö ei koskaan näe niitä ja liikenne jatkaa oletusreitin käyttöä. Vahvista, missä palvelu todella toimii, ennen kuin jatkat, sillä se on ehto, jossa ihmiset useimmin erehtyvät.

Toinen ehto on politiikkaa, ei mekaniikkaa. Jokainen reitti, joka ohittaa tunnelin, on poikkeus tunnelin tarkoituksesta, ja hallitulla isännällä se päätös kuuluu politiikan omistajalle, ei henkilölle, joka selvittää aikakatkaisua.

Sovita vastaus, ei asiakkaan kohdeportti

TCP 443:ssa kuuntelevan palvelimen vastaus lähtee isännältä lähdeportilla 443. Saman isännän selain, joka yhdistää etäiseen HTTPS-sivustoon, lähettää hetkellisen lähdeportin ja kohdeportin 443. Molemmat ovat portin 443 liikennettä ja vain toisen niistä pitäisi ottaa WAN-taulu, siksi kohdeportin sovitus nappaisi väärän puoliskon.

Vastauksen suunta on se, minkä voit erottaa. Sovita lähdeportti, rajaa sääntö paikallisesti luotuihin paketteihin, ja sääntö kattaa palvelun omat vastaukset koskematta selaimen pyyntöihin.

Rakenna täydellinen paluutaulu ennen kuin sääntö osoittaa siihen

Tyhjä taulu tarkoittaa ei reittiä, mikä näyttää rikkoutuneelta palvelulta eikä rikkoutuneelta politiikalta. Täytä se ensin taulun numerolla ja prioriteetilla, joita mikään muu isännällä ei vaadi:

ip -4 route add table 100 192.0.2.0/24 dev eth0
ip -4 route add table 100 default via 192.0.2.1 dev eth0
ip -4 rule add priority 1000 iif lo ipproto tcp sport 443 lookup 100

Lue numerot elävältä isännältä sen sijaan että kopioisit ne. ip -4 rule show kertoo, mitkä prioriteetit on varattu, ja säännön lisääminen jo olemassa olevaan prioriteettiin muuttaa hiljaa kahden säännön järjestyksen, jotka erikseen näyttävät kunnossa olevilta.

Kaksi valitsinta tekee varsinaisen työn tässä. iif lo on tapa, jolla ydin ilmoittaa isännän itse tuottamat paketit, joten sääntö ei voi vahingossa napata ulkopuolelta saapuvaa välitettyä liikennettä. ipproto tcp sport 443 rajaa sen yhteen kuljetukseen ja yhteen porttiin, mikä on niin tiukkaa kuin vaatimus sallii. Poista protokollavalitsin, ja sääntö nappaa myös UDP 443:n, joka on eri palvelu eri käyttäytymisellä.

Pidä yksityiset vastaukset tunnelin sisällä

Jos sama kuuntelija vastaa myös yksityisen puolen asiakkaille, taulun 100 kaiken nappaava WAN-oletusreitti yrittää palauttaa ne vastaukset yläsuunnan linkin kautta. Lisää yksityiset etuliitteet, jotka eivät saa seurata WAN-oletusta, tai anna niiden pudota seuraavalle politiikkasäännölle:

ip -4 route add table 100 throw 10.90.0.0/24

Throw-reitti päättää haun tässä taulussa ja palauttaa paketin sääntöluettelolle, joten seuraava VPN-politiikka saa tilaisuutensa. Se ei itse reititä mitään tunneliin, ja jos millään myöhemmällä säännöllä ei ole vastaavaa reittiä, paketti silti epäonnistuu; tarkista seuraava politiikka sen sijaan että olettaisit throw'n olevan korjaus.

Käänteisen polun suodatus ja isännän palomuurisäännöt koskevat edelleen saapuvaa pyyntöä. Katso niiden todelliset päätökset ennen kuin löysäät validoinnin, koska reitityspoikkeus ei saa rp_filter:tä hyväksymään paluupolkua, jota se pitää mahdottomana.

Testaa TCP, sitten QUIC, sitten uudelleenkäynnistys

Avaa yksi yhteys valtuutetulta ulkoiselta asiakkaalta ja yksi yksityiseltä puolelta, ja tarkastele sitten vastauksen hakua todellisilla osoitteilla ja porteilla. Jos ulkoinen vastaus ottaa taulun 100 eikä yksityinen, politiikka tekee sen, mitä pyysit.

HTTP/3 tarjoillaan UDP:n yli eikä TCP-sääntö sovita sitä, joten QUIC-kuuntelija tarvitsee oman valitsimensa, muuten se jatkaa tunnelin käyttöä samalla kun HTTPS toimii. Tallenna valitsemasi säännöt rajapinnan omistavaan komponenttiin ja vahvista ne uudelleenyhdistämisen tai DHCP-uudistuksen jälkeen. Kun kilpaileva hallinta poistaa ajonaikaisen reitin uudelleenkäynnistyksen jälkeen, se on omistajuusongelma, joka korjataan lähteessä, ei syy lisätä laajempia NAT-sääntöjä sen päälle.

Aiheeseen liittyvät artikkelit