VPN díàlùtì lórí nẹ́tíwọ́kì wẹ́ẹ̀bù nìkan? Ṣiṣẹ́ lórí àwọn ìpele
Bráùsà ń ṣiṣẹ́, ọ̀nà-ìnà náà kú. Ka àwọn ìpele àkókò curl, dán proxy wò, ṣàyẹ̀wò bóyá 443 jẹ́ àyè ní tòótọ́, lẹ́yìn náà gba ohun tó kúrò nínú ẹ̀rọ náà.
Nẹ́tíwọ́kì kampọ̀sì tàbí òtẹ́ẹ̀lì tí bráùsà ti ń ṣiṣẹ́ tí gbogbo ọ̀nà-ìnà sì ń kú kì í ṣe ìṣòro kan, ó jẹ́ ìpele mẹ́rin tí ó kúnra. Ọ̀nà náà lè gba TCP 443 nìkan láàyè, ó lè béèrè proxy tí a fọwọ́ sí, ó lè yẹ̀wò àfọwọ́kàn, tàbí ó lè kàn dá àǹfààní jìnnà dúró nípasẹ̀ ìlànà. Ṣíṣe wọ́n ní ìtẹ̀léntẹ̀lé ń dáàbò bo ọ́ lọ́wọ́ ríra kíláìàńtì tuntun láti tún ìlànà nẹ́tíwọ́kì ṣe. Ìtọ́sọ́nà tó wà nísàlẹ̀ ń gba nǹkan bí ìṣẹ́jú mẹ́wàá ó sì parí pẹ̀lú ìdáhùn tí a kọ sílẹ̀ nípa ìpele tó kọ̀ ọ́.
Fi ẹ̀rí hàn ìpele tó kọ̀ ìsopọ̀ náà
Má bẹ̀rẹ̀ pẹ̀lú kíláìàńtì VPN. Bẹ̀rẹ̀ pẹ̀lú ìbéèrè HTTPS lásán sí host kan náà kí o sì ka àwọn ìpele àkókò, nítorí ìpele tó kùnà ń sọ ẹ̀rọ tó wà lórí ojúṣe:
curl -sS -o /dev/null -w 'connect=%{time_connect} tls=%{time_appconnect} code=%{http_code}\n' \
--max-time 8 https://vpn.example.net/
Kò sí ìdáhùn kò sí àkókò connect túmọ̀ sí pé TCP kò parí rí, nítorí náà ògiri-iná, ìbéèrè proxy tàbí ibi-ìlọ tí kò tọ́ wà nínú eré náà. Àkókò connect láìsí àkókò tls túmọ̀ sí pé ohun kan àárín gba ìsopọ̀ náà lẹ́yìn náà ó dá àfọwọ́kàn dúró, bẹ́ẹ̀ sì ni proxy tó ń yẹ̀wò ń hàn láti ẹ̀gbẹ́ kíláìàńtì.
Nísinsìnyí yẹ̀wò ìwé-ẹ̀rí tí o ń gbà gan-an. Èyí ni ọ̀nà tó yára jùlọ láti mọ̀ bóyá o ń bá server sọ̀rọ̀ tàbí àpótí àárín tó tún fọwọ́ sí ìpàdé náà:
openssl s_client -connect vpn.example.net:443 -servername vpn.example.net -brief </dev/null
Ka ìlà olùgbéjáde. CA tìrẹ túmọ̀ sí pé o dé ibi iṣẹ́ náà; olùgbéjáde ilé-iṣẹ́ tàbí ẹ̀rọ túmọ̀ sí pé àlẹ̀mọ́ kan parí ìsopọ̀ náà ó sì ń pinnu ohun tó ń bọ̀. Gba àwọn ìjáde méjèèjì pẹ̀lú èdìdì àkókò, nítorí pé ìdánwò kan náà ní wákàtí kan lẹ́yìn náà lórí nẹ́tíwọ́kì àlejò lè fún ìdáhùn mìíràn.
Kíláìàńtì tó mọ proxy ń yí pátákó àkọ́kọ́ padà, kì í ṣe ìlànà
Tí nẹ́tíwọ́kì bá béèrè CONNECT nípasẹ̀ proxy tí a fọwọ́ sí, a gbọ́dọ̀ sọ fún kíláìàńtì VPN, bí bẹ́ẹ̀ kọ́ yóò gbìyànjú láti ṣí socket sí àdírẹ́sì tí kò lè tọ́ ọ̀nà rẹ̀. Dán proxy náà yàtọ̀ sí kíláìàńtì, kí ìkùnà lè ní àlàyé kan:
https_proxy=http://proxy.example.edu:3128 curl -v -o /dev/null https://vpn.example.net/
sudo openvpn --config /etc/openvpn/corp.conf --proto tcp-client \
--remote vpn.example.net 443 --verb 4
Àṣẹ àkọ́kọ́ fi ẹ̀rí hàn pé proxy yóò gbé ibi-ìlọ náà. Èkejì béèrè lọ́wọ́ kíláìàńtì láti lo TCP lórí 443, èyí ni ọkọ̀ kan ṣoṣo tí ọ̀pọ̀lọpọ̀ ọ̀nà wẹ́ẹ̀bù nìkan ń gbé kọjá rárá. Tí àkọ́kọ́ bá ṣe àṣeyọrí tí èkejì sì ṣì kùnà, proxy kì í ṣe ìdènà.
Àwọn kíláìàńtì kan ka proxy ẹ̀rọ-ìṣiṣẹ́ dípò ìyípadà, àwọn mìíràn kò ka èyíkéyìí. Ṣàyẹ̀wò àkọsílẹ̀ ìṣàtúpalẹ̀ náà fúnra rẹ̀ kí o tó rò pé ètò gbogbo-ẹ̀rọ ń ṣiṣẹ́. Kíláìàńtì tó ń yanjú ibi-pẹ̀kun nípasẹ̀ olùyanjú tí proxy kò ń sìn yóò kùnà níbí pẹ̀lú, ìdí nìyẹn tí ìyípadà DNS lè dàbí àtúnṣe nígbà tí ó kàn jẹ́ ọ̀nà ìyíkiri.
Kíyèsí àpẹẹrẹ ìdarí pẹ̀lú. Nẹ́tíwọ́kì tí a yọ̀ṣẹ́ lè dáhùn orúkọ host ìwádìí olùpèsè pẹ̀lú ohun tirẹ̀, èyí tó ń yí padà irú proxy tí kíláìàńtì ń yàn. Má kọ́ ìlànà kan yí ìyàlẹ́nu yẹn ká. Ó yàtọ̀ ní ibi kọ̀ọ̀kan, ó ń yí padà láìsí ìkìlọ̀, kì í sì í ṣe ohun tí o lè ṣe àtìlẹ́yìn fún ẹlòmíràn.
Ẹnu-ọ̀nà 443 ṣeé dé, kì í ṣe àyè
Yí ọ̀nà-ìnà padà sínú TLS lórí 443 ń yanjú ìṣeé-dé nìkan, kò yanjú ohunkóhun mìíràn. Àlẹ̀mọ́ tó ń yẹ̀wò ẹnu-ọ̀nà yóò jẹ́ kí ó kọjá; àlẹ̀mọ́ tó ń mú èròjà àfọwọ́kàn kò ní jẹ́ kí ó kọjá, ìkíni kíláìàńtì tí a fi àmì sí ń fi orúkọ server pamọ́ nìkan nígbà tí ẹ̀gbẹ́ méjèèjì bá ṣe àtìlẹ́yìn rẹ̀. Ṣe ìdánwò náà kí o sì mọ irú àlẹ̀mọ́ tí o wà lẹ́yìn rẹ̀ dípò ìrètí.
Ìnáwó iṣẹ́ kan tún wà tí àwọn ènìyàn ń ṣàwárí lẹ́yìn náà. Ọkọ̀ tó ṣeé gbẹ́kẹ̀lé nínú ọkọ̀ tó ṣeé gbẹ́kẹ̀lé ń mú ìpàdánù pọ̀ sí i, nítorí pé àkójọ inú ń tún àwọn apá ránṣẹ́ tí àkójọ òde ti tún ránṣẹ́ tẹ́lẹ̀. Lórí ìsopọ̀ mímọ́ ẹnikẹ́ni kò ṣàkíyèsí. Lórí nẹ́tíwọ́kì aláìsí okùn kampọ̀sì tó kún, ọ̀nà-ìnà náà di aláìlóòótọ́ gan-an ní àkókò tí o nílò rẹ̀, àwòrán sì dàbí ìpàdánù pátákó bí ó tilẹ̀ jẹ́ pé a kò fi àbùkù ju ohunkóhun nù.
UDP sábà máa ń jẹ́ ẹni àkọ́kọ́ tó ṣègbé, ó sì yẹ kí a fi ẹ̀rí mú un dípò àfojúdi. Tí WireGuard tàbí OpenVPN àìpé kò bá parí àfọwọ́kàn rí nígbà tí TCP 443 ń ṣiṣẹ́, nẹ́tíwọ́kì ń ju UDP nù, kò sì sí àtúnṣe kọ́kọ́rọ́ tó máa yí ìyẹn padà:
sudo wg show
dig +short vpn.example.net
dig +short vpn.example.net @1.1.1.1
Èdìdì àkókò àfọwọ́kàn tó ṣófo lẹ́gbẹ̀ẹ́ ẹlẹgbẹ́ tó ń ṣiṣẹ́ àná ni ìdáhùn UDP. Àwọn ìbéèrè DNS méjì ń dáhùn ìbéèrè mìíràn: tí olùyanjú àdúgbò àti olùyanjú gbogbo ènìyàn kò bá gbà lórí àdírẹ́sì ibi-pẹ̀kun, a ń darí rẹ, àríyànjiyàn ọkọ̀ náà sì jẹ́ aṣiṣe.
Ṣàyẹ̀wò ohun tó kúrò nínú ẹ̀rọ náà gan-an
Àwọn àkọsílẹ̀ kíláìàńtì ń ṣàpèjúwe ohun tí kíláìàńtì gbà gbọ́. Ìgbàlélẹ̀ ń ṣàpèjúwe ohun tí nẹ́tíwọ́kì rí, ìyàtọ̀ láàrin méjèèjì sì ni ibi tí ọ̀pọ̀lọpọ̀ àwọn ìṣẹ̀lẹ̀ wọ̀nyí ti ń yanjú:
sudo tcpdump -ni any -c 20 'tcp port 443 and host 203.0.113.10'
sudo ss -tunp | grep -E ':(443|1194|51820)\b'
Tí o bá rí àwọn pátákó SYN tí kò sí SYN-ACK, ìdènà wà lókè, kíláìàńtì kò sì lẹ́bi. Tí o bá rí àfọwọ́kàn tó parí sí àdírẹ́sì tí kì í ṣe ti server, o ń bá proxy tàbí olùdènà sọ̀rọ̀. Tí o kò bá rí nkankan, ṣàyẹ̀wò pé o gba lórí ẹ̀rọ-ìsopọ̀ tó tọ́ kí o tó pinnu ohunkóhun.
Àkójọ socket ń mú ìṣẹ̀lẹ̀ tó dẹ́mọ́ sí i: ọ̀nà-ìnà kejì tó ti di ọ̀nà àìpé mú. Kíláìàńtì méjì tó ń jà fún tábìlì ìtọ́nà ń dá àwọn ìkùnà àárọ̀-ọ̀sán tó dàbí nẹ́tíwọ́kì tí a dènà gan-an, ìgbàlélẹ̀ yóò sì fi ìrìnàjò tó ń jáde nípasẹ̀ ẹ̀rọ-ìsopọ̀ tí o kò retí hàn.
Ìyípadà sẹ́yìn, àti àkọsílẹ̀ tó yẹ kí a pa mọ́
Yí àwọn ìyípadà padà ní ìtẹ̀léntẹ̀lé ìdàkejì sí bí o ṣe ṣe wọ́n. Yọ àwọn àyípadà proxy kúrò, dá kíláìàńtì tí o fi ọwọ́ bẹ̀rẹ̀ dúró, kí o sì yọ ìyípadà ọ̀nà tàbí olùyanjú èyíkéyìí tí o fi kún:
unset https_proxy http_proxy
sudo systemctl stop openvpn-client@corp
sudo ip route show default
Fífi kíláìàńtì tí a fi ọwọ́ bẹ̀rẹ̀ ṣiṣẹ́ sílẹ̀ ni bí laptop ṣe ń parí pẹ̀lú nẹ́tíwọ́kì tó ti bàjẹ́ ní ìbẹ̀wò ọ́fíìsì tó ń bọ̀. Àwọn àyípadà proxy tí a fi sílẹ̀ nínú profáìlì shell ń ba àwọn irinṣẹ́ tí kò ní í ṣe pẹ̀lú wọn jẹ́ ní ọ̀sẹ̀ mélòó kan lẹ́yìn náà, ẹni tó ń ṣàtúpalẹ̀ wọn kò sì ní so àwọn ìṣẹ̀lẹ̀ méjèèjì pọ̀.
Lẹ́yìn náà kọ ìlà mẹ́rin: nẹ́tíwọ́kì, èdìdì àkókò, ìpele tó kùnà, àti olùgbéjáde tí o rí. Ọ̀nà tó ń ṣiṣẹ́ ní kampọ̀sì kan tí ó sì ń kùnà ní èkejì jẹ́ àdáyébá, ẹni tó ń bọ̀ gbọ́dọ̀ mọ̀ bóyá ìyàtọ̀ náà jẹ́ proxy, olùyanjú tàbí àlẹ̀mọ́. Tí ìdáhùn bá jẹ́ pé nẹ́tíwọ́kì kọ̀ àǹfààní jìnnà dúró, dúró níbẹ̀ kí o sì béèrè ọ̀nà tí a ṣe àtìlẹ́yìn fún lọ́wọ́ alámójútó, dípò kí o gbé ọ̀nà ìyíkiri sínú ìlànà tí o kò kà.