O fi ọ̀nà ìlànà kún un tí ó ń rán ìrìnṣẹ́ ẹ̀rọ VPN kan sí ẹ̀rọ tí ó ń ṣiṣẹ́ olùgbọ́ SOCKS ní èbúté 1080. Àwọn àpò ó ń dé, olùgbọ́ kò kọ ohunkóhun, àti ìsopọ̀ náà ń rọ̀. Kò sí ohun tí ó tọ́ nípa ọ̀nà náà: ìgbésẹ̀ tí ó kàn yóò yan ibi tí àpò máa lọ, àti SOCKS jẹ́ ìjíròrò tí ẹ̀rọ gbọ́dọ̀ bẹ̀rẹ̀. Fi àwọn ìlà ìkọ́lé mẹ́ta tí àwọn ènìyàn sábà ń sọ nígbà tí wọ́n ń rán ìrìnṣẹ́ nípasẹ̀ àṣojú wé, yóò sì ṣe kedere apá wo tí ó ṣá ní ètò rẹ.

Ìtọ́nisọ́nà, DNAT àti SOCKS ń yí àwọn nǹkan ọ̀tọ̀ọ̀tọ̀ padà

Ọ̀nà ìlànà ń tún ìpinnu ẹ̀ka 3 kọ. Ìlà méjì tó láti rán ìrìnṣẹ́ ẹ̀rọ kan sí ìgbésẹ̀ tí ó kàn tí a yàn:

ip route add default via 10.50.0.2 table 101
ip rule add from 10.77.0.2 lookup 101

Lẹ́yìn náà, kẹ́nẹ́ẹ̀lì fi àpò náà fún 10.50.0.2 nígbà tí ibùdó ìpilẹ̀ ṣì wà nínú orí IP. Bí 10.50.0.2 bá jẹ́ olùtọ́nà, yóò rán àpò náà lọ. Bí ó bá jẹ́ ẹ̀rọ tí ó ní dẹ́mọ́nì SOCKS ní 1080, a kò tọ́ àpò náà sí ohunkóhun tí ó lè gbà á, àti DNAT sí èbúté 1080 kò tún ràn án lọ́wọ́, nítorí pé àpò tí a ti túmọ̀ ṣì ń gbé ẹrù ohun èlò ìpilẹ̀ dípò ìkíni SOCKS.

SOCKS5 bẹ̀rẹ̀ pẹ̀lú báìtì ẹ̀yà, àkójọ ọ̀nà, pàṣípààrọ̀ ìjẹ́rìí àti ìbéèrè tí ó dárúkọ ibùdó. Ìyẹn jẹ́ dátà ohun èlò. Kò sí àkọsílẹ̀ ìtọ́nisọ́nà tàbí àfojúsùn netfilter tí ó ń dá a, ìyẹn sì ni ìfiwéra ní ìlà kan: ìtọ́nisọ́nà ń yan ọ̀nà, SOCKS ń béèrè lọ́wọ́ olùpèsè láti dá ìsopọ̀ kejì.

Ìṣẹ̀lẹ̀ kìíní: ohun èlò fúnra rẹ̀ lè sọ SOCKS

Nígbà tí ètò náà bá ní ètò àṣojú, èyí ni ọ̀nà tí ó kúrù jùlọ àti kò nílò ìyípadà kẹ́nẹ́ẹ̀lì. Tọ́ ọ sí olùgbọ́, fún ní àwọn ẹ̀rí bí olùpèsè bá béèrè, kí o sì pinnu bóyá a máa yanjú orúkọ níbílẹ̀ tàbí a máa fi wọ́n lé àṣojú lọ́wọ́. Nínú curl ìwọ̀nyí jẹ́ àsíá ọ̀tọ̀ọ̀tọ̀, ìyàtọ̀ sì ṣe pàtàkì nígbà tí a bá ń yanjú ibùdó láti ẹ̀gbẹ́ àṣojú nìkan:

