Ippreserva jew SNAT l-IPs tal-klijenti VPN fil-fruntiera tal-cloud
Il-preservazzjoni tas-sors iżżomm l-identità tal-klijent f'kull log, SNAT iżżomm it-tabella tar-rotot żgħira. Tliet kundizzjonijiet jgħidu liema waħda teħtieġ l-applikazzjoni.
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.
| 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 |
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.