Bdejt minn barra, kif jagħmel utent: ittajpjajt l-isem fil-browser ta’ telefon fuq data mobbli u rajt il-konnessjoni tibqa’ mdendla sakemm skadiet. L-isem kien jiġi riżolt, allura d-DNS kien sew. Il-paġna tal-port forwarding tar-router tad-dar kienet ukoll triq bla ħruġ, għax l-indirizz WAN tagħha kien juri 100.64.31.42, u dak mhuwiex indirizz li fornitur jirrotta lejh minn fuq l-internet. Dak in-numru jispjega l-falliment kollu: il-linja tinsab wara carrier-grade NAT, allura l-indirizz pubbliku fuq naħa tiegħi tat-tunnel jappartjeni lill-fornitur. Dak li ġej huwa t-triq li għaddejt minn dik it-tab imdendla għal servizz li jwieġeb.

Ibda mill-klijent u mur ’il ġewwa

Qabel tibdel xi regola, ipprova fejn tieqaf il-katina. Fuq il-laptop ħaddejt dig +short files.example.net u ġibt l-indirizz tal-VPS lura, li eskluda DNS skadut fuq il-magna tiegħi. Imbagħad curl -v --connect-timeout 5 files.example.net:5022 skada minflok ma ġie rrifjutat. Dik id-differenza tagħmel differenza: timeout normalment ifisser li l-pakketti qed jiġu mwarrba fit-triq, filwaqt li rifjut ifisser li xi ħaġa wieġbet u qalet le.

Il-pass li jmiss ’il ġewwa kien il-VPS innifsu. ss -ltnp ma wera xejn jisma’ fuq 5022, li kien mistenni qabel ma teżisti r-regola DNAT. Fuq l-istess magna, wg show (jew ip -br a show tun0 għal OpenVPN) ikkonferma li l-peer tad-dar kien attiv b’handshake riċenti. Jekk il-peer huwa ’l isfel, ebda regola NAT ma tgħin, u d-dawl aħdar fuq il-paġna VPN tar-router tad-dar ifisser xejn.

Ikkonferma li l-linja tad-dar tassew tinsab wara CGNAT

Qabbel l-indirizz li r-router jirrapporta fuq l-interface WAN tiegħu ma’ dak li jara servizz estern. Kull ħaġa f’100.64.0.0/10, jiġifieri 100.64.x.x sa 100.127.x.x, hija l-firxa tal-indirizzi maqsuma minn RFC 6598 u ma tistax tintlaħaq mill-internet. Tasal għall-istess konklużjoni meta r-router jgħid li għandu indirizz privat ordinarju u tfittxija pubblika tirritorna xi ħaġa mhux relatata. Linja CGNAT tista’ wkoll tiġi b’indirizz pubbliku li jdum biss sal-lease li jmiss, hekk li port forward jidher li jaħdem siegħa u mbagħad imut bil-kwiet.

Xi fornituri tabilħaqq jagħtu indirizz pubbliku veru, imma jimblukkaw il-portijiet 80 u 443 deħlin fuq kontijiet residenzjali. Jekk is-servizz tiegħek huwa biss web u l-indirizz WAN huwa tassew pubbliku, staqsi lill-appoġġ qabel ma tibni relay. Jekk mhuwiex, id-disinn hawn taħt japplika bl-istess mod għal kull port, u jiswa li twaqqaf l-esperiment fuq in-naħa tar-router: it-translator fin-netwerk tal-fornitur itemm il-konnessjoni qabel ma tasal qatt għall-interface WAN tiegħek.

Idderieġi l-isem lejn l-indirizz tal-VPS

Id-DNS ma jgħaddix traffiku, allura r-rekord A għas-servizz irid ikun fih l-indirizz pubbliku tal-VPS. Rekord A lejn 192.168.1.20 jiġi riżolt b’mod utli biss għal klijenti li diġà jinsabu fil-VPN; mill-internet jiġi riżolt għal indirizz li ħadd ma jista’ jirrotta. Għall-aċċess amministrattiv tal-VPS innifsu nżomm isem separat, biex qatt ma nħawwad lil liema host jindika rekord.

Jekk kemm il-VPS kif ukoll il-magna tad-dar iservu HTTP, agħti lil kull wieħed ismu stess u ħalli lill-VPS jiddeċiedi min iwieġeb. Li tgħaqqadhom f’isem wieħed u tittama li l-proxy jagħżel il-backend it-tajjeb huwa eżatt kif tispiċċa tawgura l-host żbaljat għal nofsinhar sħiħ.

