Dante SOCKS lori loopback fun iṣẹ́ HTTPS tí ó ń gba WireGuard nìkan
So olùgbọ́ SOCKS àkànṣe mọ́ loopback kí o sì gba ibi-ìlọ̀ TCP kan laaye. Pa orísun ìjáde Dante, ọ̀nà kernel, DNS àti ìlànà pípadánú tunnel mọ́ ọ̀tọ̀.
Ìwé ìtọ́sọ́nà yìí ń fún ìṣàfilọ́lẹ̀ tí ó mọ proxy ní àǹfààní sí ọ̀nà WireGuard tí ó wà tẹ́lẹ̀ láìfi èbúté proxy jáde lórí ẹrọ VPN tàbí lórí íńtánẹ́ẹ̀tì. Daemon SOCKS ń pèsè ìbáraẹnisọ̀rọ̀ ìṣàfilọ́lẹ̀, WireGuard ń pèsè ọ̀nà IP tí a ti gbà tẹ́lẹ̀, kò sì sí ọ̀kan nínú wọn tí ń fọwọ́ sí olùlò fún ọ. Gbogbo ìgbésẹ̀ nísàlẹ̀ ń dá nǹkan tí o lè yẹ̀wò, gbogbo rẹ̀ sì ní ọ̀nà ìdápadà: dá ìpẹ̀tẹ́lẹ̀ dúró, yọ ìlànà kúrò tàbí yọ ètò proxy ìṣàfilọ́lẹ̀ kúrò. Kò sí nǹkan kan níbí tí ń yí ọ̀nà àìdéédéé ti olùgbàlejò padà.
Àpẹẹrẹ náà ro pé a fi Dante 1.4.x sínú bí ìpẹ̀tẹ́lẹ̀ àkànṣe tí a ń ṣàkóso lórí ibi-iṣẹ́ Linux tí a gbẹ́kẹ̀lé, pẹ̀lú àkọsílẹ̀ iṣẹ́ àti ètò ìkọsílẹ̀ tí àkójọpọ̀ pèsè tí a fi sí ipò wọn. Ibi-iṣẹ́ náà ní 10.77.0.2 lórí ìbáraẹnisọ̀rọ̀ WireGuard rẹ̀, ó ń dé 10.60.0.20:443 nípasẹ̀ tunnel yẹn, orúkọ tọ́ ti iṣẹ́ náà sì ni app.corp.example.
Ìgbésẹ̀ 1: so olùgbọ́ mọ́ loopback nìkan
Fi àwọn apá ẹ̀wọ̀n, ọ̀nà àti ìlànà sínú ètò tí ń ṣiṣẹ́ ti ìpẹ̀tẹ́lẹ̀, kí o sì rọ́pò àwọn àdírẹ́sì àpẹẹrẹ. Gbogbo ètò ẹrọ ń bọ̀ ṣáájú àwọn àkójọ ìlànà:
internal: 127.0.0.1 port = 1080
external: 10.77.0.2
external.protocol: ipv4
clientmethod: none
socksmethod: none
client pass {
from: 127.0.0.1/32 to: 127.0.0.1/32
}
socks pass {
from: 127.0.0.1/32 to: 10.60.0.20/32 port = 443
command: connect
protocol: tcp
}Èyí jẹ́ àpẹẹrẹ kékeré, kì í ṣe àrọ́pò fún àwọn ètò olùlò àti ìkọsílẹ̀ ti àkójọpọ̀. Yan èbúté àdúgbò tí a kò lò, kí o sì jẹ́rìí pé ìpẹ̀tẹ́lẹ̀ àkànṣe yìí kò ní àwọn olùgbọ́ mìíràn, kò ní àwọn ìlànà ìkọjá tí ó gbòòrò jù, kò sì ní àwọn àkọsílẹ̀ ẹ̀wọ̀n òkè tí yóò yí àdéhùn padà. Bí ètò àtẹ́lẹ̀ kan bá fi socks pass sílẹ̀ láìsí ààlà ibi-ìlọ̀, yọ ọ́ kúrò kí o tó dán nǹkan kan wò.
Ìdápadà fún ìgbésẹ̀ yìí ni dídá ìpẹ̀tẹ́lẹ̀ dúró; fáìlì ètò lè wà lórí disiki nígbà tí o ń dá a padà.
Ìgbésẹ̀ 2: kọ ìlànà méjì, kì í ṣe ọ̀kan
Ìtọ́kasí ètò ti Dante ń fún àwọn irú ìlànà méjì ní iṣẹ́ ọ̀tọ̀ọ̀tọ̀. Ìlànà oníbàárà ń gba ìsopọ̀ sí olùgbọ́ loopback, ibi-ìlọ̀ rẹ̀ sì ni àdírẹ́sì olùgbọ́ fúnra rẹ̀. Ìlànà SOCKS ń gba ìsopọ̀ tí ó tẹ̀le tí a béèrè lọ sí olùgbàlejò àti èbúté tí a gbà. Àwọn ìbéèrè tí kò báramu ni a ń dílẹ̀ ní àìdéédéé, ìdí nìyẹn tí ìlànà tí ó ṣáàkù fi dàbí ọ̀nà tí ó ti já.
Kíyèsí ohun tí ètò yìí kò ṣe pẹ̀lú ìpinnu: kò béèrè ọ̀rọ̀ìpamọ́ SOCKS. Ìyẹn bá olùgbàlejò àdúgbò tí a gbẹ́kẹ̀lé mu, kì í sì ṣe ìfọwọ́sí olùlò. Èyíkéyìí ìlànà mìíràn lórí ẹrọ yẹn lè lo loopback pẹ̀lú. Pa ìfọwọ́sí ti ìṣàfilọ́lẹ̀ tí ó jìnnà mọ́ ipò rẹ̀, kí o sì má ṣe lo irú ọ̀nà àìfọwọ́sí yìí fún àwọn olùlò àdúgbò tí a kò gbẹ́kẹ̀lé tàbí fún olùgbọ́ tí ó dojú kọ LAN.
Ìgbésẹ̀ 3: jẹ́rìí ọ̀nà láti orísun tí ó tọ́
external ń yan àdírẹ́sì orísun ìjáde; kò fi ọ̀nà WireGuard sínú. Ìwádìí kíkà nìkan fún orísun àti ibi-ìlọ̀ àpẹẹrẹ:
ip -4 route get 10.60.0.20 from 10.77.0.2Ṣe é nínú ààyè orúkọ ẹ̀wọ̀n gidi ti Dante, kì í ṣe nínú ikarahun èyíkéyìí tí ó ṣẹ̀ṣẹ̀ ṣí. Ọ̀nà, yíyan ẹlẹgbẹ́ WireGuard, àṣẹ ní ẹ̀gbẹ́ ọ̀nà jìnnà àti ọ̀nà ìpadà gbogbo wọn gbọ́dọ̀ bá àdírẹ́sì orísun yẹn mu. Ìwádìí tí ó ṣàṣeyọrí jẹ́ dandan kì í sì tó, nítorí kò sọ nǹkan kan nípa bóyá ìgbẹ̀yìn jìnnà gba ìbéèrè náà.
Kọ ojú ìwọ̀nà sí ìtẹ̀mọ́lẹ̀ láti fi ọ̀nà àìdéédéé kún un kí ìwádìí lè ṣàṣeyọrí. Èbúté proxy wà lórí ibi-iṣẹ́ yìí nìkan; yíyí ọ̀nà àìdéédéé ti olùgbàlejò padà láti dá a jẹ́ yíyí gbogbo àpẹẹrẹ padà.
Ìgbésẹ̀ 4: dán wò pẹ̀lú ìdánimọ̀ tí a ní lọ́kàn
Lẹ́yìn tí olùṣàkóso ti jẹ́rìí ètò tí a fi sínú tí ó sì ti gbé ìpẹ̀tẹ́lẹ̀ bẹ̀rẹ̀ nípasẹ̀ olùdarí iṣẹ́ rẹ̀, ìbéèrè àpẹẹrẹ ni:
curl --proxy socks5h://127.0.0.1:1080 --noproxy '' https://app.corp.example/Pẹ̀lú socks5h, Dante ń ṣe ìyanjú ibi-ìlọ̀, ṣùgbọ́n Dante ń ṣiṣẹ́ lórí ibi-iṣẹ́ yìí, nítorí náà ètò náà kò fi DNS ránṣẹ́ sí ìgbẹ̀yìn jìnnà ti tunnel fúnra rẹ̀. Olùyanjú tí a gbà tí Dante ń lò gbọ́dọ̀ dá àdírẹ́sì tí a gbà padà fún orúkọ yẹn. Àkójọ àìsí-proxy tí ó ṣofo ń dẹ́kun àyọkùrò tí a jogún láti forí SOCKS kọjá ní ìdákẹ́jẹ́ẹ́.
Pa ìjẹ́rìí orúkọ olùgbàlejò àti ẹ̀rí HTTPS mọ́ nínú ìdánwò, lẹ́yìn náà yẹ̀wò olùgbọ́ gidi kí o sì jẹ́rìí àwọn ìlà méjèèjì ti àdéhùn: ìbéèrè tí a gbà ń ṣàṣeyọrí, ibi-ìlọ̀ tí a yọ kúrò sì ń kùnà. Jẹ́rìí pẹ̀lú pé àwọn àṣẹ gbígbé tí a kò ṣe àtìlẹ́yìn fún wọn ṣì ń jẹ́ kíkọ̀, nítorí pé àpá yìí gba àṣẹ SOCKS CONNECT lórí TCP, kò sì gba nǹkan kan tí ó dàbí tunnel UDP gbogbogbo tàbí ti gbogbo ẹ̀rọ.
Ìgbésẹ̀ 5: pinnu ohun tí yóò ṣẹlẹ̀ nígbà tí tunnel bá ṣubú
Dán pípadánú tunnel àti àtúnbẹ̀rẹ̀ ìpẹ̀tẹ́lẹ̀ wò kí o tó pè é ní ìmújáde. Olùṣọ́ tí ń gbé Dante bẹ̀rẹ̀ lẹ́yìn WireGuard kò dá ọ̀nà fail-closed, kò sì dá DNS fail-closed; méjèèjì gbọ́dọ̀ ni a fi agbára mú nípasẹ̀ olùṣàkóso ẹ̀wọ̀n. Ṣọ́ ohun tí ìṣàfilọ́lẹ̀ ń ṣe nígbà tí tunnel wà nísàlẹ̀: àṣìṣe mímọ́ jẹ́ àbájáde rere, ìṣubú ìdákẹ́jẹ́ẹ́ sí olùyanjú gbogbogbo kì í ṣe bẹ́ẹ̀.
Ṣiṣẹ́ pọ̀ lórí àwọn ìmúdójúìwọ̀n bí àdírẹ́sì tunnel tí a so bá yí padà, nítorí pé external ti so mọ́ ọn. Nígbà tí ìṣètò náà kò bá nílò mọ́, fẹ̀yìntì ìpẹ̀tẹ́lẹ̀ yìí àti ètò proxy ìṣàfilọ́lẹ̀ pọ̀, kí o sì fi ọ̀nà WireGuard sí ẹni tí ó ni í.