Að halda vistfanginu inn að forritinu gerir hverja skrárlínu og hverja færslu á leyfislistanum að þýða það sama. Að endurskrifa það við skýjabrúnina gerir leiðartöfluna einfaldari og skrárnar minna gagnlegar. Annaðhvort valið er ekki rangt út af fyrir sig, og rökin sem ráða því snúast sjaldan um afköst. Þrjú skilyrði ráða því: hvort forritið verður að vita hvaða manneskja tengdist, hvort skýjaofinn tekur við upprunanum sem þú ætlar að senda, og hver er tilbúinn að taka á sig póstleiðina á eftir.

Þrjú skilyrði ráða því

Byrjaðu á kröfu forritsins, ekki á netteikningunni. Ef heimild eða endurskoðun byggist á einstaklingsbundnu vistfangi biðlarans, þá er varðveisla þess virkniskrafa og þýðing er afturför. Ef forritið þarf bara að vita að umferðin hafi borist um fjartengingarleiðina, dugar þýtt vistfang og er mun ódýrara í rekstri.

Annað skilyrðið er vélrænt. Sýndarnet treystir ekki sjálfkrafa pakka sem segist bera vistfang sem var ekki úthlutað á sendandi viðmótið. Flest skýjaofin þvinga þetta fram, á mismunandi vegu og undir mismunandi nöfnum, og hönnun sem hunsar það mun líta rétt út á teikningu og hverfa hljóðlaust í framleiðslu.

Þriðja er skipulagslegt. Varðveisla uppruna þýðir að leiðartafla undirnets forritsins verður að vísa aftur á hliðið fyrir forskeyti biðlarans, og hvert teymi sem bætir við undirneti síðar verður að halda þeirri leið samkvæmri. Það er lítill kostnaður einu sinni, og endurtekinn kostnaður yfir tugi reikninga. Ákveðið hver borgar hann áður en þú lofar hegðuninni.

Leið er ekki leyfi til að falsa

Að bæta við póstleið segir undirnetinu þínu hvert svörin eiga að fara. Það segir ofnum ekki að tilvikið sem sendir þessa pakka megi gefa þau út með erlendum uppruna. Á AWS er viðkomandi stýring upprunar- og áfangastaðaeftirlit, og það sést fyrir hvert tilvik:

aws ec2 describe-instances --instance-ids i-0a1b2c3d4e5f60718 \
  --query "Reservations[].Instances[].SourceDestCheck"
aws ec2 modify-instance-attribute --instance-id i-0a1b2c3d4e5f60718 \
  --no-source-dest-check

Slökktu á því aðeins fyrir tilvikið sem hefur skjalfesta vinnu í sendingu, og fyrir ekkert annað. Sérhver VM forrits sem heldur eftirlitinu kveiktu er ein vél færri sem hægt er að nota til að gefa út umferð með lánaðan uppruna. Ef vettvangurinn þinn er ekki AWS skaltu leita að samsvarandi stillingu gegn fölsun eða leyfðum vistföngum í stað þess að gera ráð fyrir að hegðunin flytjist yfir.

Hröð pakkaskráning leysir spurninguna hraðar en að lesa stjórnborðið. Ef svörin fara út og biðlarinn sér þau aldrei, þá er það ofinn sem hendir fölsuðum upprunanum, en ekki forritið sem bregst.

Hvað þýðingin kaupir og hvað hún kostar

Að endurskrifa upprunann við hliðið eyðir vandamálinu með póstleiðina. Forritið sér eitt vistfang sem það veit þegar hvernig á að ná í, og forskeyti biðlarans þarf aldrei að birtast í leiðartöflu skýsins. Á Linux er reglan ein lína, og það er þess virði að skrifa þröngustu útgáfuna sem þú getur:

sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -s 172.20.8.0/24 -o ens5 -j SNAT --to-source 10.40.3.10

Taktu eftir því hvað forritið skráir núna: 10.40.3.10 fyrir hvern notanda, við hverja tengingu, að eilífu. Sérhver leyfislisti vistfanga sem byggður er á því gildi veitir nú aðgang að öllum fjartengingarhópnum, og hver atviksskoðun verður að fara aftur að hliðinu til að svara hver þetta var.

Lausnin er ekki að hætta við þýðingu, hún er að hætta að þykjast að vistfangið sé auðkenni. Berðu auðkenni biðlarans í sannvottuðu svæði, skráðu það við hliðið ásamt þýddu safninu, og leyfðu forritinu að tengjast á það. Án tengilykilsins breytir þýðingin netvandamáli í varanlegt réttarfarslegt vandamál.

Endurvarpinn er annað viðmót

Öfugt umboð fyrir framan forritið sneiðir hjá spurningunni um leiðfærðu slóðina að öllu leyti. Umboðið opnar sína eigin bakendatengingu, svo forskeyti biðlarans þarf aldrei að vera leiðfært innan sýndarnetsins, og forritið getur tekið við auðkenni í haus sem umboðið setur.

Sá haus er aðeins traustur þegar bakendi tekur við honum frá umboðinu og frá engu öðru. Í nginx-skilningi þýðir það að nefna trausta jafningjann beint í stað þess að trúa öllu sem berst:

set_real_ip_from 10.40.3.10;
real_ip_header X-Forwarded-For;
real_ip_recursive on;

Sérhver biðlari sem kemst beint að bakendanum getur falsað sama haus, svo bakendinn verður að vera óaðgengilegur nema í gegnum umboðið. Þetta er staðreynd um eldvegg, ekki skoðun um stillingar, og það er forsenda sem fólk sleppir þegar það afritar brotið.

Endurvarpinn breytir líka því sem þú kaupir. Þú færð auðkenni á forritsstigi og eðlilegan stað til að skrá það; þú gefur eftir almennu, því hvert nýtt prótókol þarf sína eigin umboðsstuðning. Fyrir HTTP-þjónustur er sú skipti venjulega góð, og fyrir hvað sem er ekki HTTP er það venjulega alls ekki í boði.

Skrifaðu niður hvað hver mörk sjá

Hvað sem þú velur, hönnunarúttektin ætti að enda á einni töflu sem nefnir upprunavistfangið og sannanlegt auðkenni á hverju stökki. Án hennar framleiðir fyrsta atvikið þrjú teymi sem hvert lýsir öðrum biðlara.

BoundarySource the next hop seesWhat is actually proven
Client to gateway172.20.8.14A certificate or credential was presented
Gateway to app subnet, preserved172.20.8.14The same session, if the return route exists
Gateway to app subnet, translated10.40.3.10Only that traffic came through the gateway
Proxy to backend10.40.3.10 plus a headerThe proxy asserted an identity it authenticated

Veldu svo. Varðveittu þegar heimild forritsins byggist raunverulega á vistfangi biðlarans og þú getur tekið á þig leiðina. Þýddu þegar svo er ekki og þú getur borið auðkenni utan bands, og notaðu leiðbeiningar AWS um endursendingartilvik fyrir vettvangssértækar endursendingarstillingar. Gríptu til endurvarps þegar þjónustan talar HTTP og þú vilt að auðkennið hætti að vera vistfang.

Tengdir greinar