In ciwaanka macmiilka VPN ilaa application-ka la hayo waxay ka dhigaysaa in kasta oo xariiq log ah iyo kasta oo gelitaan liiska fasaxa ah ay isku macne yihiin. In xadka daruuraha dib loo qoro waxay ka dhigaysaa shaxda dariiqa mid fudud iyo log-yada mid aan faa'iido lahayn. Midna doorashooyinka midkoodna keligiis ma qaldana, doodda go'aamisaana dhif bay ku saabsan tahay waxqabadka. Saddex shuruudood ayaa go'aamisa: in application-ku uu ogaado qofka isku xidhay, in qaabka daruuraha uu aqbalo isha aad rabto inaad dirto, iyo cidda diyaar u ah inay qaadato mas'uuliyadda dariiqa soo noqoshada dabadeed.

Saddex shuruudood ayaa go'aamisa

Ka bilow baahida application-ka, ma aha jaantuska shabakadda. Haddii fasax ama baaris ay ku xiran yihiin ciwaanka macmiilka gaarka ah, markaas hayntiisu waa baahi shaqo iyo tarjumaaddu waa dib u dhac. Haddii application-ku uu u baahan yahay oo kaliya inuu ogaado in taraafikadu ku timid dariiqa gelitaanka fog, ciwaan la tarjumay ayaa ku filan waana mid aad uga jaban in la maareeyo.

Shuruudda labaad waa farsamo. Shabakad mala awaal ah si otomaatig ah kuma kalsoonaanayso baakad sheegta ciwaan aan la siin interface-ka dira. Inta badan qaababka daruuraha way ku xoojiyaan taas, siyaabo iyo magacyo kala duwan, naqshad seegtaana waxay u muuqan doontaa mid saxan jaantuska oo si aamusan ugu dhici doonta wax soo saarka.

Tan saddexaad waa mid hay'adeed. Ilaalinta isha waxay ka dhigan tahay in shaxda dariiqa subnet-ka application-ku ay tahay inay dib u tilmaanto gateway-ga horgalaha macmiilka, iyo koox kasta oo dambe ku darto subnet waa inay dariiqaas si joogto ah u haysaa. Taasi waa kharash yar hal mar iyo kharash soo noqnoqda tobanaan xisaabta. Go'aanso cidda bixisa ka hor intaadan ballan qaadin habdhaqanka.

Dariiqu ma aha fasax been-abuur

Ku darista dariiqa soo noqoshada waxay u sheegtaa subnet-kaaga halka jawaabtu tahay inay tagto. Kuma sheegto qaabka in aaladda gudbisa baakadahaas ay xaq u leedahay inay ku soo saarto isha shisheeye. AWS, kontoroolka khuseeya waa hubinta isha iyo meesha, waana mid lagu arki karo aalad kasta:

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

Dami oo kaliya aaladda shaqadeeda la diiwaangeliyay ay tahay gudbin, iyo wax kale ma aha. Aalad kasta oo application VM ah oo hubinta u daaya furan waa mashiin ka yar mid la isticmaali karo in lagu soo saaro taraafik isha amaah ah. Haddii madaladaadu aanay AWS ahayn, raadi dejinta ka-hortagga been-abuurka ama ciwaannada la fasaxay ee u dhigma halkii aad ka malayn lahayd in habdhaqanku gudbo.

Qabashada baakad degdeg ah waxay go'aamisaa su'aasha si ka degdeg badan akhrinta console-ka. Haddii jawaabtu baxdo oo macmiilku waligiis arkin, ma aha application-ka oo guuldarraysta, waa qaabka oo tuuraya isha been-abuurka.

Waxa tarjumaaddu iibsato iyo waxa ay ku kacdo

Dib u qorista isha gateway-ga waxay tirtirtaa dhibaatada dariiqa soo noqoshada. Application-ku waxay arkaa hal ciwaan oo ay horey u garanayso sida loo gaaro, horgalaha macmiilkaana weligiis uma baahna inuu ka soo muuqdo shaxda dariiqa daruuraha. Linux, qaanuunku waa hal xariiq, waana mudan in la qoro nuqulka ugu cidhiidhiga badan ee aad kartid:

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

