Zergatik zure iptables erruleak ez duen inoiz zubitutako VPN trafikoa ikusten
Zubitutako fotogramek ikusten ari zaren IP katea saihestu dezakete. Konparatu bridge familia natiboa br_netfilter zaharrarekin beste erregela bat gehitu aurretik.
Host bereko bi makina birtual zubi baten bidez iristen dira LANera, eta ip forward katean jarritako erregela batek inoiz mugitzen ez den kontagailu bat erakusten du. Fotogramak errealak dira, trafikoa pasatzen ari da, eta erregela ez dago soilik bere bidean. Linuxek zubitutako trafikoa erakusteko dituen bi moduak alderatzeak isiltasuna azaltzen du, eta baita modulu zahar bat kargatzea dirudiena baino erantzun okerragoa zergatik den ere.
Bi bide host bakarrean zehar
Pakete batek bi modu oso desberdinetan utzi dezake host hau, eta desberdintasunak erabakitzen du zein hookek ikusten duten. Helburua ataka fisiko batetik haratago badago eta fotograma zubiaren bi ataken artean kommutatzen bada, hostak Ethernet fotograma bat bidaltzen du; bideratze kodea ez da kontsultatzen, eta ez da bideratutako jauzirik gertatzen. Helburua host bera bada, edo tunel interfaze baten bidez iristen den sare bat bada, paketea bideratu egiten da eta IP geruzako hookak bai aplikatzen dira. Gogoan izan sardetxe hori, zeren kateei eta familieei buruzko ondorengo galdera bakoitza fotogramak bi bide horietako zein hartzen duen araberakoa baita.
Bereizgarritasun hori da ezer ere kontatzen ez duen erregela baten atzean dagoen istorio osoa. veth9a1-tik enp3s0-ra zubitutako fotogramak zubia zeharkatzen du, ez IP pila, beraz ip forward kate batek ez du parekatzeko ezer ikusten. Adibide zaharrago bateko interfaze izenek ez dute erabakitzen zein bide duzun, eta horregatik lehen urratsa topologia begiratzea da, erregela multzoa baino lehen.
Tunel batek izena merezi duen hirugarren kasu bat gehitzen du. TUN gailu batek IP paketeak hostari ematen dizkio, beraz horiek bideratu eta IP kateak zeharkatzen dituzte, zubiari lotutako TAP gailuak, berriz, fotogramak ematen ditu eta zubitutako kasuaren antzera jokatzen du. Gailu motak, eta ez produktuaren izenak, erabakitzen du.
Konparatu zubitutako fotograma bat ikus dezaketen bi familiak
Linuxek zubi filtratze natiboa onartzen du nftablesen bridge familiaren bidez, eta ez du modulu zaharrik behar fotogramak hegaldian aztertzeko eta botatzeko. Kernelaren beraren zubi dokumentazioak zuzenean ematen du gomendio hori, eta hori jakitea merezi du bilaketa emaitza batek modulu bat kargatzeko esan aurretik.
| Observation point | What it sees | What it costs |
|---|---|---|
nftables bridge family chains | Ethernet frames forwarded between bridge ports, in both directions | Rules must be written in bridge syntax with link-layer matches |
Legacy br_netfilter plus an ip chain | Bridged IPv4 and IPv6 packets, re-exposed through IP-layer hooks | Existing host rules may begin matching traffic they never saw before |
inet chain for routed traffic | Packets the host routes, including traffic arriving from a TUN device | No visibility into purely switched frames |
nft komandoa iptablesen ordez erabiltzeak, berez, ez du erregela familia egokian jartzen. bridge familian deklaratutako kate batek fotogramak ikusten ditu; ip, ip6 edo inet-en deklaratutako kate batek ez ditu ikusten, edozein binarik sortu izan duela ere. Familia katearen propietatea da, ez idatzi zuen tresnaren propietatea.
Bide zaharrak beste modu batera funtzionatzen du, eta horregatik konparatu behar da ohituraz alde bat aukeratu beharrean. br_netfilter kargatu eta bridge-nf-call ezarpenak gaitzeak zubitutako IPv4 eta IPv6 trafikoa berriro agertzen du IP geruzako hooken bidez, iptables erregela arrunt batek azkenean parekatu ahal izan dezan. Fotogramek ez dute aldatzen; haiek zeharkatzen dituzten hooken multzoak aldatzen du, eta horrek esan nahi du host erregela bakoitzak ikusle berria duela orain.
Irakurri bide eraginkorra erregela bat gehitu aurretik
Hiru komandok zehazten dute non zauden: zubia zeri lotuta dagoen, modulu zaharra aktibo dagoen, eta zein kate dauden jada bridge familian. Exekutatu itzazu ezer idatzi aurretik, zeren erantzunak erabakitzen baitu bi diseinuetatik zein ari zaren zabaltzen. Urrats hau saltzeak erregela zuzen bat inork zeharkatzen ez duen kate batean amaitzeko modua da.
bridge link show
lsmod | grep br_netfilter
nft list ruleset | grep -A4 "chain forward"
Irteerak kasuak garbi bereizten ditu. Zubiaren azpian zerrendatutako atakek erakusten dute zein interfaze kommutatzen diren; lsmod emaitza huts batek esan nahi du zubitutako fotogramen IP geruzan ikusgarririk ez dagoela; bridge familiako forward kate bat existitzeak esan nahi du politika jabe bat badagoela jada eta zure erregela han dagokiola, eta ez bere kate berri batean.
Ondoren gehitu erraz berrirakurtzeko moduko erregela bat, kontagailu batekin eta epaia aldatu gabe, eta bidali fluxu adierazgarri bakarra zubitik zehar. Mugitzen den kontagailu batek frogatzen du fotograma erregelara iritsi zela. Hori da frogatzen duen guztia, beraz jarraitu ukatuako bidearekin ere, dena onartzen duen politika batek ere mugitzen den kontagailua sortzen baitu.
nft add rule bridge filter forward iifname "veth9a1" oifname "enp3s0" counter acceptNon aldatzen duen modulu zaharrak portaera
Bide zaharra funtzionatzen ari den zubi batean gaitzea ez da ikusgarritasuna gehitzearen ekintza neutroa. Aurretik zubitutako trafikoarentzat iristezinak ziren erregelak iristengarri bilakatzen dira, beste interfaze baterako idatzitako host erregelak barne, eta ip forward kateko drop politika lehenetsiak bat-batean aplikatu dakieke ukitu gabe pasatzen ziren fotogramei. Zubi horren bidez kudeatzen den host batean, emaitza kontsolik gabeko blokeoa da. Ez da hutsegite modu hipotetiko bat; zabaldu berri duzun bidetik iristen zaren makina batean hook multzo bat zabaltzearen ondorio arrunta da.
Segurtasun handiagoko segida familia zein den politika jabea erabakitzea da, erregelak han idaztea, eta berreskuratze bide independiente bat mantentzea edozein sysctl aldatu aurretik. Bi familiak erregelak badituzte, dokumentatu zein den autoritatea; gainjartzen diren bi politikak dira pakete bat leku batean onartu eta beste batean baztertua izateko modua, irakurtzeko fitxategi bakar bat ere gabe.
Isolamenduak berak diseinu osoa behar du oraindik. Iturburu bat helmuga batera baimenduta frogatzen du fluxu bat funtzionatzen duela soilik, eta baldintza normalean VM batek bere bizilagunetara edo hostera iritsi ezin izatea da. Ukoa erregelen kontagailuek garrantzi handiagoa dute onarpen erregelaren kontagailuak baino, onarpen kontagailua mugituko zela dagoeneko espero baitzenuen.
Azkenik, eduki host sarreraren kasua bereizita. Zubiaren beraren IPra zuzendutako trafikoa input-era iristen da, ez forward-era, eta forward-eko erregela batek ez du inoiz ikusiko, edozein familia aukeratu ere. Hiru kasu, bi familia, ikasgai bat: bideak erabakitzen du hooka, eta hookak erabakitzen du zure erregela existitzen den ala ez.