Għaliex klijent VPN fuq il-LAN tal-uffiċċju jitlef kull tweġiba
Laptop fuq il-LAN tal-uffiċċju u fuq tunnel fl-istess subnetwork iwieġeb mill-interface ħażina. Iffiltrar lax tal-passaġġ lura jispjega dan is-skiet.
Laptop joqgħod fuq il-/24 tal-uffiċċju permezz ta’ Ethernet u jingħaqad ukoll ma’ server OpenVPN li jgħix fl-istess /24. Kollega jpingja l-indirizz tat-tunnel; it-talba tasal b’mod ċar, u xejn ma jerġa’ lura. Il-log tat-tunnel huwa nadif u l-ibbrawżjar għadu jaħdem, allura t-tunnel huwa l-suspettat ħażin. Il-validazzjoni tas-sors IPv4 fuq il-magna li tirċievi tarmi l-pakkett qabel ma xejn jaqrah.
It-tarmija sseħħ qabel ma xejn jaqra l-pakkett
Il-validazzjoni tas-sors tagħmel mistoqsija waħda dwar kull pakkett deħlin: jekk dan il-host iwieġeb lil dak is-sors, it-tweġiba toħroġ mill-interface li l-pakkett għadu kemm wasal fuqha? Meta t-tweġiba hija le, il-kernel itarmi l-pakkett mal-wasla. La socket u lanqas passaġġ ta’ trażmissjoni qatt ma jarawh, u għalhekk qabda fuq it-tunnel xorta tirreġistra talba li l-applikazzjoni qatt ma tirċievi.
Il-klijent hawnhekk iżomm 10.66.0.9 fuq it-tunnel tiegħu, u s-server OpenVPN iwieġeb fl-192.168.80.10 ġewwa l-prefiss tal-uffiċċju. Kollega fl-192.168.80.25 jpingja l-indirizz tat-tunnel, allura t-talba taqsam il-LAN, is-server jidderieġiha fit-tunnel, u tasal fuq l-interface tat-tunnel tal-klijent u ġġorr indirizz tas-sors tal-uffiċċju. Fit-tabella tar-routing ta’ dik il-magna l-prefiss tal-uffiċċju jappartjeni lill-apparat Ethernet, mhux lit-tunnel. Il-validazzjoni tqabbel l-interface tal-wasla mar-rotta, issib nuqqas ta’ qbil u tarmi l-pakkett, allura l-kollega jara telf sħiħ filwaqt li ż-żewġ trufijiet jirrappurtaw tunnel b’saħħtu.
Id-direzzjoni tal-mera għandha l-istess forma: meta l-klijent jibda lejn l-uffiċċju, it-tweġibiet jistgħu jiġu mormija fuq in-naħa tal-uffiċċju għall-istess raġuni. Tiswija vverifikata f’direzzjoni waħda biss normalment terġa’ lura bħala t-tieni biljett.
Ipprova l-mod fis-seħħ qabel ma tmiss xi sysctl
Aqra l-valuri effettivi minflok tafda default tad-distribuzzjoni, għax is-setting għal kull interface hija biss nofs id-deċiżjoni. Il-mod fis-seħħ huwa l-ogħla bejn il-valur tal-interface u l-valur ta’ all, allura żero fuq l-interface tat-tunnel ma jfisser xejn sakemm all huwa wieħed. Id-deċiżjoni tal-mod strett hija deċiżjoni ta’ routing, allura ħaddem it-tfittxija li ħaddem il-kernel u qabbel it-tweġiba tagħha mal-interface li fuqha l-pakkett fil-fatt wasal.
tcpdump -ni tun0 icmp and host 192.168.80.25
ip route get 192.168.80.25
sysctl net.ipv4.conf.all.rp_filter net.ipv4.conf.tun0.rp_filter
Imbagħad erġa’ għamel il-ping waqt li tara l-counter tal-iżbalji. Għadd li jitla’ ħdejn talba li l-qabda diġà turi huwa l-firma ta’ din it-tarmija, mhux ta’ rotta nieqsa. Ixgħel ir-reġistrazzjoni tal-pakketti Martian waqt li tkun hemm, sabiex il-kernel isemmi s-sors u l-interface li rrifjuta. Flimkien huma jeskludu l-kriptaġġ, il-firewall u iroute nieqes bħala spjegazzjonijiet.
Ikteb il-linja bażi qabel ma tbiddel xejn: iż-żewġ valuri, l-apparat li għażlet it-tfittxija, u l-counter li rajt. Dik ir-reġistrazzjoni hija dik li tgħidlek wara jekk il-bidla għamlet dak li taħseb.
X’taċċetta tassew kull mod ta’ rp_filter
Il-kernel juri tliet valuri għal kull interface, u mhumiex tliet sfumaturi ta’ regola waħda. Żero jitfi l-verifika. Wieħed huwa strett u jitlob li s-sors jiġi routed lura mill-interface tal-wasla. Tnejn huwa lax u jitlob biss li teżisti xi rotta lejn is-sors fit-tabella, fejn ma tippuntax.
| Value | Name | Accepts | Still rejects |
|---|---|---|---|
| 0 | off | any source at all | nothing on this check |
| 1 | strict | a source routed back out the arrival interface | a source whose route points elsewhere |
| 2 | loose | a source with any route in the table | a source with no route at all |
Ir-ringiela li timporta hawnhekk hija dik lax, u dak li għadha tirrifjuta. Sors iffalsifikat li jista’ jiġi routed kullimkien fit-tabella tiegħek jgħaddi, filwaqt li sors mingħajr ebda rotta għadu jiġi rrifjutat. Fuq laptop din hija konċessjoni dejqa; fuq router li jgħaddi traffiku ta’ nies oħra hija wiesgħa. Il-mod jappartjeni lill-host, allura l-istess numru jġorr piż differenti fiż-żewġ postijiet.
Liema ringiela teħtieġ din it-topoloġija joħroġ mit-tabella, mhux mid-drawwa. Il-pakkett huwa leġittimu u s-sors tiegħu jista’ jiġi routed, allura dak lax jaċċettah u dak strett le. Xejn fil-każ ma jitlob żero, u l-għażla ta’ żero tneħħi verifika li hawn ma tiswiex xejn.
Agħżel l-iżgħar bidla li tneħħi l-ambigwità
Il-mod lax huwa l-iżgħar bidla li taqbel, u hija tnaqqis reali fl-istrettezza, mhux swiċċ bla ħsara. Għażla aħjar teżisti kull meta t-topoloġija tippermetti: neħħi l-overlap, u l-ambigwità tisparixxi.
Fejn il-prefiss tal-uffiċċju huwa meħtieġ biss permezz ta’ Ethernet, neħħih mir-rotot li jiġbed il-profil u l-indirizz isir jintlaħaq b’passaġġ wieħed. Meta ż-żewġ passaġġi tassew iridu jikkoeżistu, pinna s-sors u l-apparat b’regola ta’ politika minflok ma tħoll il-validazzjoni fuq kull interface. Dan iżomm filtraġġ strett għal kull ħaġ’oħra fuq il-magna u jiddokumenta l-eċċezzjoni fejn l-inġinier li jmiss se jfittixha.
Liema passaġġ tgħażel, irreġistrah fi sysctl drop-in u mhux f’kmand ħaj. Issettja l-muftieħ all u default flimkien, sabiex konnessjoni mill-ġdid ma tistax tirrestawra l-mod strett bil-kwiet.
# /etc/sysctl.d/99-rp-filter.conf
net.ipv4.conf.default.rp_filter = 2
net.ipv4.conf.all.rp_filter = 2
sysctl --system
X’jitlef il-mod lax, u fejn
Il-mod lax għadu jirrifjuta sors li ebda rotta ma setgħet tilħaq, u jieqaf jirrifjuta sors iffalsifikat li jiġri li jista’ jiġi routed. Fuq laptop din hija konċessjoni dejqa. Fuq apparat li jgħaddi traffiku li mhuwiex tiegħu, l-istess għażla hija ferm aktar wiesgħa. Għalhekk l-istess setting iġorr żewġ tifsiriet differenti ħafna skont fejn taħdem.
Li titfi l-verifika għal kollox fuq host li jgħaddi traffiku għal nies oħra hija l-unika tiswija li għandha tiġi evitata. Żero jarmi l-validazzjoni li l-mod lax iħares b’attenzjoni. Jekk il-host jgħaddi għal oħrajn, argumenta minflok favur l-għażla tar-regola tal-politika mit-taqsima preċedenti.
Ħalli nota li ssemmi ż-żewġ interfaces, il-prefiss li jikkoinċidi u l-prova eżatta li issa tirnexxi. Dan huwa aktar utli għall-inġinier li jmiss minn linja li tgħid li l-filtraġġ ġie aġġustat.