Pa àwọn IP aláṣepọ̀ VPN mọ́ tàbí yí wọn padà pẹ̀lú SNAT ní etí òfurufú
Pípa orísun mọ́ ń dá àmì-ìdánimọ̀ aláṣepọ̀ dúró nínú gbogbo àkọsílẹ̀, SNAT ń jẹ́ kí tábìlì ọ̀nà kéré. Àwọn ẹ̀tọ́ mẹ́ta sọ èyí tí ohun-èlò nílò.
Pípa àdírẹ́sì aláṣepọ̀ VPN mọ́ títí dé ohun-èlò ń jẹ́ kí gbogbo ìlà àkọsílẹ̀ àti gbogbo ìforúkọsílẹ̀ nínú àkójọ àyè gbà túmọ̀ sí ohun kan náà. Kíkọ ọ́ padà ní etí òfurufú ń jẹ́ kí tábìlì ọ̀nà rọrùn àti kí àwọn àkọsílẹ̀ máà wúlò tó. Kò sí ìyàn nínú àwọn méjèèjì tí ó jẹ́ àṣìṣe fúnra rẹ̀, àti àríyànjiyàn tí ó pinnu rẹ̀ kì í sábà ní í ṣe pẹ̀lú iṣẹ́. Àwọn ẹ̀tọ́ mẹ́ta ló pinnu: bóyá ohun-èlò gbọdọ̀ mọ ènìyàn tí ó so pọ̀, bóyá aṣọ òfurufú yóò gba orísun tí o fẹ́ fi ránṣẹ́, àti ẹni tí yóò gba ojúṣe ọ̀nà ìpadà lẹ́yìn náà.
Àwọn ẹ̀tọ́ mẹ́ta ló pinnu
Bẹ̀rẹ̀ pẹ̀lú ìbéèrè ohun-èlò, kì í ṣe àwòrán nẹ́tíwọ́kì. Bí àṣẹ tàbí àyẹ̀wò bá gbára lé àdírẹ́sì aláṣepọ̀ kọ̀ọ̀kan, nígbà náà pípa mọ́ jẹ́ ìbéèrè iṣẹ́ àti ìtumọ̀ jẹ́ ìpadàsẹ́yìn. Bí ohun-èlò bá kàn nílò láti mọ̀ pé ìrìn-àjò wá nípasẹ̀ ọ̀nà àbáwọlé jíjìnnà, àdírẹ́sì tí a ti túmọ̀ tó, ó sì din owó jù lọ láti ṣàkóso.
Ẹ̀tọ́ kejì jẹ́ ti ẹ̀rọ. Nẹ́tíwọ́kì àfòyemọ̀ kì í gbára lé àpò kan tí ó sọ àdírẹ́sì tí a kò fi fún ẹ̀ka ìránṣẹ́ lójú-ẹ̀rọ. Ọ̀pọ̀lọpọ̀ aṣọ òfurufú ń fipá mú èyí, ní ọ̀nà àti orúkọ oríṣiríṣi, àti àpẹẹrẹ tí ó kùnà ní èyí yóò dàbí ẹni tí ó tọ́ nínú àwòrán yóò sì parẹ́ ní ìdákẹ́jẹ́ nínú ìmújáde.
Ẹ̀kẹta jẹ́ ti ètò. Pípa àwọn orísun mọ́ túmọ̀ sí pé tábìlì ọ̀nà ẹ̀ka-ìsọ̀rí ohun-èlò gbọdọ̀ tọ́ka padà sí ẹnubodè fún àkọ́kọ́ aláṣepọ̀, àti pé gbogbo ẹgbẹ́ tí ó bá fi ẹ̀ka-ìsọ̀rí kún ní ìgbà tó ń bọ̀ gbọdọ̀ pa ọ̀nà yẹn mọ́ ní ìbámu. Iyẹn jẹ́ ìnáwó kékeré lẹ́ẹ̀kan, àti ìnáwó tí ń tún ṣe ní ọ̀pọ̀lọpọ̀ àkọsílẹ̀. Pinnu ẹni tí yóò san án kí o tó ṣe ìlérí ìhùwàsí náà.
Ọ̀nà kì í ṣe àṣẹ láti ṣe àdáni
Fífi ọ̀nà ìpadà kún sọ fún ẹ̀ka-ìsọ̀rí rẹ ibi tí àwọn ìdáhùn gbọdọ̀ lọ. Kò sọ fún aṣọ pé ẹ̀rọ tí ń gbé àwọn àpò yẹn kọjá ní àṣẹ láti gbé wọn jáde pẹ̀lú orísun àjèjì. Ní AWS ìṣàkóso tí ó bá a mu ni àyẹ̀wò orísun àti ibi-àfojúsùn, ó sì hàn fún gbogbo ẹ̀rọ:
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
Pa á fún ẹ̀rọ nìkan tí iṣẹ́ rẹ̀ tí a kọ sílẹ̀ jẹ́ gbígbé kọjá, kì í ṣe fún ohunkóhun mìíràn. Gbogbo VM ohun-èlò tí ó fi àyẹ̀wò náà sílẹ̀ ní ṣíṣí jẹ́ ẹ̀rọ kan tí ó dínkù tí a lè lò láti gbé ìrìn-àjò jáde pẹ̀lú orísun àyáwó. Bí pẹpẹ rẹ kì í ṣe AWS, wá ètò àtakò-àdáni tàbí àdírẹ́sì àyè tí ó dọ́gba dípò kí o ro pé ìhùwàsí yóò kó lọ.
Mímú àpò ní kíákíá yanjú ìbéèrè yá ju kíkà kọ́nsólì lọ. Bí àwọn ìdáhùn bá jáde tí aláṣepọ̀ kò sì rí wọn rí, aṣọ ni ó ń da orísun àdáni nù, kì í ṣe ohun-èlò tí ń kùnà.
Kí ni ìtumọ̀ ń ra, kí sì ni iye rẹ̀
Kíkọ orísun padà ní ẹnubodè ń mú ìṣòro ọ̀nà ìpadà kúrò. Ohun-èlò rí àdírẹ́sì kan tí ó ti mọ bí a ṣe lè dé ọ̀dọ̀ rẹ̀, àkọ́kọ́ aláṣepọ̀ kò sì nílò láti hàn nínú tábìlì ọ̀nà òfurufú rí. Ní Linux ìlànà jẹ́ ìlà kan, ó sì yẹ kí o kọ ẹ̀dà tí ó dín jùlọ tí o lè ṣe:
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
Kíyèsí ohun tí ohun-èlò ń gbà sílẹ̀ báyìí: 10.40.3.10 fún gbogbo olùlò, ní gbogbo ìsopọ̀, títí láé. Gbogbo àkójọ àdírẹ́sì àyè tí a kọ́ lé orí iye yẹn ń fún gbogbo àwọn olùlò àbáwọlé jíjìnnà ní ààyè báyìí, àti gbogbo àyẹ̀wò ìṣẹ̀lẹ̀ gbọdọ̀ padà sí ẹnubodè láti dáhùn ẹni tí èyí jẹ́.
Àtúnṣe kì í ṣe fífi ìtumọ̀ sílẹ̀, ó jẹ́ fífi ṣíṣe bí ẹni pé àdírẹ́sì ni àmì-ìdánimọ̀ dúró. Gbé àmì-ìdánimọ̀ aláṣepọ̀ nínú pápá tí a ti fìdí rẹ̀ múlẹ̀, kọ ọ́ sílẹ̀ ní ẹnubodè pẹ̀lú àkójọpọ̀ tí a ti túmọ̀, kí o sì jẹ́ kí ohun-èlò darapọ̀ mọ́ ẹ̀. Láìsí kọ́kọ́rọ́ ìdàpọ̀, ìtumọ̀ ń yí ìṣòro nẹ́tíwọ́kì padà sí ìṣòro ìwádìí ọ̀ràn tí ó wà pẹ́.
Olùgbékalẹ̀ jẹ́ ojú-ìkànnkan mìíràn
Aṣojú-ìpadà tí ó wà níwájú ohun-èlò yẹra fún ìbéèrè ọ̀nà tí a tọ́ka pátápátá. Aṣojú-ìpadà ṣí ìsopọ̀ ẹ̀yìn tirẹ̀, nítorí náà àkọ́kọ́ aláṣepọ̀ kò nílò láti jẹ́ ọ̀nà tí a lè tọ́ka nínú nẹ́tíwọ́kì àfòyemọ̀, ohun-èlò sì lè gba àmì-ìdánimọ̀ nínú àkọlé tí aṣojú-ìpadà ṣètò.
Àkọlé yẻn gbára lé nìkan nígbà tí ẻyìn gbà á láti ọ̀dọ̀ aṣojú-ìpadà àti láti ibi kankan mìíràn. Ní àwọn ọ̀rọ̀ nginx ìyẻn túmọ̀ sí pípe alábàákẹ́gbẹ́ tí a gbára lé ní orúkọ pọ̀, dípò gbígbà ohunkóhun tí ó bá dé:
set_real_ip_from 10.40.3.10;
real_ip_header X-Forwarded-For;
real_ip_recursive on;
Gbogbo aláṣepọ̀ tí ó lè dé ẹ̀yìn tààrà lè ṣe àdáni àkọlé kan náà, nítorí náà ẹ̀yìn gbọdọ̀ jẹ́ èyí tí a kò lè dé àyàfi nípasẹ̀ aṣojú-ìpadà. Èyí jẹ́ òtítọ́ ògiri-iná, kì í ṣe èrò ìṣètò, ìyẹn sì ni ìrònú tí àwọn ènìyàn ń fò mọ́lẹ̀ nígbà tí wọ́n ń dà á.
Olùgbékalẹ̀ tún yí ohun tí o ń ra padà. O gba àmì-ìdánimọ̀ ní ìpele ohun-èlò àti ibi àdánidá láti kọ ọ́ sílẹ̀; o fi àgbáyé sílẹ̀, nítorí gbogbo ìlànà tuntun nílò àtìlẹ́yìn aṣojú-ìpadà tirẹ̀. Fún àwọn iṣẹ́ HTTP ìpààrọ̀ yẹn sábà dára, fún ohunkóhun tí kì í ṣe HTTP a kì í sábà rí i rárá.
Kọ sílẹ̀ ohun tí gbogbo ààlà rí
Ohunkóhun tí o bá yàn, àyẹ̀wò àpẹẹrẹ gbọdọ̀ parí pẹ̀lú tábìlì kan tí ó dárúkọ àdírẹ́sì orísun àti àmì-ìdánimọ̀ tí a lè fi hàn ní gbogbo ìgbésẹ̀. Láìsí rẹ̀, ìṣẹ̀lẹ̀ àkọ́kọ́ yóò dá ẹgbẹ́ mẹ́ta tí olúkúlùkù ń ṣàpèjúwe aláṣepọ̀ mìíràn.
| 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 |
Lẹ́yìn náà yàn. Pa orísun mọ́ nígbà tí àṣẹ ohun-èlò bá gbára lé àdírẹ́sì aláṣepọ̀ ní tòótọ́ tí o sì lè gba ọ̀nà náà. Túmọ̀ nígbà tí kì í bẹ́ẹ̀ tí o sì lè gbé àmì-ìdánimọ̀ jáde kúrò nínú báńdì, kí o sì lo ìtọ́sọ́nà AWS fún àwọn ẹ̀rọ gbígbé kọjá fún àwọn ètò gbígbé kọjá tí ó jẹ́ ti pẹpẹ. Yíjú sí olùgbékalẹ̀ nígbà tí iṣẹ́ náà bá ń sọ HTTP tí o sì fẹ́ kí àmì-ìdánimọ̀ máà jẹ́ àdírẹ́sì mọ́.