Ṣe ìwádìí ibùdó kan náà láti orí ìlà ọ́fíìsì àti láti ẹnu-ọ̀nà VPN, àwọn ìdáhùn méjèèjì sì lè má fohùn ṣọ̀kan nípa àdírẹ́sì tí ẹnikẹ́ni kò yí padà. Àlàfo yẹn wá láti ipa-ọ̀nà àti láti orí ibi tí ó dáhùn, kì í ṣe bóyá iṣẹ́ náà ń ṣiṣẹ́ tàbí kò ṣiṣẹ́. Àwọn ìbéèrè mẹ́ta ń ya àwọn àlàyé yẹn sọ́tọ̀: kí ni ìwádìí náà béèrè ní ti gidi, ibi tí ó dáhùn, àti kí ni server rẹ fúnra rẹ̀ kọ sílẹ̀. Tẹ̀lé wọn ní ọ̀nà yẹn kí o sì kọ ìdáhùn kọ̀ọ̀kan sílẹ̀ kí o tó lọ sí èkejì.

Tún ìwádìí náà ṣe kí o tó fi ìṣesí méjì wé ara wọn

Ọ̀rọ̀ ipò ni a lè fi wé ọ̀rọ̀ ipò mìíràn nígbà tí àwọn méjèèjì bá ti inú ìdánwò kan náà jáde. Àwọn pápá márùn-ún ni ó fi èyí múlẹ̀: àdírẹ́sì orísun tí ẹ̀gbẹ́ ọ̀nà jíjìn rí, ibi tí a ti yanjú, ibùdó náà, irú ìwádìí àti àkókò. Yí ọ̀kan nínú wọn padà, o ti ṣe ìdánwò kejì dípò kí o fi ti àkọ́kọ́ wọ̀n lẹ́ẹ̀mejì.

Ṣàyẹ̀wò orísun náà kí ó tó ohunkóhun mìíràn, nítorí pé VPN client lè wà ní ṣíṣí nígbà tí ìrìnàjò ṣì ń jáde nípasẹ̀ interface ti ara. Béèrè lọ́wọ́ ẹ̀gbẹ́ jíjìn kí ni ó rí, lẹ́yìn náà béèrè lọ́wọ́ kernel irú interface tí ó yàn:

curl -s https://ifconfig.me
ip route get 203.0.113.20

Àdírẹ́sì méjì lórí àwọn nẹ́tíwọ́kì ọ̀tọ̀ọ̀tọ̀ túmọ̀ sí pé àlàyé náà ti wà ní ọwọ́, àwọn ìṣàyẹ̀wò tó kù yóò sì jẹ́rìí rẹ̀. Nígbà tí wọ́n bá bá ara wọn mu, gba ìwádìí náà pẹ̀lú àsíá ìdí ní ṣíṣí, kí ipò náà le padà wá ní asopọ̀ mọ́ àlàyé dípò kí ó dúró ní ọ̀nà kan gẹ́gẹ́ bí ọ̀rọ̀ òfo. Irú ìwádìí náà tún jẹ́ ti àkọsílẹ̀ yẹn, nítorí pé ó ń ṣàpèjúwe ohun tí a béèrè, kì í ṣe ohun tí ó padà wá. Ipò tí kò ní orísun, tí kò ní ọ̀nà àti tí kò ní àmì àkókò kò lè fi wé ohunkóhun:

nmap -sT -p 443,8443 --reason 203.0.113.20

Fi ìjáde yẹn pamọ́ lẹ́gbẹ̀ẹ́ àkọsílẹ̀ náà, kì í ṣe nínú buffer ìyí tí ẹni tó kàn kò lè rí. Ìwádìí olóòótọ́ méjì tí kò fohùn ṣọ̀kan jẹ́ àríyànjiyàn nígbà tí ẹnikẹ́ni kò kọ àwọn ipò sílẹ̀ nìkan. Nígbà tí a bá ti fi àwọn ipò múlẹ̀, yálà àwọn àbájáde bá ara wọn mu tí ìbéèrè náà sì pa, tàbí wọ́n yàtọ̀ tí ìyàtọ̀ náà sì jẹ́ òtítọ́ nípa ipa-ọ̀nà.