curl --socks5 10.50.0.2:1080 https://docs.example.com
curl --socks5-hostname 10.50.0.2:1080 https://internal.example.com

Àwọn ohun èlò tí kò kọbi ara sí àwọn onídàáyé àyíká àṣojú, tàbí tí ó ń ṣí socket àìkọ́, kò lè rí ìrànlọ́wọ́ lọ́nà yìí. Àwọn aṣàwákiri àti ọ̀pọ̀ jùlọ irinṣẹ́ HTTP dára; ẹ̀rọ eré, dẹ́mọ́nì méèlì tàbí fáìlì bínárì tí a kò mọ̀ kò sábà dára. Ààlà náà wà fún ohun èlò kọ̀ọ̀kan àti ìlànà kọ̀ọ̀kan, ìdí nìyẹn tí àṣàyàn yìí fi dára fún ìdánwò tí ó sì rẹ̀wẹ̀sì gẹ́gẹ́ bí ìdáhùn fún gbogbo VPN.

Ìṣẹ̀lẹ̀ kejì: ẹ̀rọ ìyípadà tí ó ń yí àwọn ìṣàn IP padà sí ìpàdé àṣojú

Fún àwọn ètò tí kò lè sọ SOCKS, ìyípadà gbọ́dọ̀ ṣẹlẹ̀ nínú ohun tí ó ń pari ìrìnṣẹ́ IP tí ó sì ń ṣí ìpàdé àṣojú ní orúkọ wọn. Ẹ̀ka yẹn ní ojú-ọ̀nà tunnel, ó ń gba àwọn ìṣàn tí ìtọ́nisọ́nà ìlànà yàn, ó ń ṣe ìfọwọ́sowọ́pọ̀ SOCKS fún kọ̀ọ̀kan wọn, ó sì ń tún àwọn ìdáhùn kọ́. Ọ̀nà náà ń tọ́ ìrìnṣẹ́ sí i; ẹ̀rọ ìyípadà ni ó ń dá ìpàdé náà.

Ka àkọsílẹ̀ rẹ̀ kí o tó fi gbogbo àwọn nẹ́tíwọ́kì abẹ́ lé e lọ́wọ́. Ọ̀pọ̀ ẹ̀rọ ìyípadà ń gbé TCP dáadáa, wọ́n sì ń bójú mu UDP nípasẹ̀ àjọṣepọ̀ UDP SOCKS5 nìkan, kò sì sí ọ̀kan tí ó yí ICMP padà sí ìrìnṣẹ́ àṣojú, nítorí náà ping tí ó yọrísí kò sọ ohunkóhun nípa ọ̀nà àṣojú. DNS ni èkékejì: bí ẹ̀rọ ìyípadà bá ń yanjú orúkọ níbílẹ̀, àwọn àkọsílẹ̀ inú nìkan ni a máa yanjú sí ìdáhùn tí kò tọ́, tàbí sí ohunkóhun rárá.

Dídènà ìyípo ni kúlẹ̀kúlẹ̀ iṣẹ́ tí ó ń já. Àwọn ìsopọ̀ ẹ̀rọ ìyípadà fúnra rẹ̀ sí olùpèsè SOCKS kò gbọ́dọ̀ tọ́nà padà sínú ẹ̀rọ ìyípadà, nítorí náà ìrìnṣẹ́ rẹ̀ nílò àyọkùrò nínú ìlànà tàbí àdírẹ́sì orísun pàtàkì. Bí o bá ṣe é lọ́nà tí kò tọ́, ìpàdé àṣojú yóò gbìyànjú láti ṣe àṣojú fún ara rẹ̀.

Ìṣẹ̀lẹ̀ kẹta: ẹ̀rọ náà jẹ́ ẹnubodè tí a tọ́nà ní tòótọ́