Ogow waxa application-ku hadda diiwaangeliyo: 10.40.3.10 isticmaal kasta, xidhiidh kasta, weligiis. Liis kasta oo ciwaan la fasaxay oo lagu dhisay qiimahaas hadda waxay siinayaa gelitaan dhammaan dadka gelitaanka fog, iyo dib u eegis shil kasta waa inuu ku noqdaa gateway-ga si uu uga jawaabo yaa kan ahaa.

Xalku ma aha in laga tago tarjumaadda, waa in laga joojo iska dhigista in ciwaanku yahay aqoonsi. Qaado aqoonsiga macmiilka goob la xaqiijiyay, ku diiwaangeli gateway-ga oo ay la socoto tuple la tarjumay, oo u ogolow application-ka inuu ku biiro. La'aanta furaha isku-xidhka, tarjumaaddu waxay dhibaato shabakadeed u beddelaysaa mid silc ah oo joogto ah.

Relay waa interface kale

Proxy rogan oo application-ka hortiisa ah wuxuu gabi ahaanba ka gudbaa su'aasha dariiqa la marsiin karo. Proxy-ga wuxuu furaa xidhiidhkiisa backend, sidaas darteed horgalaha macmiilka uma baahna inuu weligiis noqdo mid la mari karo gudaha shabakadda mala awaalka ah, application-kuna wuxuu aqoonsi ka heli karaa cinwaan madax ah oo uu proxy-ga dejiyo.

Cinwaankaas madaxa ah waa la aamini karaa oo kaliya marka backend-ku ka aqbalo proxy-ga oo aanu ka aqbalin wax kale. Erayada nginx taas waxay ka dhigan tahay in si cad loo magacaabo lammaanaha la aamino halkii la aamini lahaa wax kasta oo yimaada:

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

Macmiil kasta oo si toos ah u gaari kara backend-ku wuxuu been-abuuri karaa isla cinwaankaas, sidaas darteed backend-ku waa inuu noqdaa mid aan laga gaari karin proxy-ga mooyaane. Taasi waa xaqiiqo firewall, ma aha ra'yi habayn, waana malaha dadku boodaan marka ay koobiyaan qaybta.

Relay-ga waxa kale oo uu beddelaa waxa aad iibsanayso. Waxaad heshaa aqoonsi heer application iyo meel dabiici ah oo lagu diiwaangeliyo; waxaad ka tanaasushaa guud ahaanshaha, maxaa yeelay borotokool kasta oo cusub wuxuu u baahan yahay taageeradiisa proxy. Adeegyada HTTP ganacsigaas badanaa wuu wanaagsan yahay, iyo wax kasta oo aan HTTP ahayn badanaa lama heli karo haba yaraatee.

Qor waxa xad kastu arko

Wax kasta oo aad dooratid, dib u eegista naqshaddu waa inay ku dhammaataa hal shax oo magacaabaya ciwaanka isha iyo aqoonsiga la caddayn karo bood kasta. La'aanteed, shilka ugu horreeya wuxuu soo saaraa saddex koox oo mid kastaa tilmaamayo macmiil kala duwan.

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

Kadib dooro. Hay isha marka fasaxa application-ku uu run ahaantii ku xiran yahay ciwaanka macmiilka oo aad qaadan kartid dariiqa. Turjun marka aanay sidaas ahayn oo aad aqoonsiga ka qaadan kartid band-ka bannaankiisa, oo isticmaal tilmaamaha AWS ee aaladaha gudbinta dejinta gudbinta ee gaarka ah ee madalada. U leexo relay marka adeeggu ku hadlo HTTP oo aad rabto in aqoonsigu gebi ahaanba ciwaan noqon.

Maqaallo la xiriira