TLS àbínibí, gbigbe SSH tàbí VPN fún iṣẹ́ cloud kan
TLS àbínibí, gbigbe SSH àti ìpele ìsàlẹ̀ tí a tọ́ sọ́nà ń dáàbò bo àwọn ìkànnì oríṣiríṣi. Ṣàyẹ̀wò ọ̀kọ̀ọ̀kan láti yan ààlà tí ó kéré jù tí ó bo iṣẹ́ náà.
Ìbéèrè kì í sábà jẹ́ bóyá kí a fi ààtò bo nnkan láàárín ẹ̀rọ cloud méjì; ìbéèrè ni ìkànnì wo ni o ń fi ààtò bo àti ta ni ń yẹ̀wò ìdánimọ̀ ta. Mo bẹ̀rẹ̀ àwọn ìjíròrò wọ̀nyí láti iṣẹ́ náà dípò àwòrán nẹ́tíwọ́kì, nítorí iṣẹ́ náà ti mọ ohun tí ó nílò. Ààlà mẹ́ta bo ọ̀pọ̀lọpọ̀ ìṣẹ̀lẹ̀: TLS ti app náà fúnra rẹ̀, port TCP kan tí a gbé kọjá SSH, àti ìpele ìsàlẹ̀ tí a tọ́ sọ́nà tí ń fún gbogbo olùkópa ní àdírẹ́sì. A kò tò wọ́n ní ìbámu pẹ̀lú agbára, bíkòṣe pẹ̀lú iye ìṣòro tí wọ́n bo.
Bẹ̀rẹ̀ pẹ̀lú iṣẹ́ náà, kì í ṣe nẹ́tíwọ́kì
Lọ jáde láti inú ìlànà náà. Èdè ìbánisọ̀rọ̀ wo ni ó ń sọ, orúkọ wo ni aláṣẹ máa yẹ̀wò, àti ta ni a gbà láàyè láti ṣí ìsopọ̀ rárá? Àwọn ìdáhùn mẹ́ta yẹn yọ àwọn àṣàyàn kúrò kíákíá ju gbogbo tábìlì ìfiwéra, àti ìṣètò iṣẹ́ náà fúnra rẹ̀ sábà dá wọn lóhùn ní ìṣẹ́jú díẹ̀.
Gba API inú tí ó kéré tí ó ti ń fi HTTPS jáde lórí port 8443 pẹ̀lú ẹ̀rí fún api.internal.example. ss -ltnp lórí host fi hàn ohun tí ó so mọ́, àti openssl s_client -connect 127.0.0.1:8443 -verify_hostname api.internal.example fi hàn bóyá ẹ̀rí náà wúlò fún orúkọ tí aláṣẹ yóò lò ní ti gidi. Bí àwọn méjèèjì bá ní ìlera, iṣẹ́ náà lè dáàbò bo ìṣàn tirẹ̀, ìwọ̀n àti pé ó lè dé ni ó kù. Ìyẹn jẹ́ ìṣòro tí ó kéré gan-an ju kíkọ́ nẹ́tíwọ́kì.
Ìgbésẹ̀ 1: ṣé iṣẹ́ náà ń dáàbò bo ara rẹ̀?
Èyí ni àṣàyàn láti gbà nígbà tí ó bá yẹ, ó sì yẹ ní ọ̀pọ̀ ìgbà ju bí àwọn ẹgbẹ́ ṣe ro. Ìfiààtò iṣẹ́ náà bo gbogbo ọ̀nà láàárín aláṣẹ àti sẹ́fà, pẹ̀lú gbogbo ìfò mìíràn láàárín wọn, èyí tí kò sí ọ̀nà àbẹ̀wò kankan yí ká àárín tí ó lè mú dára. Ṣètò orúkọ tí a retí àti ìgbẹ́kẹ̀lé ní kedere dípò gbígbẹ́kẹ̀lé ohun tí ìpamọ́ àìlẹ́gbẹ́ aláṣẹ ní lábẹ́ àrídájú.
Ìfiààtò àti ìdé ni ó wà ní àwọn ìṣàkóso ọ̀tọ̀ọ̀tọ̀, ìpapọ̀ wọn ni ibi tí àṣàyàn yìí ti ṣe àṣìṣe. Iṣẹ́ TLS lórí olùgbọ́rọ̀ gbangba tí kò ní ààlà ṣì ń gba àwọn ìgbìyànjú ìsopọ̀ láti ọ̀dọ̀ ẹnikẹ́ni, nítorí náà olùgbọ́rọ̀ àti àwọn òfin nẹ́tíwọ́kì gbọdọ̀ jẹ́ yíyà sọ́tọ̀ láìka sí pé a dáàbò bo ẹrù náà. Lẹ́yìn náà ṣàyẹ̀wò àwọn ìgbẹ́kẹ̀lé, nítorí API lórí TLS kò sọ nnkan kan nípa ibi àwárí, port alábòójútó tàbí ikanni gbígbé púpọ̀ lẹ́gbẹ̀ẹ́ rẹ̀. Ọ̀kọ̀ọ̀kan wọn nílò ìdáhùn tirẹ̀, àti arákùnrin kan tí kò ní ààbò ti tó láti sọ gbogbo ààlà di ìtàn àròsọ.
Ìgbésẹ̀ 2: ṣé port TCP kan ni gbogbo ohun tí a nílò?
Nígbà tí ohun tí a nílò bá jẹ́ port TCP kan ní ti gidi, gbigbe ni ohun tí ó kéré jù tí ó ń ṣiṣẹ́. Gbigbe SSH àdúgbò ń gbé port yẹn kọjá ìsopọ̀ tí a ti jẹ́rìí sí tí ó ti wà.
Ìrísí ni ssh -N -L 8443:127.0.0.1:8443 [email protected], àti àlàyé pàtàkì ni àdírẹ́sì ibi-afẹ́: 127.0.0.1 ni a yanjú ní ẹ̀gbẹ́ ọ̀nà jínjìn, nítorí náà a ṣí ìsopọ̀ sí iṣẹ́ náà láti bastion dípò kọ̀mpútà rẹ̀. So olùgbọ́rọ̀ àdúgbò ní tóró bí -L 127.0.0.1:8443:... kí o má bàa ṣe àtẹ̀jáde iṣẹ́ náà lórí nẹ́tíwọ́kì àdúgbò rẹ̀ láìrò. Ní ẹ̀gbẹ́ sẹ́fà, ṣe ààlà ohun tí àkọsílẹ̀ lè gbé kọjá dípò gbígbẹ́kẹ̀lé ìwà rere aláṣẹ. PermitOpen, AllowTcpForwarding local àti GatewayPorts no àìlẹ́gbẹ́ ni àwọn ètò mẹ́ta tí ó yí relay gbogbogbo padà sí ikanni pàtó.
Àdéhùn náà tóró ní ẹ̀gbẹ́ méjèèjì. SSH ń dáàbò bo ikanni tirẹ̀, àti ìfò mìíràn láti bastion sí app mìíràn nílò ààbò tirẹ̀. Iṣẹ́ tí ń gbọ́rọ̀ nìkan lórí loopback bastion ní ìfarahàn tí ó yàtọ̀ pátápátá sí èyí tí a ń dé ọ̀dọ̀ nípasẹ̀ nẹ́tíwọ́kì mìíràn, gbigbe kò sì yí ìyẹn padà. Pa ìjẹ́rìí àti àwọn àyẹ̀wò TLS ti app mọ́ dípò kí o ka ọ̀nà àbẹ̀wò sí ohun tí ó rọ́pò wọn.
Èyí ń ṣiṣẹ́ dáadáa fún ìsopọ̀ kan pẹ̀lú olówó kan. Ní ìwọ̀n ńlá ó di ètò: ìforígbárí port àdúgbò, àbójútó, yíyí kọ́kọ́rọ́ àti ìbéèrè ta ni yóò tún gbigbe bẹ̀rẹ̀ lẹ́yìn àtúnbẹ̀rẹ̀.
Ìgbésẹ̀ 3: ṣé ìtọ́sọ́nà ni ohun tí a nílò ní ti gidi?
Àkójọ yẹn ni iye owó tòótọ́ ti àṣàyàn tí ó kéré jù, ìdí nìyẹn tí àwọn ẹgbẹ́ fi ń fi nnkan tí a ń ṣàkóso rọ́pò àwọn àṣẹ ẹ̀yìn díẹ̀ tí a gbàgbé. Ìrọ́pò kì í ṣe VPN lọ́nà àìlẹ́gbẹ́. Bí ohun tí a nílò bá ṣì jẹ́ port TCP kan, gbigbe tí a ń bójú tó pẹ̀lú olówó tí a kọ sílẹ̀ din owó jù ìpele ìsàlẹ̀ lọ láti ṣiṣẹ́, ó sì ń kùnà ní àwọn ọ̀nà tí o lè rí. Wọn ìní ìṣiṣẹ́ kí o tó wọn ẹ̀wà.
Ìtọ́sọ́nà di ìdáhùn tí ó tọ́ nígbà tí ìtọ́sọ́nà bá jẹ́ ohun tí a nílò. Ọ̀pọ̀lọpọ̀ app tí ó nílò ìsopọ̀ IP lasan, àwọn ìlànà tí gbigbe TCP kò lè gbé, tàbí àwọn iṣẹ́ tí ń lọ láàárín host — gbogbo wọn tọ́ka sí ọ̀nà kan.
Ìpele ìsàlẹ̀ ń fún àwọn olùkópa ní àdírẹ́sì àti ọ̀nà, lẹ́yìn náà iṣẹ́ gidi bẹ̀rẹ̀: àwọn ìwọ̀n tí kò wọ́pọ̀, ìní ọ̀nà, DNS, ìforúkọsílẹ̀, ìfagilé àti ohun tí ó ṣẹlẹ̀ nígbà tí alábàákẹ́gbẹ́ kan bá pàdánù. Kò sí nnkan nínú èyí tí ó ń bá àdírẹ́sì náà wá. Alábàákẹ́gbẹ́ tí a gbà sínú ìpele ìsàlẹ̀ kò sì ní àṣẹ fún gbogbo ìṣiṣẹ́ ní ibi-afẹ́ lọ́nà àìlẹ́gbẹ́, nítorí náà ìjẹ́rìí ní ìpele iṣẹ́ wà.
Ohun tí o ní lẹ́yìn náà
Nnkan méjì jẹ́ ti àkọsílẹ̀ tí o fi sílẹ̀. Èkíní ni ìdánimọ̀ tí a retí pé aláṣẹ yóò yẹ̀wò, nítorí ọ̀kọ̀ọ̀kan àwọn ààlà wọ̀nyí ń dín kù ní ìdákẹ́jẹ́ ní kété tí a bá tú àyẹ̀wò orúkọ lára láti mú nnkan ṣiṣẹ́. Èkejì ni ìgbésẹ̀ yíyọ kúrò: kọ́kọ́rọ́ wo, òfin wo tàbí ọ̀nà wo ni ó ń pàdánù nígbà tí ìwọlé bá parí, àti ta ni ó ṣe é.
Ìrìn àjò yìí parí ní ibi tí ó ti bẹ̀rẹ̀, ní iṣẹ́ náà. Yan ààlà tí ó bo ìjìnnà tí ó wà ní ti gidi tí ó sì yẹ̀wò àwọn alábàákẹ́gbẹ́ tí o ní lọ́kàn láti yẹ̀wò, lẹ́yìn náà kọ bí a ṣe ń ṣe àtúnṣe, àbójútó àti yíyọ ìwọlé kúrò. Ìtọ́kasí OpenSSH ni ibi láti jẹ́rìí àwọn àṣàyàn gbigbe kí o tó ṣe ìlérí àdéhùn tóró. Bí o kò bá lè ṣàpèjúwe ìgbésẹ̀ yíyọ kúrò ní gbólóhùn kan, ààlà náà tóbi ju ìṣòro náà lọ.