Tẹ́mínàì ń so pọ̀, àmì ìbéèrè yọ jáde, gbogbo ènìyàn sì gbà pé ìwọlé SSH ń ṣiṣẹ́. Lẹ́yìn náà, ẹ̀rọ ìbánisọ̀rọ̀ dátà lórí kọ̀mpútà gbé kò tíì lè dé ọ̀dọ̀ agbàlejò àdáni, a sì ń dá ẹ̀bi lé ìpàdé náà. Ohun tí a kọ́ ni shell kan, ó sì jẹ́ ọ̀kan nínú àwọn ojú-ọ̀nà mẹ́rin tí ó yàtọ̀ pátápátá tí SSH lè fúnni. Sọ orúkọ ojú-ọ̀nà náà kí o tó ṣàyẹ̀wò pé app ń lò ó ní tòótọ́. Ìtẹ̀lentẹ̀le ṣe pàtàkì, nítorí ojú-ọ̀nà kọ̀ọ̀kan ń kùnà ní ọ̀nà tirẹ̀.

Sọ orúkọ ojú-ọ̀nà náà kí o tó fi ohunkóhun wé

ìwé ìtọ́ni ẹ̀rọ ìbánisọ̀rọ̀ OpenSSH ń yàtọ̀ àwọn ọ̀nà mẹ́rin tí ó rọ̀rùn láti dàpọ̀. Shell tàbí àṣẹ ọ̀nà jíjìn ń ṣiṣẹ́ lórí agbàlejò SSH. Ìtẹ̀síwájú àdúgbò ń ṣí socket tí ń gbọ́ lórí ẹ̀rọ ìbánisọ̀rọ̀, ó sì ń ṣe ìsopọ̀ tó tẹ̀lé láti ẹ̀gbẹ́ jíjìn. Ìtẹ̀síwájú jíjìn ń ṣe ìdíkejì, ó ń gbọ́ ní ẹ̀gbẹ́ server. Ìtẹ̀síwájú alágbèéká ń fi ojú-ọ̀nà SOCKS hàn fún àwọn ètò tí ó mọ bí wọ́n ṣe lè lò ó.

  • Shell: ètò náà ń ṣiṣẹ́ lórí ẹ̀rọ jíjìn, kò sí ohun tí ń gbọ́ ní àdúgbò.
  • Ìtẹ̀síwájú àdúgbò: kọ̀mpútà gbé rẹ ní èbúté kan, agbàlejò jíjìn ń ṣe ìsopọ̀ jáde.
  • Ìtẹ̀síwájú jíjìn: ẹ̀gbẹ́ jíjìn ní èbúté kan, ìrìnàjò ń padà wá sí ọ̀dọ̀ rẹ.
  • Alágbèéká: aṣojú SOCKS lórí ẹ̀rọ ìbánisọ̀rọ̀, àwọn app tí ó yé aṣojú nìkan ni ń lò ó.

Kò sí ọ̀kan nínú àwọn wọ̀nyí tí ń fi ọ̀nà sínú ẹ̀rọ. Ètò tí ó kọ àwọn ètò aṣojú sílẹ̀, tàbí tí ń sọrọ UDP, tàbí tí ń yanjú orúkọ fúnra rẹ̀, kò ní ipa láti ìpàdé SSH tí ń ṣiṣẹ́. Èyí kì í ṣe àṣìṣe nínú SSH; ìwọ̀n ojú-ọ̀nà tí o yàn ni.

Ìtẹ̀síwájú àdúgbò, jíjìn àti alágbèéká yàtọ̀ ní ẹni tí ń gbọ́

Ìyàtọ̀ tí ń pinnu ọ̀pọ̀ ìṣẹ̀lẹ̀ ni ẹni tí ó ni socket gbígbọ́. Nínú ìtẹ̀síwájú àdúgbò, ẹ̀rọ ìbánisọ̀rọ̀ ni ń gbọ́, orí jíjìn sì ń pe ibi àfojúsùn, ìdí nìyẹn tí a fi ń yanjú àdírẹ́sì àfojúsùn láti ojú ìwòye server. Nínú ìtẹ̀síwájú jíjìn, server ni ń gbọ́, a sì ń gbé ìsopọ̀ padà sí ẹ̀gbẹ́ rẹ, bẹ́ẹ̀ ni o sì ń fi iṣẹ́ àdúgbò hàn láìfi í tà àtàtà.

ssh -N -L 5432:db.internal.example:5432 [email protected]
ssh -N -D 1080 [email protected]
ss -ltnp | grep -E '5432|1080'

Àṣẹ kìíní ń so èbúté 5432 mọ́ kọ̀mpútà gbé, ó sì ń gbé e lọ sí ibi dátà gẹ́gẹ́ bí a ti ń rí i láti bastion. Èkejì ń dá aṣojú SOCKS lórí èbúté 1080. Àṣẹ kẹta ń fìdí rẹ̀ múlẹ̀ àwọn ìlànà wo ni ń gbọ́ ní tòótọ́, ìyẹn sì ni ẹ̀rí kan ṣoṣo pé ìtẹ̀síwájú wà dípò kí ó kùnà ní ìdákẹ́jẹ́ nítorí ìjà èbúté.

