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.

ValueNameAcceptsStill rejects
0offany source at allnothing on this check
1stricta source routed back out the arrival interfacea source whose route points elsewhere
2loosea source with any route in the tablea 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.

Artikli relatati