Cadw neu SNAT IP cleientiaid VPN ar ymyl y cwmwl
Mae cadw'r ffynhonnell yn dal hunaniaeth y cleient ym mhob cofnod, mae SNAT yn cadw'r tabl llwybro yn fach. Mae tair amod yn dweud pa un sydd ei angen ar y rhaglen.
Mae cadw cyfeiriad y cleient VPN yr holl ffordd i'r rhaglen yn golygu bod pob llinell gofnod a phob cofnod yn y rhestr ganiatáu yn golygu'r un peth. Mae ei ailysgrifennu ar ymyl y cwmwl yn gwneud y tabl llwybro yn symlach a'r cofnodion yn llai defnyddiol. Nid yw'r naill ddewis na'r llall yn anghywir ar ei ben ei hun, ac anaml y mae'r ddadl sy'n penderfynu hynny yn ymwneud â pherfformiad. Mae tair amod yn penderfynu: a oes rhaid i'r rhaglen wybod pa berson a gysylltodd, a fydd ffabrig y cwmwl yn derbyn y ffynhonnell yr ydych am ei hanfon, a phwy sy'n fodlon ymrwymo i'r llwybr dychwelyd wedyn.
Mae tair amod yn penderfynu
Dechreuwch gyda gofyniad y rhaglen, nid gyda'r diagram rhwydwaith. Os yw awdurdodiad neu archwiliad yn dibynnu ar gyfeiriad unigol y cleient, yna mae ei gadw yn ofyniad swyddogaethol ac mae cyfieithu yn gam yn ôl. Os nad oes angen ar y rhaglen ond gwybod bod traffig wedi cyrraedd ar hyd llwybr mynediad o bell, mae cyfeiriad wedi'i gyfieithu yn ddigon ac yn llawer rhatach i'w weithredu.
Mae'r ail amod yn fecanyddol. Nid yw rhwydwaith rhithwir yn ymddiried yn awtomatig mewn pecyn sy'n honni cyfeiriad na chafodd ei neilltuo i'r rhyngwyneb anfon. Mae'r rhan fwyaf o ffabrigau cwmwl yn gorfodi hynny, mewn gwahanol ffyrdd ac o dan wahanol enwau, a bydd dyluniad sy'n ei anwybyddu yn edrych yn gywir mewn diagram ac yn gollwng yn dawel mewn cynhyrchu.
Mae'r drydedd yn drefniadol. Mae cadw ffynonellau yn golygu bod yn rhaid i dabl llwybro is-rwyd y rhaglen bwyntio'n ôl at y porth ar gyfer rhagddodiad y cleient, a rhaid i bob tîm sy'n ychwanegu is-rwyd wedyn gadw'r llwybr hwnnw'n gyson. Mae hynny'n gost fach unwaith, ac yn un sy'n codi droeon dros ddwsinau o gyfrifon. Penderfynwch pwy sy'n ei thalu cyn addo'r ymddygiad.
Nid yw llwybr yn ganiatâd i dwyllo
Mae ychwanegu llwybr dychwelyd yn dweud wrth eich is-rwyd i ble y dylai atebion fynd. Nid yw'n dweud wrth y ffabrig fod yr achos sy'n anfon y pecynnau hynny wedi'i ganiatáu i'w hanfon gyda ffynhonnell estron. Ar AWS, y rheolydd perthnasol yw gwirio ffynhonnell a chyrchfan, ac mae'n weladwy fesul achos:
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
Diffoddwch hynny ar gyfer yr achos y mae ei waith dogfennedig yn anfon ymlaen, ac ar gyfer dim arall. Mae pob VM rhaglen sy'n cadw'r gwirio ymlaen yn un peiriant yn llai y gellir ei ddefnyddio i anfon traffig gyda ffynhonnell fenthyg. Os nad AWS yw eich platfform, chwilgwch am y gosodiad gwrth-dwyllo neu gyfeiriadau a ganiateir cyfatebol yn hytrach na thybio bod yr ymddygiad yn trosglwyddo.
Mae cipio pecynnau cyflym yn setlo'r cwestiwn yn gynt na darllen y consol. Os yw atebion yn gadael ac nad yw'r cleient byth yn eu gweld, y ffabrig sy'n taflu'r ffynhonnell dwyllodrus, ac nid y rhaglen sy'n methu.
Beth mae cyfieithu yn ei brynu, a beth mae'n ei gostio
Mae ailysgrifennu'r ffynhonnell wrth y porth yn chwalu problem y llwybr dychwelyd. Mae'r rhaglen yn gweld un cyfeiriad y mae eisoes yn gwybod sut i'w gyrraedd, ac nid oes rhaid i ragddodiad y cleient byth ymddangos mewn tabl llwybro cwmwl. Ar Linux mae'r rheol yn un llinell, ac mae'n werth ysgrifennu'r fersiwn gulaf y gallwch:
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
Sylwch beth mae'r rhaglen yn ei gofnodi nawr: 10.40.3.10 ar gyfer pob defnyddiwr, ar bob cysylltiad, am byth. Mae unrhyw restr gyfeiriadau a ganiateir a adeiladir ar y gwerth hwnnw nawr yn rhoi mynediad i holl boblogaeth mynediad o bell, a rhaid i unrhyw adolygiad digwyddiad fynd yn ôl at y porth i ateb pwy oedd hwn.
Nid yw'r ateb yn golygu gadael cyfieithu, mae'n golygu rhoi'r gorau i esgus bod y cyfeiriad yn hunaniaeth. Cludwch hunaniaeth y cleient mewn maes dilysedig, cofnodwch hi wrth y porth gyda'r tuple wedi'i gyfieithu, a gadewch i'r rhaglen ymuno arni. Heb y allwedd ymuno, mae cyfieithu'n troi problem rhwydwaith yn un fforensig barhaol.
Mae'r relé yn rhyngwyneb gwahanol
Mae dirprwy gwrthdro o flaen y rhaglen yn osgoi'r cwestiwn llwybr a lwybrwyd yn llwyr. Mae'r dirprwy yn agor ei gysylltiad cefndir ei hun, felly nid oes rhaid i ragddodiad y cleient byth fod yn llwybradwy o fewn y rhwydwaith rhithwir, a gall y rhaglen dderbyn hunaniaeth mewn pennawd y mae'r dirprwy yn ei osod.
Nid yw'r pennawd hwnnw yn ddibynadwy ond pan fo'r cefndir yn ei dderbyn gan y dirprwy ac oddi wrth ddim arall. Yn nhelerau nginx mae hynny'n golygu enwi'r cymar dibynadwy yn benodol yn lle credu popeth a ddaw:
set_real_ip_from 10.40.3.10;
real_ip_header X-Forwarded-For;
real_ip_recursive on;
Gall unrhyw gleient sy'n cyrraedd y cefndir yn uniongyrchol ffugio'r un pennawd, felly rhaid i'r cefndir fod yn anghyrraeddadwy ac eithrio drwy'r dirprwy. Ffaith wal dân yw hon, nid barn ffurfweddu, a dyma'r dybiaeth y mae pobl yn ei hepgor pan fyddant yn copïo'r darn.
Mae'r relé hefyd yn newid yr hyn yr ydych yn ei brynu. Cewch hunaniaeth ar lefel rhaglen a man naturiol i'w gofnodi; rhowch y gorau i gyffredinolrwydd, oherwydd mae angen ei gefnogaeth dirprwy ei hun ar bob protocol newydd. Ar gyfer gwasanaethau HTTP mae'r cyfnewid hwnnw fel arfer yn dda, ac ar gyfer unrhyw beth nad yw'n HTTP nid yw fel arfer ar gael o gwbl.
Ysgrifennwch beth mae pob ffin yn ei weld
Beth bynnag a ddewiswch, dylai'r adolygiad dylunio ddod i ben gydag un tabl sy'n enwi'r cyfeiriad ffynhonnell a'r hunaniaeth y gellir ei phrofi ar bob naid. Heb hynny, mae'r digwyddiad cyntaf yn cynhyrchu tri thîm sy'n disgrifio cleient gwahanol yr un.
| 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 |
Yna dewiswch. Cadwch y ffynhonnell pan fo awdurdodiad y rhaglen wir yn dibynnu ar gyfeiriad y cleient a phan allwch feddiannu'r llwybr. Cyfieithwch pan nad yw hynny'n wir a phan allwch gludo hunaniaeth y tu allan i'r band, a defnyddiwch ganllawiau AWS ar gyfer achosion anfon ymlaen ar gyfer y gosodiadau anfon ymlaen sy'n benodol i'r platfform. Cyrchwch at relé pan fo'r gwasanaeth yn siarad HTTP ac yr ydych am i hunaniaeth roi'r gorau i fod yn gyfeiriad o gwbl.