Għaliex is-servizz pubbliku tiegħek tal-Linux iwieġeb mill-VPN minflok
Servizz lokali jista’ jaċċetta fuq eth0 u jwieġeb permezz ta’ VPN b’tunnel sħiħ. Regola tas-sors b’tabella WAN sħiħa żżomm dawk it-tweġibiet fuq il-passa oriġinali.
Xejn fis-socket ma jiftakar liema interface ġarrbet it-talba, għalhekk rotta default tal-VPN b’tunnel sħiħ tista’ taqbad tweġiba li tappartjeni lill-WAN. Is-servizz mhuwiex qed jinjora l-interface tad-dħul; Linux jirrotta tweġiba ġġenerata lokalment skont id-destinazzjoni u l-politika tas-sors. Regola bbażata fuq is-sors tista’ minflok tibgħat biss it-tweġibiet tas-servizz permezz ta’ tabella WAN sħiħa, u tħalli l-ħruġ ordinarju fuq it-tunnel. Il-port jibqa’ miftuħ waqt li t-tweġiba toħroġ mill-passa ħażina, u għalhekk is-sintomu jidher unilaterali.
Il-fehma ħażina: it-tweġibiet isegwu l-interface li waslu fuqha
Jidher loġiku li pakkett li jasl fuq eth0 għandu joħroġ fuq eth0. Filtri tal-pakketti mingħajr stat jistgħu jinkitbu hekk, u tcpdump fuq in-naħa tad-dħul juri t-talba eżattament fejn wieħed jistenna. Ir-routing ma jaħdimx hekk għat-traffiku li l-host innifsu joħloq.
Malli s-servizz jaċċetta l-konnessjoni, it-tweġiba tiegħu hija pakkett ġdid iġġenerat lokalment. Il-kernel jikkonsulta r-regoli tar-routing għad-destinazzjoni u s-sors tat-tweġiba, u r-rotta default tal-VPN hija tweġiba valida għal kollox. Xejn fis-socket ma jiftakar liema interface ġarrbet it-talba.
Għalhekk is-sintomu jidher unilaterali: it-talbiet jaslu, it-tweġibiet jisparixxu. Għalhekk ukoll żżid regola tal-firewall għall-port tad-dħul ma tbiddel xejn. Il-pakkett mhuwiex imblukkat fit-triq ’il ġewwa; qed jiġi rrotdat x’imkien ieħor fit-triq ’il barra. Segwi t-tweġiba b’tfittxija kkwalifikata mis-sors u d-dawra ssir viżibbli.
X’jirrotta l-kernel tassew: l-indirizz tas-sors
Il-pum li għandek bżonn huwa l-indirizz lokali li s-servizz juża għat-tweġibiet. Fuq host bl-indirizz eth0 illustrattiv 192.0.2.10/24 u l-gateway 192.0.2.1, dak l-indirizz huwa preżenti fuq l-interface. Fuq VM fil-cloud l-indirizz pubbliku jista’ jiġi tradott ’il fuq u jkun nieqes mill-mistieden, għalhekk uża l-indirizz li l-host tassew għandu.
Spezzjona l-istat attwali qabel tirriżerva numru tat-tabella jew prijorità tar-regola. Regoli tal-politika li jeżistu jistgħu jgħattu waħda ġdida, u tabella qadima bl-istess numru tista’ diġà ġġorr rotot mhux relatati:
ip -4 addr show dev eth0
ip -4 rule show
ip -4 route show table all
Imbagħad agħżel tabella skont is-sors. Ir-regola taqbel ma’ tweġibiet li diġà jġorru 192.0.2.10, eżattament it-traffiku mitmum lokalment li trid teħles minnu. It-traffiku mgħoddi ’l quddiem u l-pakketti minn indirizzi lokali oħra ma jaqblux.
Ibni tabella tar-ritorn sħiħa, mhux nofs rotta default
Tabella biss b’rotta default mhijiex biżżejjed. Il-kernel xorta jrid isolvi l-gateway, u dik is-soluzzjoni teħtieġ il-prefiss imqabbad fl-istess tabella. Tabella li fiha jonqos dak il-prefiss tfalli fis-soluzzjoni tal-gateway anke meta r-rotta default tagħha tidher korretta. Żid it-tnejn, imbagħad indika r-regola tas-sors lejn it-tabella:
ip -4 route add table 100 192.0.2.0/24 dev eth0 src 192.0.2.10
ip -4 route add table 100 default via 192.0.2.1 dev eth0
ip -4 rule add priority 1000 from 192.0.2.10/32 lookup 100
Uża l-prefiss u l-gateway veri minflok ma tikkopja l-eżempju. Interface tal-cloud konfigurata bħala /32 b’gateway on-link teħtieġ rotta mqabbda differenti, u tabella mibnija mill-prefiss ħażin tfalli fl-ewwel qabża. L-attribut src jiddikjara s-sors preferut għal dik ir-rotta; ma jissostitwixxix ir-regola tas-sors.
L-ordni wkoll timporta. Regola wiesgħa b’numru ta’ prijorità aktar baxx tiġi evalwata l-ewwel, għalhekk ir-regola tas-sors trid tintlaħaq qabel kwalunkwe regola li tibgħat dan it-traffiku lura lejn it-tabella prinċipali. Iċċekkja l-prijoritajiet b’ip rule show wara li żżidha, mhux biss fil-boot.
Ivverifika b’tfittxija kkwalifikata mis-sors
Itlob lill-kernel jirrotta destinazzjoni tat-test mill-indirizz tas-servizz. It-tweġiba għandha ssemmi eth0 u l-gateway tal-WAN, mhux it-tunnel:
ip -4 route get 198.51.100.25 from 192.0.2.10
Imbagħad stabbilixxi konnessjoni awtorizzata ġdida u osserva ż-żewġ direzzjonijiet. Tfittxija li tagħżel it-tabella t-tajba filwaqt li l-konnessjoni ħajja għadha tfalli tindika filtri tal-passa inversa jew regola tal-firewall, mhux it-tabella. Iċċekkja dawk il-kontrolli qabel tiddiżattiva xi ħaġa globalment.
Qiegħed ir-rotot finali u r-regola taħt il-maniġer tan-netwerk li jippossjedi l-interface. Il-bidliet fl-indirizz, it-tiġdid tad-DHCP u r-rikonnessjonijiet tal-VPN kollha jerġgħu jiktbu l-istat tal-kernel, u regola miżjuda bl-idejn tisparixxi jew tindika gateway skadut wara l-avveniment li jmiss.
Fejn tieqaf din l-eċċezzjoni
Ir-regola teżenta traffiku mitmum lokalment minn indirizz tas-sors wieħed. Ma tkoprix il-portijiet ippubblikati mid-Docker, id-DNAT jew servizzi mgħoddija mill-host, għax dawk il-pakketti jiġu rrotdati bħala traffiku mgħoddi ’l quddiem u qatt ma jġorru s-sors lokali tal-host bl-istess mod. Tali disinni normalment jeħtieġu marka mqiegħda fid-dħul u regola li taqbel mal-marka.
Lanqas ma tagħmel l-indirizz pubbliku tal-host jidher fuq l-interface. Meta NAT ’il fuq jippossjedi dak l-indirizz, it-tweġiba xorta trid toħroġ mill-passa li dik in-NAT tistenna, u għalhekk it-tabella tal-WAN trid tirrifletti l-gateway u l-prefiss oriġinali minflok firxa pubblika mbassra.
Żomm l-eċċezzjoni dokumentata bin-numru tat-tabella, il-prijorità tar-regola u l-indirizz tas-sors eżatt. Il-bidla li jmiss fil-VPN jew fl-interface tista’ tkissirha bil-kwiet, u nota li ssemmi t-tliet valuri hija aktar malajr tiġi ċċekkjata milli terġa’ tiskopri s-sintomu minn rapport tal-klijent.
Jekk is-servizz għadu jwieġeb fuq il-passa ħażina wara li tgħaddi t-tfittxija kkwalifikata mis-sors, qabbel l-indirizz tas-sors tas-socket ħaj ma’ dak fir-regola. Servizz marbut ma’ indirizz wildcard jista’ jagħżel sors differenti mill-indirizz li ttestjajt, u dak in-nuqqas ta’ qbil huwa l-vojt li jifdal.