Ìtẹ̀síwájú alágbèéká tọ́ sí ìkìlọ̀ tirẹ̀: ó ń bo àwọn app tí ó bọ̀wọ̀ fún SOCKS nìkan. A lè darí aṣàwákiri sí i, a lè sọ fún ẹ̀rọ ìlà àṣẹ pé kí ó lò ó, ṣùgbọ́n awakọ̀ ibi dátà tí ó ní àkójọ ìsopọ̀ tirẹ̀ kì í lè ṣe bẹ́ẹ̀ ní gbogbogbò. Líló rò pé gbogbo ètò lórí ẹ̀rọ ti ń lò tunnel ni àṣìṣe tí ó wọ́pọ̀ jùlọ nínú gbogbo ẹ̀ka yìí.

Ipò ẹ̀rọ tunnel ni ìyàtọ̀ nẹ́tíwọ́kì tòótọ́ kan ṣoṣo

OpenSSH tún ṣe àtìlẹ́yìn ìtẹ̀síwájú ẹ̀rọ tunnel -w, tí ó ń gbé ojú-ọ̀nà kókó-sí-kókó kọjá dípò olùgbọ́ TCP. Ìyẹn ni tunnel nẹ́tíwọ́kì tòótọ́, a sì ń ṣètò rẹ̀ pẹ̀lú ìmọ̀, kì í ṣe àbájáde ẹ̀gbẹ́ ti ṣíṣí shell.

sudo ssh -w 0:0 [email protected]
ip addr show tun0

Ó nílò àwọn nọ́mbà ojú-ọ̀nà tí ó yẹ tí ó wà ní ẹ̀gbẹ́ méjèèjì, ìṣètò tí ó tọ́ lórí server àti àṣẹ tí ó tó lórí ẹ̀rọ ìbánisọ̀rọ̀ láti dá ẹ̀rọ náà. Ó tún nílò ètò àdírẹ́sì àti ọ̀nà, nítorí ojú-ọ̀nà òfo kò gbé ìlànà kankan nípa àwọn ibi tí ó yẹ kí ó lò ó.

Bí ó ti wù kí ó rí, tunnel ń parí ní agbàlejò jíjìn. Ìdáàbòbò yówù tí ìgbékalẹ̀ SSH fúnni ń parí níbẹ̀, ìsopọ̀ tó tẹ̀lé sì jẹ́ fò mìíràn. Bóònù VPN ní irú ìrísí ààlà kan náà, ìdí nìyẹn tí ìfiwéra yẹ kí ó jẹ́ nípa ìwọ̀n àti òpin kì í ṣe nípa ẹ̀rọ wo ni ó lágbára jù. Pípè ààlà yẹn ní ohùn rara tún ń yanjú àríyànjiyàn nípa bóyá tunnel «ń fi gbogbo nǹkan pamọ́», nítorí ó hàn gbangba pé kò ṣe bẹ́ẹ̀.

Ṣàyẹ̀wò pé app rẹ ń lo ojú-ọ̀nà tí o kọ́

Ìjẹ́rìí jẹ́ fún app kọ̀ọ̀kan, kì í ṣe fún ìpàdé. Ìtẹ̀síwájú tí ń ṣiṣẹ́ ń fìdí rẹ̀ múlẹ̀ pé èbúté ti so mọ́ àti pé ẹ̀gbẹ́ jíjìn lè pè; kò fìdí rẹ̀ múlẹ̀ pé ètò tí ó ṣe pàtàkì fún ọ sopọ̀ nípasẹ̀ rẹ̀.

curl -sS --socks5-hostname 127.0.0.1:1080 -o /dev/null -w '%{http_code}\n' https://app.internal.example/health
psql "host=127.0.0.1 port=5432 dbname=app sslmode=require" -c 'select 1'

Àṣẹ kìíní ń fi ìbéèrè ránṣẹ́ nípasẹ̀ ojú-ọ̀nà SOCKS pẹ̀lú orúkọ agbàlejò tí a yanjú láti jíjìn, èkejì sì ń dán èbúté ibi dátà tí a tẹ̀síwájú wò nígbà tí TLS ṣì nílò. Ṣe àwọn àyẹ̀wò kan náà nígbà tí ìtẹ̀síwájú dúró láti fìdí rẹ̀ múlẹ̀ pé wọ́n kùnà, nítorí àyẹ̀wò tí ń kọjá ní ọ̀nà méjèèjì kò tíì lò tunnel rí.

Lẹ́yìn náà fi wé VPN tí a ti ṣe ọ̀nà ní àwọn ìwọ̀n tí ó ṣe pàtàkì nìkan: àwọn ibi wo ni a bo, àwọn ìlànà wo ń ṣiṣẹ́, níbo ni ìdáàbòbò ń parí àti ẹni tí ó gbọdọ̀ fọwọ́ sí ìwọlé. Ìtẹ̀síwájú fún iṣẹ́ kan lè jẹ́ ìdáhùn tí ó dúró pẹ̀lú àti tí ó dára jù, nígbà tí VPN jẹ́ ìrísí tí ó tọ́ nígbà tí ọ̀pọ̀ app nílò ọ̀nà nẹ́tíwọ́kì kan náà. Ọ̀kan nínú àwọn méjèèjì kò fúnni ní gbogbo ohun tí a lè dé láti orí jíjìn rẹ̀.

Àwọn àpilẹ̀kọ tó jọra