Wá ibi tí ó parí ìfọwọ́sowọ́pọ̀ náà

Ìfọwọ́sowọ́pọ̀ tí ó parí jẹ́rìí pé ibi kan parí rẹ̀, ibi yẹn kò sì gbọdọ̀ jẹ́ ilana tí o ń rò. Olùdọ́gba ẹrù, proxy yíyí padà tàbí proxy SYN lè dáhùn kí server gidi tó kópa, èyí jẹ́ àpẹẹrẹ deede, kì í ṣe àmì àìsàn. Ìwé-ẹ̀rí tí ó wúlò fún orúkọ tí a retí kò tún dín èyí kù, nítorí pé ìwé-ẹ̀rí ń ṣàpèjúwe ìbáṣepọ̀ iṣẹ́ kò sì sọ ohunkóhun nípa ẹ̀rọ tí ó parí àsopọ̀ náà.

Ìtọ́kasí ipò ibùdó Nmap ka èyí sí ìpìlẹ̀: ipò ń kọ ohun tí ìwádìí lè ṣàkíyèsí láti ibi tí a ti rán an, kì í ṣe ànímọ́ ibùdó náà. Ka ọ̀rọ̀ ipò ní ọ̀nà yẹn, ìṣesí méjì tí kò fohùn ṣọ̀kan yóò bẹ̀rẹ̀ sí í hàn ní ìbámu dípò ìtakò, nígbà tí ìbéèrè náà yóò lọ láti ibi bóyá ibùdó ṣí sí ẹni tí ó dúró níwájú rẹ̀.

Dáhùn ìbéèrè kejì ní backend, kì í ṣe láti ìta. Frontend tí ó ń gba àwọn àsopọ̀ tí kò sì dé ibi oke rẹ̀ ń ṣe àwòrán ìta gangan ti iṣẹ́ aláílára pẹ̀lú application tí ó lọ́ra. Àkọsílẹ̀ ti ibi oke fúnra rẹ̀ nìkan ni ó ya àwọn ọ̀ràn méjì yẹn sọ́tọ̀:

tail -n 5 /var/log/nginx/access.log
ss -ltnp 'sport = :443'

Ìlà log fihan àdírẹ́sì alágbàṣe tí application rí ní ti gidi, àti àṣẹ kejì fihan bóyá ilana tí ó di ibùdó 443 mú jẹ́ application rẹ tàbí ohun kan níwájú rẹ̀. Bí àwọn méjèèjì kò bá fohùn ṣọ̀kan nípa àdírẹ́sì tí ó so, o ń wo ẹsẹ̀ méjì ti ìbéèrè kan, tíkẹ́ẹ̀tì sì gbọdọ̀ sọ bẹ́ẹ̀.

Ṣàyẹ̀wò àwọn òfin rẹ fúnra rẹ kí o tó dá ẹ̀bi i ṣe tunnel

Ìlànà tí a mọ̀ọ́mọ̀ ṣe ni ìdí tí ó wọ́pọ̀ jùlọ tí ibùdó fi ń dáhùn lórí nẹ́tíwọ́kì kan tí kò sì dáhùn lórí òmíràn, ó sì jẹ́ àlàyé tí kò fani mọ́ra jùlọ tí ó wà. Àwọn òfin ìwọlé wà kí a lè gba orísun kan láàyè kí a sì sọ ìyókù nù, nítorí náà ìyípadà ẹnu-ọ̀nà jẹ́ ìṣẹ̀lẹ̀ gangan tí wọ́n kọ ọ́ fún. Nítorí náà ipò mìíràn nípasẹ̀ VPN kò fi hàn pé olùpèsè ń ṣàyẹ̀wò ìrìnàjò. Ó fi hàn pé àdírẹ́sì orísun rẹ yàtọ̀ báyìí, èyí tí ó jẹ́ ọ̀rọ̀ tí ó kéré jù.

Àwọn òfin yẹn lè kà lórí server, nítorí náà kà wọ́n dípò kí o ṣe àfojúsùn nípa àárín nẹ́tíwọ́kì. Ṣe àkójọ àwọn òfin àlẹ̀mọ́ tí ó mẹ́nuba ọ̀kan nínú àwọn ìwọ̀n àdírẹ́sì méjì, lẹ́yìn náà ṣàyẹ̀wò bóyá àsopọ̀ náà dé ọ̀dọ̀ daemon rárá:

nft list ruleset | grep -n -e 203.0.113 -e 198.51.100
journalctl -u sshd -n 50 | grep 203.0.113

Àbájáde kejì tí ó ṣófo jẹ́ aláyọ̀, nítorí pé ohunkóhun kò dé ọ̀dọ̀ daemon, ìbéèrè náà sì jẹ́ ti àlẹ̀mọ́, ẹgbẹ́ ààbò tàbí ipa-ọ̀nà fúnra rẹ̀. Ìlù kan túmọ̀ sí pé iṣẹ́ náà rí orísun rẹ, ó sì yan ìdáhùn rẹ̀, ìpinnu yẹn sì sábà wà nínú òfin tí o lè kà. Kò sí àbájáde tí ó ṣe àtìlẹ́yìn fún ìtàn nípa olùpèsè, àwọn méjèèjì sì pọ̀wọ́n láti ṣàyẹ̀wò ju gbígba packet.

Ka gbígbé, ìwé-ẹ̀rí àti ìdáhùn lọ́tọ̀

Àwọn ìpele mẹ́ta ń ṣẹ̀dá àkíyèsí mẹ́ta, ìwádìí tí ó ń dán ọ̀kan nínú wọn wò kò lè jábọ̀ nípa àwọn méjì tó kù. Fi wọ́n pamọ́ gẹ́gẹ́ bí ìlà ọ̀tọ̀ọ̀tọ̀ nínú àkọsílẹ̀ dípò kí o kó wọn pọ̀ sí ìdájọ́ kan, nítorí pé ìlà kọ̀ọ̀kan ń kùnà ní ọ̀nà rẹ̀, ọ̀nà ìkùnà sì sọ ibi tí o yẹ kí o wò lẹ́yìn náà.

ObservationWhat it settlesWhat it leaves open
Connection completedA host on the path accepted the handshakeWhich host, and whether its upstream is reachable
Certificate valid for the nameThe endpoint holds a credential for that nameWhether the process behind it is the one you meant
Expected response bodyThe application handled the requestAnything about other ports or other paths
Connection refusedA host replied and nothing was listeningWhether a filter sits ahead of the refused port
TimeoutNo reply arrived before the deadlineDrop, blackhole route or an overloaded host

Àṣẹ kan ń ṣẹ̀dá ìlà mẹ́ta àkọ́kọ́ lórí iṣẹ́ tí o ń ṣàkóso. Fi ìjáde rẹ̀ sínú àkọsílẹ̀ lẹ́gbẹ̀ẹ́ ìwádìí náà, kì í ṣe nínú ìfiránṣẹ́ ìfọ̀rọ̀wérọ̀:

curl -v --resolve office.example:443:203.0.113.20 https://office.example/

Ka ìjáde náà ní tẹ̀léntẹ̀lè: ìfọwọ́sowọ́pọ̀ ń dáhùn ìbéèrè gbígbé, kókó ìwé-ẹ̀rí ń dáhùn ìbéèrè orúkọ, ara ìdáhùn sì ń dáhùn ìbéèrè application. Nígbà tí ìlà ìfọwọ́sowọ́pọ̀ bá ṣàṣeyọrí tí ìlà ìdáhùn kò ṣàṣeyọrí, o ní frontend tí ibi oke rẹ̀ ti já, kì í ṣe ibùdó tí a dí. Ìyẹn jẹ́ tíkẹ́ẹ̀tì mìíràn ju èyí tí o ṣí lọ, ó sì yẹ kí a sọ ọ́ ní gbangba.

Parí nípa kíkọ òtítọ́ mẹ́rin sínú tíkẹ́ẹ̀tì: àdírẹ́sì orísun, irú ìwádìí, ibi tí ó dáhùn àti àkókò. Ohun gbogbo tí ìfiwéra tó ń bọ̀ nílò ń gbé nínú àwọn mẹ́rin yẹn, ẹni tí yóò gbé ọ̀ràn náà lẹ́yìn náà kò sì ní ìtàn terminal rẹ. Tí o kò bá lè kún gbogbo mẹ́rin, ìṣesí náà kò tíì parí.

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