DNAT fuq port wieħed, ħalli SSH fuq 22

L-għażla diretta hija NAT ta’ destinazzjoni fuq il-VPS. Ippermetti l-forwarding għall-kernel li qed jaħdem u żomm l-indirizz tat-tunnel tas-server tad-dar fir-regola, mhux l-indirizz LAN tiegħu:

sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A PREROUTING -p tcp -d 198.51.100.10 --dport 5022 -j DNAT --to-destination 10.8.0.2

Ħalli SSH lejn il-VPS innifsu fuq 22 u ifforwardja port ieħor, pereżempju 5022, lejn il-magna tad-dar. Jekk tiffowwdja 22 lejn magna mitfija, titlef l-unika triq li kienet tista’ ssewwiha. L-istess loġika tapplika għall-proxy: ħalli l-port tal-amministrazzjoni tal-VPS barra mir-regoli tar-relay.

Agħmel ir-regoli permanenti meta jaħdmu. Fuq Debian jew Ubuntu, apt install iptables-persistent u mbagħad netfilter-persistent save jiktbuhom f’/etc/iptables/rules.v4. Fuq host b’firewalld l-ekwivalenti huwa forward-port permanenti fuż-żona, li jeħtieġ firewall-cmd --reload qabel ma japplika. Regoli li jgħixu biss fil-memorja jisparixxu fl-ewwel reboot ta’ manutenzjoni tal-fornitur, normalment f’siegħa ħażina.

Sewwi r-rotta tar-ritorn, jew evita li tkun teħtiġha

DNAT jerġa’ jikteb id-destinazzjoni biss. Is-server tad-dar jara konnessjoni mill-indirizz oriġinali tal-klijent, u jekk ir-rotta default tiegħu tpointa lejn ir-router tad-dar, ir-risposta toħroġ mill-WAN tad-dar fejn it-translator tal-fornitur iwarrbha. Dik l-asimetrija kienet it-tieni falliment li ltqajt miegħu, wara li r-regola DNAT dehret kompletament korretta.

Żewġ rimedji jaħdmu. Agħti lill-magna tad-dar rotta ta’ politika biex it-traffiku mit-tunnel jerġa’ lura mit-tunnel:

ip rule add from 10.8.0.2 table 100
ip route add default dev wg0 table 100

Jew ħalli lill-VPS jikteb mill-ġdid is-sors biex ir-risposta jkollha indirizz li jista’ jilħaq, u ħalli conntrack tinqleb lura fil-ħruġ:

iptables -t nat -A POSTROUTING -d 10.8.0.2 -p tcp --dport 5022 -j SNAT --to-source 10.8.0.1

Il-verżjoni SNAT taħbi l-indirizz veru tal-klijent mis-server tad-dar, allura l-logs tal-applikazzjoni juru 10.8.0.1 bħala peer. Għaddi l-indirizz oriġinali fil-livell tal-applikazzjoni, jew aċċetta li titlef il-logging għal kull klijent, imma iddeċiediha b’mod deliberat minflok ma tiskopriha waqt inċident.

Iċċekkja t-triq kollha minn barra

Ivverifika minn netwerk li mhuwiex il-VPS u lanqas id-dar: telefon fuq data mobbli, jew shell irħis band’oħra. nc -vz files.example.net 5022 għandu jirrapporta konnessjoni b’suċċess, u openssl s_client -connect files.example.net:443 -servername files.example.net għandu juri ċ-ċertifikat għall-isem pubbliku. Imbagħad iċċekkja s-security group jew il-cloud firewall tal-fornitur. Regola DNAT li qatt ma tara pakkett normalment tiġi mblukkata saff wieħed fuq il-host.

Fl-aħħar, iddeċiedi x’jiġri meta t-tunnel jaqa’. Regola DNAT tibqa’ taċċetta konnessjonijiet u tgeżżerhom bil-kwiet f’tunnel mejjet, li jidher eżatt bħal servizz miksur. Health check fuq il-VPS li jirrifjuta l-port waqt li l-peer huwa ’l isfel jiswa ftit linji u jiffranka siegħa ta’ tbassir. Wara dan, waqaf taġġorna r-regoli u ħares lejh għal ġurnata qabel ma tafdah.

Artikli relatati