Li żżomm l-indirizz tal-klijent VPN sal-applikazzjoni jagħmel kull linja tal-log u kull daħla fil-lista permessa ifissru l-istess ħaġa. Li terġa' tikteb fl-estremità tal-cloud tagħmel it-tabella tar-rotot aktar sempliċi u l-logs inqas utli. L-ebda waħda miż-żewġ għażliet mhija ħażina fiha nnifisha, u l-argument li jiddeċidiha rari jkun dwar il-prestazzjoni. Tliet kundizzjonijiet jiddeċieduha: jekk l-applikazzjoni tridx taf liema bniedem ikkonnettja, jekk id-drapp tal-cloud hux se jaċċetta s-sors li biħsiebek tibgħat, u min hu lest jieħu f'idejh ir-rotta tar-ritorn wara.

Tliet kundizzjonijiet jiddeċieduha

Ibda mir-rekwiżit tal-applikazzjoni, mhux mid-dijagramma tan-netwerk. Jekk l-awtorizzazzjoni jew l-awditjar jiddependu mill-indirizz individwali tal-klijent, allura l-preservazzjoni tiegħu hija rekwiżit funzjonali u t-traduzzjoni hija rigressjoni. Jekk l-applikazzjoni jeħtiġilha biss taf li t-traffiku wasal mill-passaġġ tal-aċċess mill-bogħod, indirizz tradott huwa biżżejjed u ħafna irħas biex jiġi operat.

It-tieni kundizzjoni hija mekkanika. Netwerk virtwali ma jafdax awtomatikament pakkett li jallega indirizz li ma ngħatax lill-interface li jibgħat. Il-biċċa l-kbira tad-drappijiet tal-cloud jinfurzaw dan, b'modi u ismijiet differenti, u disinn li jinjora dan jidher korrett fid-dijagramma u jaqa' bil-kwiet fil-produzzjoni.

It-tielet hija organizzattiva. Il-preservazzjoni tas-sorsi tfisser li t-tabella tar-rotot tas-subnet tal-applikazzjoni trid tipponta lura lejn il-gateway għall-prefiss tal-klijent, u kull tim li jżid subnet wara irid iżomm dik ir-rotta konsistenti. Dan huwa spiza żgħira darba, u spiza rikorrenti fuq għexieren ta' kontijiet. Iddeċiedi min iħallasha qabel ma twiegħed l-imġiba.

Rotta mhijiex permess biex tiffalsifika

Iżżid rotta tar-ritorn tgħid lis-subnet tiegħek fejn għandhom imorru t-tweġibiet. Ma tgħidx lid-drapp li l-istanza li tibgħat dawk il-pakketti hija awtorizzata toħroġhom b'sors barrani. Fuq AWS il-kontroll rilevanti huwa l-verifika tas-sors u d-destinazzjoni, u tidher għal kull istanza:

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

Itfiha biss għall-istanza li x-xogħol dokumentat tagħha huwa l-ibbordjar, u għal xejn ieħor. Kull VM tal-applikazzjoni li żżomm il-verifika mixgħula hija magna waħda inqas li tista' tintuża biex toħroġ traffiku b'sors misluf. Jekk il-pjattaforma tiegħek mhijiex AWS, fittex is-setting ekwivalenti tal-kontra l-falsifikazzjoni jew tal-indirizzi permessi minflok ma tassumi li l-imġiba tinxtered.

Qabda tal-pakketti malajr issolvi l-mistoqsija aktar malajr milli taqra l-konsola. Jekk it-tweġibiet joħorġu u l-klijent qatt ma jarahom, id-drapp huwa li jarmi s-sors falsifikat, u mhux l-applikazzjoni li tonqos.

X'jixtri t-traduzzjoni, u x'inhu l-ispiża tagħha