Nígbà míì ètò tí ó ń ṣiṣẹ́ kò ní SOCKS rárá. Ẹ̀rọ tí ó wà ní ọ̀nà jíjìn ń rán àwọn àpò lọ tàbí ó ń ṣe NAT lé wọn, ìlànà tí ó dá lórí orísun sì ń yàn án gẹ́gẹ́ bí ọ̀nà àbájáde. Àwọn àpẹẹrẹ bẹ́ẹ̀ tọ́, ó sì ń ṣàlàyé ìdí tí ìṣètò tí a dà kọ fi ń ṣiṣẹ́ lórí nẹ́tíwọ́kì kan tí ó sì ń kùnà lórí òmíràn: ìlànà náà jẹ́ ọ̀kan náà, apá tí ó ṣá ni iṣẹ́ gbígbé lọ ní ẹ̀gbẹ́ kejì.

Àwọn ìṣẹ̀lẹ̀ mẹ́ta yà sọ́tọ̀ kíákíá. Ṣàyẹ̀wò ohun tí ó ń gbọ́ ní tòótọ́, kí o sì wo báìtì àkọ́kọ́ tí ó dé ẹ̀rọ náà:

ss -ltnp 'sport = :1080'
tcpdump -ni eth0 -X 'tcp port 1080'

Báìtì ẹrù àkọ́kọ́ ti ẹ̀rọ SOCKS gidi ni 0x05, ẹ̀yà tí ó wà nínú ìkíni. Bí àkọsílẹ̀ bá fi dátà ohun èlò ìpilẹ̀ hàn dípò, kò sí dẹ́mọ́nì SOCKS tí yóò dáhùn, nítorí pé ìjíròrò kò bẹ̀rẹ̀ rí. Bí kò bá sí ohun tí ó ń gbọ́ ní 1080, ẹ̀rọ náà jẹ́ ẹnubodè, ìbéèrè sì di bóyá ó ń gbé lọ àti bóyá ọ̀nà ìpadà wà.

Yan ẹ̀ka náà pẹ̀lú ìbéèrè mẹ́rin

Ṣé ètò náà ní ètò àṣojú? Lò ó kí o sì dúró níbẹ̀. Ṣé ìrìnṣẹ́ náà ní UDP tàbí ICMP tí ó gbọ́dọ̀ yè? Ẹnubodè tí a tọ́nà tàbí ti NAT nìkan ni ó ń gbé ICMP, UDP sì nílò àjọṣepọ̀ SOCKS5 tí ẹ̀gbẹ́ méjèèjì ń ṣe àtìlẹ́yìn fún. Ṣé gbogbo ìlànà iṣẹ́ lórí ẹ̀rọ náà, pẹ̀lú àwọn tí o kò lè ṣètò, gbọ́dọ̀ wà nínú ààbò? Nígbà náà o nílò ẹ̀rọ ìyípadà tí ó ni ojú-ọ̀nà náà tí ó sì ń pari àwọn ìṣàn. Ṣé o tún lè gba ìtọ́nisọ́nà rẹ̀, DNS àti àwọn àyọkùrò ìdènà ìyípo? Bí kò bá rí bẹ́ẹ̀, ẹnubodè tí ó rọrùn yóò ná owó díẹ̀ láti ṣiṣẹ́.

Ìyàtọ̀ kan yẹ kí a pa mọ́ kedere. Àṣàyàn socks-proxy ti ẹ̀rọ VPN fúnra rẹ̀ ń ṣàlàyé bí ìsopọ̀ tunnel ìta ṣe dé ọ̀dọ̀ olùpèsè rẹ̀, kò sì sọ ohunkóhun nípa yíyí àwọn ìṣàn inú ẹ̀rọ padà. Àwọn méjèèjì ni a ń da papọ̀ ní tikẹ́tì kan náà nígbà gbogbo. Pinnu ìbáṣepọ̀ wo ni o nílò kí o tó fọwọ́ kan ọ̀nà.

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