Mantendu edo SNAT egin VPN bezeroen IPak hodeiaren mugan
Iturria mantentzeak bezeroaren identitatea gordetzen du erregistro bakoitzean, SNATek bideratze-taula txiki mantentzen du. Hiru baldintzek esaten dute zein behar duen aplikazioak.
VPN bezeroaren helbidea aplikazioraino mantentzeak erregistro-lerro bakoitzak eta baimenduen zerrendako sarrera bakoitzak gauza bera esan nahi dutela lortzen du. Hodeiaren ertzean berridazteak bideratze-taula sinpleagoa eta erregistroak gutxiago erabilgarri egiten ditu. Bi aukeretako bat ere ez da okerra bere horretan, eta hura erabakitzen duen argudioa gutxitan da errendimenduari buruzkoa. Hiru baldintzek erabakitzen dute: aplikazioak jakin behar duen pertsona zein konektatu zen, hodeiaren oihalak bidali nahi duzun iturria onartuko duen, eta nor egongo den prest itzulera-bidea bere gain hartzeko.
Hiru baldintzek erabakitzen dute
Hasi aplikazioaren baldintzatik, ez sarearen diagramatik. Baimenak edo auditoriak bezeroaren helbide indibidualaren mendekoak badira, hura mantentzea baldintza funtzionala da eta itzultzea atzerakada. Aplikazioak soilik jakin behar badu trafikoa urruneko sarbide-bidetik iritsi zela, itzulitako helbidea nahikoa da eta askoz merkeagoa da ustiatzen.
Bigarren baldintza mekanikoa da. Sare birtual batek ez du automatikoki sinesten bidalketa-interfazeari esleitu ez zaion helbidea dioen pakete batean. Hodei-oihal gehienek hori behartzen dute, modu eta izen desberdinetan, eta hori alde batera uzten duen diseinu bat zuzena dirudien diagraman eta isilka galduko da produkzioan.
Hirugarrena antolakuntzakoa da. Iturriak mantentzeak esan nahi du aplikazioaren azpisarearen bideratze-taulak atezainera itzuli behar duela bezeroaren aurrizkiarentzat, eta geroago azpisare bat gehitzen duen talde bakoitzak bide hori koherente mantendu behar duela. Hori behin kostu txiki bat da, eta kostu errepikakorra dozenaka kontutan zehar. Erabaki nor den hura ordaintzen duena portaera agindu aurretik.
Bide bat ez da faltsutzeko baimena
Itzulera-bide bat gehitzeak zure azpisareari esaten dio nora joan behar duten erantzunek. Ez dio oihalari esaten pakete horiek birbidaltzen dituen instantziak atzerriko iturri batekin igor ditzakeenik. AWSn dagokion kontrola iturriaren eta helmugaren egiaztapena da, eta instantzia bakoitzeko ikus daiteke:
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
Desaktibatu hori dokumentatutako lana birbidaltzea duen instantziarentzat soilik, eta beste ezerentzat ez. Egiaztapena aktibo mantentzen duen aplikazio-makineria bakoitza iturri mailegatuz trafikoa igortzeko erabil daitekeen makineria bat gutxiago da. Zure plataforma AWS ez bada, bilatu baliokidea den anti-spoofing edo baimendutako helbideen ezarpena, portaera transferituko dela suposatu ordez.
Paketeen harrapaketa azkar batek galdera konpontzen du kontsola irakurtzeak baino azkarrago. Erantzunak ateratzen badira eta bezeroak inoiz ikusten ez baditu, oihala da faltsututako iturria baztertzen duena, eta ez aplikazioa huts egiten duena.
Zer erosten du itzulpenak eta zenbat kostatzen du
Iturria atezainean berridazteak itzulera-bidearen arazoa ezabatzen du. Aplikazioak jada nola iritsi badakien helbide bat ikusten du, eta bezeroaren aurrizkiak ez du inoiz hodeiko bideratze-taularen batean agertu behar. Linuxen araua lerro bakarra da, eta merezi du idatz dezakezun bertsiorik estuena idaztea:
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
Kontuan hartu aplikazioak orain zer erregistratzen duen: 10.40.3.10 erabiltzaile bakoitzeko, konexio bakoitzean, betiko. Balio horren gainean eraikitako helbide-baimenduen zerrenda batek urruneko sarbideko populazio osoari ematen dio orain sarbidea, eta gertakari baten berrikuspenak atezainera itzuli behar du nor zen erantzuteko.
Konponbidea ez da itzulpena bertan behera uztea, helbidea identitatea dela sinesteari uztea baizik. Eraman bezeroaren identitatea autentifikatutako eremu batean, erregistratu atezainean itzulitako tuplearekin batera, eta utzi aplikazioari harekin bat egiten. Bat-egiteko giltzarik gabe, itzulpenak sareko arazoa betiko arazo forentse bihurtzen du.
Erreleboa beste interfaze bat da
Aplikazioaren aurreko alderantzizko proxyak bideratutako bidearen galdera guztiz saihesten du. Proxyak bere backend konexioa irekitzen du, beraz bezeroaren aurrizkiak ez du inoiz sare birtualean bideragarria izan behar, eta aplikazioak proxyak ezartzen duen goiburu batean jaso dezake identitatea.
Goiburu hori fidagarria da backendak proxyarengandik eta beste ezerengandik ez duenean onartzen soilik. nginx terminoetan horrek esan nahi du konfiantzazko parekidea espresuki izendatzea, heltzen den edozer sinetsi ordez:
set_real_ip_from 10.40.3.10;
real_ip_header X-Forwarded-For;
real_ip_recursive on;
Backendera zuzenean irits daitekeen edozein bezerok goiburu bera faltsutu dezake, beraz backendak proxyaren bidez soilik izan behar du irisgarri. Hori suebakiaren egitatea da, ez konfigurazioaren iritzia, eta jendeak pasartean kopiatzean saltatzen duen suposamena da.
Erreleboak erosten ari zarena ere aldatzen du. Aplikazio-mailako identitatea eta hura erregistratzeko leku naturala lortzen dituzu; orokortasunari uko egiten diozu, protokolo berri bakoitzak bere proxy laguntza behar duelako. HTTP zerbitzuetarako truke hori ona izan ohi da, eta HTTP ez den edozertarako normalean ez dago inola ere eskuragarri.
Idatzi muga bakoitzak zer ikusten duen
Edozer aukeratzen duzula, diseinuaren berrikuspena taula batekin amaitu beharko litzateke, jauzi bakoitzean iturri-helbidea eta frogagarria den identitatea izendatzen dituena. Hori gabe, lehen gertakariak hiru talde sortzen ditu, bakoitzak bezero desberdin bat deskribatuz.
| Boundary | Source the next hop sees | What is actually proven |
|---|---|---|
| Client to gateway | 172.20.8.14 | A certificate or credential was presented |
| Gateway to app subnet, preserved | 172.20.8.14 | The same session, if the return route exists |
| Gateway to app subnet, translated | 10.40.3.10 | Only that traffic came through the gateway |
| Proxy to backend | 10.40.3.10 plus a header | The proxy asserted an identity it authenticated |
Gero aukeratu. Mantendu iturria aplikazioaren baimena benetan bezeroaren helbidearen mende dagoenean eta bidea zure gain har dezakezunean. Itzuli hori horrela ez denean eta identitatea bandatik kanpo eraman dezakezunean, eta erabili AWSren birbidaltze-instantzien gida plataformaren berariazko birbidaltze-ezarpenetarako. Joan errelebo batera zerbitzuak HTTP hitz egiten duenean eta identitatea helbidea izateari uztea nahi duzunean.