Li terġa' tikteb is-sors fil-gateway tneħħi l-problema tal-passaġġ tar-ritorn. L-applikazzjoni tara indirizz wieħed li diġà taf kif tasal għalih, u l-prefiss tal-klijent qatt m'għandu jidher fit-tabella tar-rotot tal-cloud. Fuq Linux ir-regola hija linja waħda, u jiswa l-piż li tikteb l-aktar verżjoni dejqa li tista':

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

Innota x'qed jirrekordja l-applikazzjoni issa: 10.40.3.10 għal kull utent, fuq kull konnessjoni, għal dejjem. Kwalunkwe lista permessa tal-indirizzi mibnija fuq dak il-valur issa tagħti aċċess lill-popolazzjoni kollha tal-aċċess mill-bogħod, u kwalunkwe reviżjoni ta' inċident trid terġa' lura għall-gateway biex twieġeb min kien dan.

Is-soluzzjoni mhijiex li tabbanduna t-traduzzjoni, hija li tieqaf tippretendi li l-indirizz huwa identità. Ġorr l-identità tal-klijent f'qasam awtentikat, irrekordjaha fil-gateway flimkien mat-tupla tradotta, u ħalli l-applikazzjoni tingħaqad fuqha. Mingħajr iċ-ċavetta tal-għaqda, it-traduzzjoni tbiddel problema tan-netwerk fi problema forensika permanenti.

Ir-relay huwa interface differenti

Proxy maqlub quddiem l-applikazzjoni jevita għal kollox il-mistoqsija tal-passaġġ bir-rotta. Il-proxy jiftaħ il-konnessjoni backend tiegħu stess, u għalhekk il-prefiss tal-klijent qatt m'għandu jkun jista' jiġi routed ġewwa n-netwerk virtwali, u l-applikazzjoni tista' tirċievi l-identità fi header li jistabbilixxi l-proxy.

Dak il-header huwa affidabbli biss meta l-backend jaċċettah mill-proxy u minn xejn ieħor. F'termini ta' nginx dan ifisser li ssemmi b'mod espliċitu l-pari affidabbli minflok ma temmen kull ma jasal:

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

Kwalunkwe klijent li jista' jasal għall-backend direttament jista' jiffalsifika l-istess header, għalhekk il-backend irid ikun mhux aċċessibbli ħlief permezz tal-proxy. Dan huwa fatt tal-firewall, mhux opinjoni tal-konfigurazzjoni, u din hija l-assunzjoni li n-nies jaqbżu meta jikkupjaw is-silta.

Ir-relay ibiddel ukoll dak li qed tixtri. Ikollok identità fil-livell tal-applikazzjoni u post naturali biex tirrekordjaha; titlef il-ġeneralità, għax kull protokoll ġdid jeħtieġ l-appoġġ tal-proxy tiegħu. Għas-servizzi HTTP dak il-bdil normalment huwa tajjeb, u għal kwalunkwe ħaġa li mhijiex HTTP normalment mhijiex disponibbli xejn.

Ikteb x'jara kull fruntiera

Tkun xi tkun li tagħżel, ir-reviżjoni tad-disinn għandha tispiċċa b'tabella waħda li ssemmi l-indirizz tas-sors u l-identità li tista' tiġi ppruvata f'kull qabża. Mingħajrha, l-ewwel inċident jipproduċi tliet timijiet li kull wieħed jiddeskrivi klijent differenti.

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

Imbagħad agħżel. Ippreserva meta l-awtorizzazzjoni tal-applikazzjoni tiddependi verament mill-indirizz tal-klijent u tista' tieħu r-rotta f'idejk. Ittraduċi meta dan ma jkunx il-każ u tista' ġġorr l-identità barra mill-firxa, u uża il-linji gwida ta' AWS għall-istanzi tal-ibbordjar għas-settings tal-ibbordjar speċifiċi għall-pjattaforma. Erġa' lura għal relay meta s-servizz jitkellem HTTP u trid li l-identità tieqaf tkun indirizz.

Artikli relatati