NAT jiddeċiedi liema indirizz tas-sors is-server VPN tiegħek fil-fatt jara
L-indirizz tal-laptop tiegħek qatt ma jasal għas-server VPN. NAT jerġa jikteb dan il-qasam fl-aħħar qabża, u l-IP tat-tunnel jiġi assenjat aktar tard. Kif tqabbel iż-żewġt trufijiet.
Inti timmaġina s-server VPN jaqra l-indirizz tal-laptop tiegħek mill-pakkett u jiktbu f'log. Dak li jaqra huwa dak li l-aħħar qabża NAT poġġiet fl-intestatura esterna, u fuq telefon użat bħala hotspot dan spiss ikun indirizz maqsum ma' mijiet ta' abbonati oħra. L-indirizz tal-magna tiegħek stess 192.168.x.x qatt ma jaqsam l-internet f'dik l-intestatura, u l-indirizz tat-tunnel jingħata mis-server wara li l-konnessjoni tkun diġà miftuħa. Għalhekk meta l-log tas-server u ip addr fuq il-laptop ma jaqblux, lanqas wieħed mhu żbaljat; huma jiddeskrivu saffi differenti ta' sessjoni waħda.
Tliet indirizzi, u wieħed biss fil-log
Il-konfużjoni tiġi milli tliet indirizzi jiġu mgħaqqda f'wieħed. Kull wieħed għandu sid differenti, jgħix f'intestatura differenti u jasal għas-server permezz ta' triq differenti.
| 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 |
Biss ir-ringiela tan-nofs mhija magħrufa fil-mument tal-konnessjoni. Is-server jiktibha fit-tabella tal-pari, fil-fajl tal-istat jew fil-log tal-flussi skont id-daemon: WireGuard isejħilha l-punt tat-tmiem, fajl tal-istat ta' OpenVPN jittikkettaha bħala Real Address, u strongSwan jirrappurtaha bħala l-host remot tal-IKE_SA. Dan il-valur jiġi aġġornat kull darba li jasal pakkett minn sors differenti, għalhekk jinbidel mingħajr ma ħadd jerġa jibda xejn.
Ir-ringiela t'isfel hija dik li n-nies jaqraw ħażin bħala dikjarazzjoni ta' identità. Hija timmarka post fil-konfigurazzjoni tas-server, mhux persuna, għax is-server għażilha mill-pool tiegħu stess. Żewġ utenti jistgħu jirċievu l-istess indirizz tat-tunnel f'ġranet differenti, u wieħed jista' jżomm tnejn minnhom minn żewġ apparati.
Għaliex it-tuple rreġistrat jinbidel waqt li t-tunnel jibqa' attiv
It-traduzzjoni tal-indirizzi hija tabella b'timer, mhux rabta permanenti. Router tad-dar iżomm il-mapping UDP tiegħu għal ftit wara l-aħħar pakkett, gateway tal-operatur jerġa juża l-ports skont l-iskeda tiegħu, u telefon li jmur minn Wi-Fi għal LTE jerġa lura b'sors kompletament differenti. Il-valuri awtomatiċi ta' conntrack f'Linux huma kejl utli hawn: nf_conntrack_udp_timeout huwa 30 sekondi u l-varjant tal-istrimjar huwa 120, għalhekk tunnel baxx jista' jitlef il-mapping tiegħu ħafna qabel ma l-utent jinnotah.
It-tunnel jibqa' ħaj għax il-protokoll jawtentika lill-pari, mhux l-indirizz. WireGuard huwa bla stat wara l-handshake, għalhekk kull pakkett awtentikat jaġġorna l-punt tat-tmiem maħżun u r-rabta mill-ġdid tfejjaq fuq il-pakkett li jmiss; għalhekk teżisti persistent-keepalive = 25, biex il-mapping jibqa' sħun waqt l-inattività. Il---float ta' OpenVPN jagħmel l-istess xogħol u jħalli klijent awtentikat jibqa' għaddej minn indirizz u port ġodda. Fil-bini 2.4 u 2.5 fejn float huwa mitfi b'mod awtomatiku, rabta mill-ġdid tirrisettja s-sessjoni u l-klijent jerġa jikkonnettja.
IPsec jasal hemm b'aktar partijiet li jiċċaqilqu. IKEv2 jinnota t-traduzzjoni billi jqabbel il-hashes tas-sors u tad-destinazzjoni fil-payloads tal-iskoperta NAT, jaqleb għall-inkapsulament UDP 4500, u jsegwi l-keepalives sat-tuple l-ġdid. Meta l-keepalives jiġu mblukkati, l-SA jibqa' attiv fuq il-karta waqt li t-traffiku f'direzzjoni waħda jieqaf bil-kwiet.
X'jista' jattribwixxi s-server, u x'ma jistax
Il-mit li jistħoqqlu jinqatel huwa li t-traduzzjoni taħbik mill-operatur. Hija tbiddel it-tikketta, mhux l-osservazzjoni. Gateway wara n-NAT tal-operatur jara spazju 100.64.0.0/10 jew indirizz pubbliku wieħed maqsum minn ħafna abbonati, u xorta jista' jorbot il-fluss ma' suġġett taċ-ċertifikat, ċavetta pubblika ta' WireGuard, indirizz tat-tunnel assenjat, counters tal-bytes u tieqa taż-żmien. Xejn minn dan m'għandu bżonn l-indirizz LAN tiegħek.
Il-limiti jimxu wkoll fid-direzzjoni l-oħra. Indirizz maqsum f'log jindika gateway, mhux dar; żewġ sessjonijiet mill-istess indirizz tradott fuq ports differenti huma apparati differenti; l-istess indirizz f'ġranet differenti jista' jkun żewġ abbonati mhux relatati jekk il-port ġie riċiklat. Server li jirreġistra biss ċwievet tal-pari ma jistax jorbot waħda ma' klijent mingħajr id-database tal-kontijiet, u server li jirreġistra biss indirizzi ma jistax jiddistingwi laptop minn telefon wara l-istess router.
Qabbel iż-żewġt trufijiet minflok taqta' bl-addoċċ
Biex tistabbilixxi x'ġara, aqbad l-istess konnessjoni fiż-żewġt trufijiet fl-istess mument u qabbel it-tuple, mhux l-indirizz. Fuq il-klijent, qabel kull traduzzjoni:
ss -uapn 'dport = :51820'
ip -4 route get 203.0.113.10
wg show wg0 endpoints
Imbagħad aqra l-entrata tat-traduzzjoni fuq ir-router jew il-gateway CGNAT, u dak li fl-aħħar jasal għas-server:
conntrack -L -p udp --dport 51820
tcpdump -ni eth0 udp port 51820
Tliet mudelli jispjegaw il-biċċa l-kbira tad-differenzi. Il-port tas-sors fuq is-server huwa differenti mill-port lokali waqt li d-destinazzjoni taqbel: traduzzjoni tal-ports ordinarja. L-indirizz tas-sors fuq is-server jappartjeni għal blokk ISP li mhuwiex tiegħek: mill-inqas saff NAT addizzjonali. Il-pakketti jieqfu wara perjodu ta' inattività u jerġgħu jibdew b'port ġdid: il-mapping skada, mhux ħsara fit-routing. Jekk it-timbri tal-ħin huma aktar minn sekonda jew tnejn 'il bogħod minn xulxin, qed tqabbel żewġ tentattivi differenti.
Fejn id-differenza tkisser l-affarijiet
Interruzzjonijiet li jidhru bħal ħsarat tas-server normalment jibdew hawn. Regola ta' aċċess imwaħħla mal-indirizz tad-dar tiegħek tfalli wara li jinbidel il-lease tal-ISP. Regola ta' fail2ban li taqbel ma' indirizz tradott tipprojbixxi l-abbonati kollha wara dak il-gateway f'daqqa. Pari sit-sit b'indirizz remot fiss jieqaf iġġedded iċ-ċwievet wara li jinbidel link mobbli. Il-protokoll tat-tunnel kien sew; is-suppożizzjoni dwar it-tuple estern ma kinitx.
L-istess konfużjoni tidher fuq in-naħa tas-server. Jekk il-kaxxa VPN innifisha tinsab wara NAT għandek bżonn port forwarding u passaġġ ta' forwarding li jaħdem; il-gwida tal-forwarding ta' strongSwan tkopri dak il-każ għal IPsec. Server li jintlaħaq biss fuq indirizz privat qatt ma jara t-tuple tradott li jippreżentaw il-klijenti tiegħu, u din hija problema differenti milli l-klijenti jiġu tradotti.
Għaddi minn dawn l-erba' verifiki fl-ordni u waqaf fl-ewwel waħda li tfalli:
- Aqbad fiż-żewġt trufijiet fl-istess ħin; ikkonferma li l-port tas-sors, il-port tad-destinazzjoni u t-timbri tal-ħin jaqblu.
- Aqra l-lista tal-pari tas-server għall-indirizz li għandu bħalissa, mhux dak li kont qed tistenna.
- Iċċekkja t-tabella conntrack jew NAT għall-entrata u l-ħajja li fadal tagħha.
- Ikkonferma li l-indirizz tal-interface tat-tunnel fuq il-klijent jaqbel ma' dak assenjat mis-server, mhux mal-indirizz LAN.
Jekk iż-żewġ qabdiet jaqblu dwar it-tuple u t-tunnel xorta jfalli, it-traduzzjoni mhijiex il-problema tiegħek; kompli għall-handshake u għat-tabella tar-routing ġewwa t-tunnel.