Báwo ni a ṣe lè dá ìtànná VPN tí ń ṣiṣẹ́ mọ̀ láti inú kóòdù lórí pátákó èyíkéyìí
Ṣé ìtànná náà wà, ṣé ibi-àfojúsùn yìí ń gbà á kọjá, tàbí ẹ̀gbẹ́ jíjìn ni ó ń dáhùn? Ìwòye mẹ́ta ọ̀tọ̀ọ̀tọ̀ àti àmì mẹ́ta ọ̀tọ̀ọ̀tọ̀ ni wọ́n.
“Ṣé VPN wà ní ṣíṣí?” jẹ́ ìbéèrè mẹ́ta nínú gbólóhùn kan. Èwo nínú wọn ni kóòdù rẹ nílò ni ìpinnu àkọ́kọ́, ìyẹn sì ni ohun tí ọ̀pọ̀lọpọ̀ ìmúṣẹ ń gbà kọjá. Ṣé ìtànná wà lórí ẹ̀rọ yìí, ṣé ìrìn-àjò sí ibi-àfojúsùn yìí ń jáde gbà á, tàbí ẹ̀gbẹ́ jíjìn ń dáhùn pẹ̀lú ìdánimọ̀ tí o ń retí. Yan ẹ̀yà náà, lẹ́yìn náà yan àmì tí ó ń díwọ̀n rẹ̀, àti ní ìparí kọ sínú àkọsílẹ̀ èwo ni o díwọ̀n gan-an.
Ẹ̀yà mẹ́ta, àmì mẹ́ta
Bí a bá rọ̀ ọ̀kọ̀ọ̀kan sí ìlà kan, àwọn ìbéèrè mẹ́ta náà ní ìdáhùn mẹ́ta ọ̀tọ̀ọ̀tọ̀. Tábìlì tí ó wà nísàlẹ̀ ni ìpinnu fúnra rẹ̀, kì í ṣe àkótán rẹ̀.
| Property | Signal that answers it | What it still leaves open |
|---|---|---|
| Existence | The platform's own connection state: RAS on Windows, NetworkManager on D-Bus on Linux, scutil on macOS | Tunnels of a type the platform does not manage, which includes most third-party clients |
| Path | A route lookup for the one destination, or a scoped proxy or interface key that names the tunnel | Whether the far end is the peer you trust |
| Identity | An authenticated response from the far end, or a source-address policy applied on the server | Which local interface carried the packets |
Ka ìlà tí ó gbẹ̀yìn pẹ̀lẹ́pẹ̀lẹ́. Àgbàlagbà àdáni tí ó ń dáhùn fi hàn pé nǹkan kan dáhùn, kì í ṣe pé ìdáhùn náà gbà ìtànná kọjá, kò sì sọ nǹkan kan nípa ẹni tí ó wà ní ẹ̀gbẹ́ kejì. Tí ẹ̀yà tí o nílò bá jẹ́ ọ̀nà, díwọ̀n ọ̀nà náà.
Wíwà: ipò pátákó fúnra rẹ̀
Windows ń dáhùn èyí fún àwọn profáìlì ìbílẹ̀ nípasẹ̀ Remote Access Service API. RasEnumConnections ń ṣàkójọ ohun tí ó so pọ̀, RasGetConnectStatus ń ròyìn ipò ẹ̀yà kan, RasGetLinkStatistics sì ń fi ìyára, olùka báìtì àti ọjọ́ orí ìsopọ̀ kún un. Àwọn ààlà ni kókó: OpenVPN, WireGuard àti àwọn oníbàárà olóòtú kò forúkọ ìsopọ̀ RAS rí, nítorí náà ìtànná tí ó ní ìlera irú bẹ́ẹ̀ ń fi àkójọ òfìfo hàn, kóòdù aláìlẹ́gbẹ́ sì ń ròyìn pé ó ti pa.
Àwọn desktop Linux ń fi ipò kan náà hàn nípasẹ̀ NetworkManager lórí D-Bus, níbi tí PropertiesChanged lórí ohun ìsopọ̀ VPN ń yí ìwòye padà sí ìṣẹ̀lẹ̀, tí ẹ̀yà State sì ń ròyìn ìgbà tí ìsopọ̀ dé ipò ìsopọ̀. Láti inú shell, nmcli connection show --active ń ka ìsọfúnni kan náà, ìyẹn sì ni ohun tí o fẹ́ nígbà àtúnṣe àṣìṣe. macOS ń tọ́jú àkójọ yẹn nínú àkópọ̀ System Configuration, pẹ̀lú scutil gẹ́gẹ́ bí ojú-ìwòye ìlà àṣẹ rẹ̀. Àwọn mẹ́tẹ̀ẹ̀ta ń ṣàpèjúwe ìsopọ̀ tí pátákó ń ṣàkóso, àwọn mẹ́tẹ̀ẹ̀ta sì ń dákẹ́ nípa ìtànná tí kò ṣàkóso.
Ọ̀nà: ibi tí pákẹ́tì ń lọ gan-an
Ìbámu orúkọ ni ọ̀nà kúkúrú tí gbogbo ènìyàn ń gbà kọ́kọ́: ṣàkójọ àwọn ìsopọ̀, dán ìlà náà wò pẹ̀lú tun, tap, ppp tàbí ipsec, kí o sì ka ìbámu gẹ́gẹ́ bí ẹ̀rí. Ìdíwọ̀n àfojúsùn ni, àti pé àkójọ ìsopọ̀ lè dà bí ẹni pé ó jẹ́ bákan náà yálà nǹkan kan ń gbà á kọjá tàbí bẹ́ẹ̀ kọ́. Àwọn ìkọ́lé iOS àtijọ́ ń dáhùn bẹ́ẹ̀, àwọn tí ó tẹ̀lé sì dáwọ́ dúró, nítorí pé àwọn ìsopọ̀ tí a lè rí kò ṣe ìyàtọ̀ láàrin ipò méjì náà mọ́.
Ohun tí ó rọ́pò rẹ̀ níbẹ̀ ni ìwé àkọsílẹ̀ proxy ti ẹ̀rọ. Nígbà tí VPN bá so pọ̀, ìpè àwọn ètò proxy ń dá àwọn kọ́kọ́rọ́ tí ó ní ààlà sí àwọn ìsopọ̀ tí ó ní í ṣe pẹ̀lú ìtànná padà, nígbà tí kò sì sí nǹkan tí ó so pọ̀, ìwé àkọsílẹ̀ náà ń padà ní òfìfo. Ìyẹn jẹ́ ọ̀rọ̀ tí ó rẹ̀wẹ̀sì ju bí ó ti ń dún, nítorí pé ó ń ṣàkọsílẹ̀ ìgbàgbọ́ ẹ̀rọ pé ìtànná wà, kì í ṣe ibi-àfojúsùn tí ó ń lò ó.
Android ní ẹ̀dà tirẹ̀ ti ìdẹ̀kùn yìí: ìkéde vpn.connectivity ń dé àwọn olùgbà tí a polongo nínú manifest ní àwọn ìkọ́lé kan àti àwọn olùgbà tí a forúkọ sílẹ̀ ní àkókò ìṣiṣẹ́ ní àwọn mìíràn. Kà á gẹ́gẹ́ bí ìsapá tí ó dára jùlọ, kí o sì pa ìwádìí tààrà mọ́ ẹ̀yìn rẹ̀.
Nígbà tí ibi-àfojúsùn bá jẹ́ ohun pàtàkì, béèrè lọ́wọ́ tábìlì ìtọ́sọ́nà dípò àkójọ adapter. Àwọn àfojúsùn ẹnubodè àkọ́kọ́ ń já ní orí àwọn ẹ̀rọ oní-netwọọkì púpọ̀ àti lórí àwọn ìtànná tí ń fi ẹnubodè tiwọn sínú.
Ìdánimọ̀: ṣàyẹ̀wò ẹ̀gbẹ́ jíjìn
Ìyípo tí ń fi ìró-ìpàdé ICMP ránṣẹ́ sí ẹ̀gbẹ́ jíjìn ní gbogbo ìṣẹ́jú-àáyá díẹ̀ ni ìwòye tí ó pọ̀ jùlọ nínú irú yìí, ó sì ń kùnà ní ọ̀nà tí ó wúlò. Darí rẹ̀ sí àdírẹ́sì tí ó wà nínú netwọọkì àdáni nìkan, nítorí pé àdírẹ́sì gbangba ń dáhùn lórí ìsopọ̀ sókè èyíkéyìí tí ó ń ṣiṣẹ́, kò sì fi nǹkan kan hàn. Níbi tí a ti ń ṣààyẹ̀ ICMP, ìsopọ̀ TCP kúkúrú sí ibùdó iṣẹ́ náà ń ṣe iṣẹ́ kan náà.
Ìwòye ẹ̀gbẹ́ olùpèsè ní àmì kan péré: àdírẹ́sì orísun lórí ìsopọ̀ náà. Mímú àkójọ àwọn ìwọ̀n dúró jẹ́ iṣẹ́ ìtọ́jú, kò sì lè ya ìtànná sọ́tọ̀ kúrò nínú netwọọkì mìíràn èyíkéyìí tí ó ń lo blọ́ọ̀kì kan náà lẹ́ẹ̀kọ̀ọ̀kan.
Ìlànà tí kò dára lè gbé pẹ̀lú rẹ̀. Ìdánimọ̀ kò lè, nítorí náà jẹ́rìí sí alábàárà dípò gbígbẹ́kẹ̀lé ibi tí àwọn pákẹ́tì rẹ̀ dà bí ẹni pé ó ti ń bọ̀.
Ṣàkọsílẹ̀ ẹ̀ka, kì í ṣe ìdájọ́
Pa àwọn ẹ̀ka ìkùnà mọ́ ọ̀tọ̀ọ̀tọ̀ nínú àkọsílẹ̀: kò sí ìsopọ̀ rárá, ìsopọ̀ wà ṣùgbọ́n a kò lè dé ibi-àfojúsùn, a lè dé ibi-àfojúsùn ṣùgbọ́n a kọ̀ ìjẹ́rìí. Àwọn wọ̀nyí jẹ́ olówó mẹ́ta ọ̀tọ̀ọ̀tọ̀, ọ̀kọ̀ọ̀kan sì ń ṣí ìwádìí ọ̀tọ̀ọ̀tọ̀.
Bí a bá dà wọ́n pọ̀ sí “VPN ti ṣubú” kan, a ń fi ìròyìn ránṣẹ́ sí ẹgbẹ́ tí kò lè tún un ṣe. Ẹ̀ka náà ni àbájáde tí ó wúlò; ìdájọ́ náà ni ohun tí ó ń sọ ọ́ di àṣìṣe.