Ibo ni NGINX yoo kọ adírẹ́sì orísun sí fún ẹ̀rọ VPN kan?
Pinnu ohun tí NGINX rí lẹ́gbẹ̀ẹ́ OpenVPN lórí ẹ̀rọ kan: adírẹ́sì ojú-ọ̀nà inú, adírẹ́sì ìjáde gbangba tàbí ẹlẹgbẹ́ tí a fi ránṣẹ́, ní ìbámu pẹ̀lú ọ̀nà tí a gbà.
Adírẹ́sì ẹ̀rọ mẹ́ta ni ó farahàn nínú ètò NGINX pẹ̀lú OpenVPN lórí ẹ̀rọ kan náà, ọ̀kọ̀ọ̀kan fún ọ̀nà kọ̀ọ̀kan tí ìbéèrè lè gbà. Ojú-ìwé tí ó dé adírẹ́sì ojú-ọ̀nà, ojú-ìwé tí ó dé adírẹ́sì gbangba àti ètò tí ó jáde nípasẹ̀ ọ̀nà íńtánẹ́ẹ̀tì ẹnu-ọ̀nà gbogbo wọn yàtọ̀ ní ojú socket tí ń gbọ́. Pinnu ọ̀nà wo ni o ń wò kí o tó túmọ̀ ìlà àkọsílẹ̀ náà. Ìpinnu náà sinmi lórí ibi tí ẹ̀rọ náà darí, àwẹ́kù tí ó ní fún ìparí VPN òde, àti bóyá ohun kan ń túmọ̀ pákẹ́ẹ̀tì náà lójú ọ̀nà.
Pinnu nípasẹ̀ ibi tí a darí, kì í ṣe nípasẹ̀ ẹni tí a ń lò
Bẹ̀rẹ̀ pẹ̀lú adírẹ́sì tí a fi ìbéèrè ránṣẹ́ sí, nítorí adírẹ́sì yẹn ni ó yan ọ̀nà. Ìbéèrè sí adírẹ́sì ojú-ọ̀nà ẹ̀rọ náà dé lórí ojú-ọ̀nà pẹ̀lú adírẹ́sì inú ẹ̀rọ náà gẹ́gẹ́ bí orísun. Ìbéèrè sí adírẹ́sì gbangba ẹ̀rọ náà sábà máa ń dé lórí ojú tí ó dojú kọ íńtánẹ́ẹ̀tì pẹ̀lú adírẹ́sì gbangba ẹ̀rọ náà, kódà nígbà tí kọ̀mpútà àgbékọ́ náà ní ojú-ọ̀nà tí a ti dá sílẹ̀ ní àkókò yẹn. Nítorí náà, jíjẹ́ mẹ́ńbà nínú àkójọ VPN jẹ́ ẹ̀yà ọ̀nà pákẹ́ẹ̀tì, kì í ṣe ẹ̀yà tí ń tẹ̀lé olùlò.
| Path the request took | Source the site normally records |
|---|---|
| Client reaches the site at its tunnel address, 10.24.0.1 | Client inner address, 10.24.0.20 |
| Client reaches another internet site through the gateway | Gateway public egress address, 192.0.2.44 |
| Client reaches the gateway's public address through the endpoint exception | Client's own public access address |
Ìlà kẹta yẹn gan-an ni ó yẹ kí a yẹ̀wò kọ́kọ́ nígbà tí olùlò VPN bá farahàn nínú àkọsílẹ̀ pẹ̀lú adírẹ́sì tí kò ní ìbáṣepọ̀ kankan pẹ̀lú ojú-ọ̀nà náà. Ó tún ṣàlàyé ìdí tí olùlò méjì lórí profáìlì kan náà fi lè ṣe àwọn àkọsílẹ̀ ọ̀tọ̀ọ̀tọ̀: àwọn nẹ́tíwọ́kì ìwọlé tiwọn yàtọ̀, kò sì sí ohun kan nínú ojú-ọ̀nà tí ń kọ èyí mọ́lẹ̀.
Ìdí tí ìparí òde fi ń dá ọ̀nà gbangba kejì
Ẹ̀rọ náà gbọ́dọ̀ dé adírẹ́sì gbangba ẹnu-ọ̀nà kí ó tó dá ojú-ọ̀nà sílẹ̀, nítorí náà ọ̀nà kan sí adírẹ́sì yẹn gbọ́dọ̀ wà ní òde ojú-ọ̀nà náà. Nígbà tí ẹ̀rọ bá darí gbogbo ìsọ̀rọ̀padà sínú, ìmúṣẹ tí ó mọ́gbọ́n dání máa ń pa ọ̀nà ẹ̀rọ tí ó ṣe kedere sí adírẹ́sì gbangba olùpín náà mọ́, kí ó lè yẹra fún ojú-ọ̀nà tí ó gbára lé ara rẹ̀. Àwẹ́kù yẹn kò yan ìpín iṣẹ́, nítorí náà ìbéèrè kankan sí adírẹ́sì gbangba yẹn kan náà á tẹ̀lé e, pẹ̀lú ìbéèrè ojú-ìwé sí ààyè tí a gbà lórí ẹnu-ọ̀nà.
Èyí ni ìlànà tí ó wà lẹ́yìn ọ̀pọ̀ jùlọ àwọn ìròyìn tí ń da ènìyàn lólùfẹ́ ní apá yìí, ó sì wà lórí ìmúṣẹ ẹ̀rọ náà dípò olùpín. Nítorí náà àwọn ẹ̀rọ méjì tí wọ́n ní profáìlì kan náà lè hùwà ọ̀tọ̀ọ̀tọ̀. Yíyọ àwẹ́kù náà kúrò láti »ṣàtúnṣe« àkọsílẹ̀ máa ń fa ojú-ọ̀nà náà ṣubú pẹ̀lú, nítorí náà pa á mọ́ kí o jápọ̀ yí i ká.
Ka socket, tábìlì àti ọ̀nà àkọsílẹ̀ pẹ̀lú ara wọn
Àkíyèsí mẹ́ta ni ó pinnu ọ̀nà tí o ń wò: ibi tí socket gbọ́, ojú wo ni ó dáhùn ibi tí a darí sí, àti ohun tí ọ̀nà àkọsílẹ̀ gbà sílẹ̀ gan-an. Bí olùgbọ́ bá so mọ́ adírẹ́sì ojú-ọ̀nà nìkan, ìbéèrè gbangba kò lè dé ọ̀dọ̀ rẹ̀ rárá, èyí sì yọ ìlà méjì kúrò lẹ́sẹ̀kẹsẹ̀. Bí ìwádìí fún ẹ̀rọ náà bá dá ẹ̀rọ ojú-ọ̀nà padà, ìbéèrè náà dé pẹ̀lú orísun inú, àkọsílẹ̀ sì yẹ kí ó fi èyí hàn.
ss -lntp 'sport = :443'
ip route get 10.24.0.20
ip route get 192.0.2.44Lẹ́yìn náà ka ọ̀nà náà dípò ìlà náà. Pápá tí a ń fi orí-ọ̀rọ̀ tí a ránṣẹ́ bọ́ ń gba ìdánilójú sílẹ̀, kì í ṣe ẹlẹgbẹ́ socket, ìdánilójú náà sì ṣe pàtàkì nígbà tí ẹlẹgbẹ́ tí ó súnmọ́ jẹ́ aṣojú tí a gbẹ́kẹ̀lé. Kíkọ ìye méjèèjì sínú àkọsílẹ̀ máa ń parí àríyànjiyàn tí ó ṣẹ̀yìn, nítorí ẹlẹgbẹ́ tí ó súnmọ́ àti adírẹ́sì tí a rọ́pò jẹ́ òtítọ́ ọ̀tọ̀ọ̀tọ̀, ẹnìkan sì ni ó ti nẹ́tíwọ́kì wá.
log_format tunneled '$remote_addr $realip_remote_addr $request $status';
grep -n 'log_format' /etc/nginx/nginx.confYan ibi ìwọlé tí o fẹ́ kí o sì mú DNS gbà
Bí ààyè náà bá jẹ́ ti ojú-ọ̀nà nìkan, fún un ní orúkọ tí yóò yanjú sí adírẹ́sì ojú-ọ̀nà fún àwọn ẹ̀rọ VPN, kí o sì fi ìlànà múlẹ̀ lórí socket tí ń gbọ́. Ìdáhùn DNS tí a pín tí ó dá 10.24.0.1 padà fún orúkọ inú jẹ́ ìpinnu ọ̀nà ní aṣọ àlàyé yanjú orúkọ. Bí ààyè náà bá tún gbọ́dọ̀ jẹ́ ti gbangba, pa orúkọ méjì tàbí ebute méjì mọ́ kí àkọsílẹ̀ sì sọ fún ọ èwo ni ó ṣe ìbéèrè náà.
Àwọn òfin ìyọ̀ǹda tẹ̀lé ìmọ̀ràn kan náà. Yíyọ̀ǹda àkójọ ojú-ọ̀nà kò fún ìbéèrè gbangba láṣẹ, kò sì ní fi adírẹ́sì inú kún ìsopọ̀ tí ó ti íńtánẹ́ẹ̀tì wá. Dídàpọ̀ ibi ìwọlé méjèèjì lábẹ́ orúkọ kan máa ń sọ orísun tí a kọ di àbájáde ẹ̀gbẹ́ ọ̀nà ẹ̀rọ náà dípò ìpinnu àpẹẹrẹ.
Ṣàyẹ̀wò ọ̀nà náà, lẹ́yìn náà ìlànà náà
Fi ìmúdájú ọ̀nà náà múlẹ̀ pẹ̀lú gbígbà lórí ẹnu-ọ̀nà àti ìbéèrè tí ìwọ fúnra rẹ ń darí. Gbígbà lórí ẹ̀rọ ojú-ọ̀nà àti ọ̀kan lórí ojú gbangba fi hàn èwo ni ó gbé báìtì náà, ìtòlẹ́sẹẹsẹ pákẹ́ẹ̀tì sì sọ fún ọ bóyá ìtúmọ̀ wáyé láàárín wọn.
tcpdump -ni tun0 port 443 -c 5
tcpdump -ni eth0 port 443 -c 5Lẹ́yìn náà ṣàyẹ̀wò àǹfààní ní ẹ̀gbẹ́ méjèèjì: ibi ìwọlé tí a pè ní orúkọ ń ṣiṣẹ́ fún ẹ̀rọ tí a ń fẹ́, ọ̀nà gbangba tí a kò fọwọ́ sí ni a kọ̀ dípò kí ó kàn jẹ́ lọ́ra. Ààyè ìpadà IP gbogbogbo ń fi ohun kan hàn nípa ìjáde íńtánẹ́ẹ̀tì ẹnu-ọ̀nà kò sì fi nǹkan kan hàn nípa ààyè yìí lórí ẹ̀rọ kan náà. Nígbà tí ojú-ìwé àti WebSocket kò bá gbà, fi URL wọn, ìdílé adírẹ́sì wọn àti ìdáhùn DNS wọn wé ara wọn kí o tó fi ọwọ́ kàn ètò olùpín.