NAT ló ń pinnu irú àdírẹ́sì orísun wo ni olúṣẹ́ ẹ̀rọ VPN rẹ ń rí gan-an
Àdírẹ́sì kọ̀ǹpútà rẹ kò dé ọ̀dọ̀ olúṣẹ́ ẹ̀rọ VPN rárá. NAT ń tún un kọ ní ìfò tí ó kẹ́yìn, a sì ń fi IP tunnel náà lélẹ̀ lẹ́yìn. Bí a ṣe lè fi ìpẹ̀kun méjèèjì wé.
O ń fojú inú wò pé olúṣẹ́ ẹ̀rọ VPN ka àdírẹ́sì kọ̀ǹpútà rẹ láti inú pákẹ́ẹ̀tì kó sì kọ ọ́ sínú àkọsílẹ̀. Ohun tí ó ń kà ni ohun tí ìfò NAT tí ó kẹ́yìn fi sí orí-ọ̀rọ̀ òde, àti lórí tẹlifóònù tí a ń lò gẹ́gẹ́ bí hotspot èyí sábà jẹ́ àdírẹ́sì tí a ń pín pẹ̀lú ọgọ́rùn-ún àwọn onígbàwọlé mìíràn. Àdírẹ́sì ẹ̀rọ rẹ fúnrarẹ̀ 192.168.x.x kò kọjá Íńtánẹ́ẹ̀tì nínú orí-ọ̀rọ̀ yẹn rárá, a sì ń fi àdírẹ́sì tunnel náà lélẹ̀ lẹ́yìn tí ìsopọ̀ ti wà tẹ́lẹ̀. Nítorí náà, nígbà tí àkọsílẹ̀ olúṣẹ́ ẹ̀rọ àti ip addr lórí kọ̀ǹpútà kò bá faramọ́, kò sí èyí tí ó ṣe àṣìṣe; wọ́n ń ṣàpèjúwe àwọn ìpele ọ̀tọ̀ọ̀tọ̀ ti ìpàdé kan.
Àdírẹ́sì mẹ́ta, ṣùgbọ́n ọ̀kan ṣoṣo ni ó wà nínú àkọsílẹ̀
Ìdàrúdàpọ̀ wá láti inú dídá àdírẹ́sì mẹ́ta pọ̀ sí ọ̀kan. Ọ̀kọ̀ọ̀kan ní olówó mìíràn, ó ń gbé nínú orí-ọ̀rọ̀ mìíràn, ó sì ń dé ọ̀dọ̀ olúṣẹ́ ẹ̀rọ ní ọ̀nà mìíràn.
| Address | Who assigns it | Where it sits | Visible to the VPN server |
|---|---|---|---|
Device address, e.g. 192.168.1.24 | Your router via DHCP | Outer header, before translation | No, rewritten in place |
| Translated address and port | Router, ISP CGNAT, or both | Outer header, after translation | Yes, this is the tuple it logs |
Tunnel address, e.g. 10.8.0.6 | The VPN server itself | Inner header, after decapsulation | Yes, but it chose it |
Ìlà àárín nìkan ni a kò mọ̀ ní àkókò ìsopọ̀. Olúṣẹ́ ẹ̀rọ kọ ọ́ sínú tábìlì ẹlẹgbẹ́ rẹ̀, fáìlì ipò tàbí àkọsílẹ̀ ṣíṣàn gẹ́gẹ́ bí daemon: WireGuard ń pè é ní ibi-ìparí, fáìlì ipò OpenVPN ń sàmì sí i gẹ́gẹ́ bí Real Address, strongSwan sì ń ròyìn rẹ̀ gẹ́gẹ́ bí olùgbàlejò ọ̀nà jínjìn ti IKE_SA. A ń sọ iye yẹn di tuntun nígbà gbogbo tí pákẹ́ẹ̀tì bá wá láti orísun mìíràn, nítorí náà ó ń yí padà láìsí ẹni tí ó tún ohunkóhun bẹ̀rẹ̀.
Ìlà tí ó wà nísàlẹ̀ ni ohun tí àwọn ènìyàn ń kà ní àṣìṣe gẹ́gẹ́ bí ẹ̀tọ́ ìdánimọ̀. Ó ń samisi ààyè kan nínú ìṣètò olúṣẹ́ ẹ̀rọ, kì í ṣe ènìyàn, nítorí olúṣẹ́ ẹ̀rọ yàn án láti inú àkópọ̀ tirẹ̀. Àwọn olùlò méjì lè gba àdírẹ́sì tunnel kan náà ní ọjọ́ ọ̀tọ̀ọ̀tọ̀, ẹnìkan sì lè di méjì mú láti ẹ̀rọ méjì.
Ìdí tí tuple tí a kọ sílẹ̀ fi ń yí padà nígbà tí tunnel ṣì ń ṣiṣẹ́
Ìtumọ̀ àdírẹ́sì jẹ́ tábìlì pẹ̀lú aago, kì í ṣe ìsopọ̀ ayérayé. Róútà ilé ń pa mápù UDP mọ́ fún ìgbà díẹ̀ lẹ́yìn pákẹ́ẹ̀tì tí ó kẹ́yìn, gáètì oníṣẹ́ ẹ̀rọ ń tún àwọn ibùdó lò nípasẹ̀ àtòjọ tirẹ̀, tẹlifóònù tí ó ń lọ láti Wi-Fi sí LTE sì ń padà wá pẹ̀lú orísun tí ó yàtọ̀ pátápátá. Níbí àwọn iye àkọ́kọ́ conntrack Linux jẹ́ òṣùwọ̀n tí ó wúlò: nf_conntrack_udp_timeout jẹ́ 30 àáyá, ẹ̀yà ṣíṣàn sì jẹ́ 120, nítorí náà tunnel tí ó dákẹ́ lè pàdánù mápù rẹ̀ pẹ́ẹ̀lẹ́ kí olùlò ó tó ṣàkíyèsí.
Tunnel ń yè kuro nítorí pé ìlànà náà ń ṣàyẹ̀wò ẹlẹgbẹ́, kì í ṣe àdírẹ́sì. WireGuard kò ní ipò lẹ́yìn ìfọwọ́sowọ́pọ̀, nítorí náà pákẹ́ẹ̀tì èyíkéyìí tí a fọwọ́ sí ń sọ ibi-ìparí tí a fi pamọ́ di tuntun, ìsopọ̀mọ́ra sì ń san ara rẹ̀ ní pákẹ́ẹ̀tì tó ń bọ̀; ìdí nìyẹn tí persistent-keepalive = 25 fi wà, láti jẹ́ kí mápù náà dúró gbóná nígbà àìṣiṣẹ́. --float OpenVPN ń ṣe iṣẹ́ kan náà, ó sì ń jẹ́ kí oníbàárà tí a fọwọ́ sí lè tẹ̀síwájú láti àdírẹ́sì àti ibùdó tuntun. Nínú àwọn ìkọ́ 2.4 àti 2.5 níbi tí float ti wà ní ìparí, ìsopọ̀mọ́ra ń tún ìpàdé ṣe, oníbàárà sì ń sopọ̀ mọ́ra lẹ́ẹ̀kan sí i.
IPsec dé ibẹ̀ pẹ̀lú àwọn ẹ̀yà tí ń gbéra púpọ̀ sí i. IKEv2 ń ṣàkíyèsí ìtumọ̀ nípa fífi àwọn hash orísun àti ibi àfojúsùn wé nínú ẹrù ìwádìí NAT, ó ń yí padà sí ìkọ́po UDP 4500, ó sì ń tẹ̀lé keepalive lọ sí tuple tuntun. Nígbà tí a bá dí keepalive, SA ń dúró lórí ìwé nígbà tí ìṣàn-ọ̀rọ̀ ní ẹ̀gbẹ́ kan ń dáwọ́ dúró ní ìdákẹ́jẹ́.
Ohun tí olúṣẹ́ ẹ̀rọ lè fi sí ẹrù, àti ohun tí kò lè
Ìtàn tí ó yẹ kí a pa ni pé ìtumọ̀ ń fi ọ́ pamọ́ kúrò lọ́wọ́ oníṣẹ́ ẹ̀rọ. Ó ń yí àmì padà, kì í ṣe àkíyèsí. Gáètì tí ó wà lẹ́yìn NAT oníṣẹ́ ẹ̀rọ ń rí ààyè 100.64.0.0/10 tàbí àdírẹ́sì gbogbogbò kan tí ọ̀pọ̀ onígbàwọlé ń pín, ó sì ṣì lè so ìṣàn náà mọ́ kókó ẹ̀rí-ìjẹ́rìí, kọ́kọ́rọ́ gbogbo eniyan WireGuard, àdírẹ́sì tunnel tí a yàn, àwọn olùka báìtì àti fèrèsé àkókò. Kò sí ọ̀kan nínú ìwọ̀nyí tí ó nílò àdírẹ́sì LAN rẹ.
Àwọn ààlà ń lọ ní ọ̀nà mìíràn pẹ̀lú. Àdírẹ́sì tí a pín nínú àkọsílẹ̀ ń tọ́ka sí gáètì, kì í ṣe ilé; ìpàdé méjì láti àdírẹ́sì tí a túmọ̀ kan náà lórí ibùdó ọ̀tọ̀ọ̀tọ̀ jẹ́ ẹ̀rọ ọ̀tọ̀ọ̀tọ̀; àdírẹ́sì kan náà ní ọjọ́ méjì ọ̀tọ̀ọ̀tọ̀ lè jẹ́ onígbàwọlé méjì tí kò ní ìbáṣepọ̀ tí a bá tún ibùdó lò. Olúṣẹ́ ẹ̀rọ tí ó ń kọ kọ́kọ́rọ́ ẹlẹgbẹ́ nìkan kò lè so ọ̀kan mọ́ oníbàárà láìsí ibi-ìpamọ́ àkọsílẹ̀, olúṣẹ́ ẹ̀rọ tí ó ń kọ àdírẹ́sì nìkan kò sì lè yà kọ̀ǹpútà kúrò nínú tẹlifóònù lẹ́yìn róútà kan náà.
Fi ìpẹ̀kun méjèèjì wé dípò ìfọ́ròwérò
Láti pinnu ohun tí ó ṣẹlẹ̀, mú ìsopọ̀ kan náà ní ìpẹ̀kun méjèèjì ní àkókò kan náà kí o sì fi tuple wé, kì í ṣe àdírẹ́sì. Ní ẹ̀gbẹ́ oníbàárà, kí ìtumọ̀ èyíkéyìí tó ṣẹlẹ̀:
ss -uapn 'dport = :51820'
ip -4 route get 203.0.113.10
wg show wg0 endpoints
Lẹ́yìn náà ka àkọsílẹ̀ ìtumọ̀ lórí róútà tàbí gáètì CGNAT, àti ohun tí ó ń dé ọ̀dọ̀ olúṣẹ́ ẹ̀rọ ní ìparí:
conntrack -L -p udp --dport 51820
tcpdump -ni eth0 udp port 51820
Àwọn àpẹẹrẹ mẹ́ta ń ṣàlàyé ọ̀pọ̀ àìbáramu. Ibùdó orísun lórí olúṣẹ́ ẹ̀rọ yàtọ̀ sí ibùdó ilé nígbà tí ibi àfojúsùn bá faramọ́: ìtumọ̀ ibùdó déédéé. Àdírẹ́sì orísun lórí olúṣẹ́ ẹ̀rọ jẹ́ ti ẹ̀ka ISP tí kì í ṣe tirẹ̀: ó kéré tán ìpele NAT àfikún kan. Àwọn pákẹ́ẹ̀tì ń dúró lẹ́yìn àkókò àìṣiṣẹ́ tí wọ́n sì ń tẹ̀síwájú pẹ̀lú ibùdó tuntun: mápù ti parí, kì í ṣe àṣìṣe ìtọ́sọ́nà. Tí àwọn àmì àkókò bá jinna ju ọ̀kẹ́ kan tàbí méjì lọ, ìwọ ń fi ìgbìyànjú méjì ọ̀tọ̀ọ̀tọ̀ wé.
Níbi tí ìyàtọ̀ ti ń ba nǹkan jẹ́
Àwọn ìdádúró tí ó dàbí àṣìṣe olúṣẹ́ ẹ̀rọ sábà máa ń bẹ̀rẹ̀ níbí. Òfin ìwọlé tí a so mọ́ àdírẹ́sì ilé rẹ ń kùnà lẹ́yìn tí ìyáṣẹ̀ ISP yí padà. Òfin fail2ban tí ó bá àdírẹ́sì tí a túmọ̀ mu ń dí gbogbo onígbàwọlé lẹ́yìn gáètì yẹn lẹ́ẹ̀kan náà. Ẹlẹgbẹ́ ojú-ìwé dé ojú-ìwé pẹ̀lú àdírẹ́sì jínjìn tí ó dúró ṣinṣin ń dá ìmúdọ̀tun kọ́kọ́rọ́ dúró lẹ́yìn tí ọ̀nà alágbèéká yí padà. Ìlànà tunnel wà ní dára; àbáwọlé nípa tuple òde kò wà.
Ìdàrúdàpọ̀ kan náà ń farahàn ní ẹ̀gbẹ́ olúṣẹ́ ẹ̀rọ. Tí àpótí VPN fúnrarẹ̀ bá wà lẹ́yìn NAT, ìwọ nílò ìgbékalẹ̀ ibùdó àti ọ̀nà ìgbékalẹ̀ tí ń ṣiṣẹ́; ìtọ́sọ́nà ìgbékalẹ̀ strongSwan ń bo irú ọ̀ràn yẹn fún IPsec. Olúṣẹ́ ẹ̀rọ tí a lè dé ọ̀dọ̀ nìkan lórí àdírẹ́sì àdáni kò rí tuple tí a túmọ̀ tí àwọn oníbàárà rẹ̀ ń gbé kalẹ̀ rárá, èyí sì jẹ́ ìṣòro mìíràn ju kíka oníbàárà lọ.
Ṣe àwọn àyẹ̀wò mẹ́rin wọ̀nyí ní tẹ̀léntẹ̀lén kí o sì dúró ní èyí tí ó kọ́kọ́ kùnà:
- Mú ní ìpẹ̀kun méjèèjì ní àkókò kan; jẹ́rìí pé ibùdó orísun, ibùdó ibi àfojúsùn àti àwọn àmì àkókò faramọ́.
- Ka àtòjọ ẹlẹgbẹ́ olúṣẹ́ ẹ̀rọ fún àdírẹ́sì tí ó ń di mú báyìí, kì í ṣe èyí tí o retí.
- Ṣàyẹ̀wò tábìlì conntrack tàbí NAT fún àkọsílẹ̀ náà àti ìyókù ìgbésí ayé rẹ̀.
- Jẹ́rìí pé àdírẹ́sì ìfarahàn tunnel lórí oníbàárà bá èyí tí olúṣẹ́ ẹ̀rọ yàn mu, kì í ṣe àdírẹ́sì LAN.
Tí àwọn ìmúdánilẹ́kọ̀ọ́ méjèèjì bá faramọ́ lórí tuple tí tunnel sì ṣì kùnà, ìtumọ̀ kì í ṣe ìṣòro rẹ; lọ sí ìfọwọ́sowọ́pọ̀ àti tábìlì ìtọ́sọ́nà nínú tunnel.