Zergatik ezin dituen nftables-ek OpenVPNren bezeroen arteko trafikoa ikusi
Pareen arteko trafikoa VPN prozesuaren barruan entregatzen da, beraz birbidalketa-kontagailuak ez dira inoiz mugitzen. Hura kontatzeak nukleoaren bidea eta prozesuaren bidea aukeratzea eskatzen du.
Zerbitzari bateko bi bezerok fitxategiak trukatzen dituzte, transferentziak arrakasta du, eta tunelera zuzentzen duzun birbidalketa-arau bakoitzak zero pakete ematen ditu. Arauak ez daude hautsita eta katea ez dago leku okerrean. Pareen arteko birbidalketa gaituta, paketea zerbitzariaren prozesuaren barruan entregatzen da eta ostalariaren pila ez da inoiz bideratzaile bihurtzen, beraz nukleoaren suebakiak ez du ezer kontatzeko. Bereizketa hori ulertzeak erabakitzen du lasterbidea gordetzen duzun ala nukleoaren bidez bidea berreraikitzen duzun.
Jarraitu pakete bat zerbitzaritik zehar
Tunel bideratu batean, daemonak bezero bakoitzaren pakete deszifratua tunel-gailuari ematen dio. Hortik ostalariak bideratzen du, birbidalketa-kakoa exekutatzen da, eta tunel-gailuarekin bat datorren arau batek trafikoa konta dezake edo bota dezake. Hori da suebaki-adibide gehienek suposatzen duten bidea.
| Forwarding path | Who decides | What the host firewall sees |
|---|---|---|
| Kernel routing between clients | Host routing table and forward rules | Every inner packet, with interface names |
| Peer forwarding inside the server process | The VPN daemon's own peer table | Only the outer encrypted transport |
Lasterbideak ostalaria erdiko posiziotik kentzen du. Saio baten pakete deszifratua daemonaren barruan beste saio bati ematen zaio, eta barneko paketea ez da inoiz tunel-gailuan igortzen ezta ostalariak bideratzen ere. Kapsulatutako trafikoak oraindik interfaze fisikoa zeharkatzen du, beraz kanpoko kapturak lanpetuta dirudi barneko arauak isilik dauden bitartean. Tunel-gailuan hartutako kapturak ez du ezer erakusten, han transferentzia ikustea espero duen edonor harrituta utziz. Asimetria hori da lasterbidea daemonetik kanpotik ezagutzeko modurik azkarrena.
Zein bide egin zen erabakitzen duen kontagailu-proba
Erantsi kontagailu bat aplikatu beharko lukeen arauari, exekutatu transferentzia arau horrek blokeatu beharko lituzkeen bi bezeroren artean, eta irakurri kontagailua ondoren.
sudo nft list ruleset
sudo nft add rule inet filter forward iifname "tun0" oifname "tun0" counter accept
sudo nft list chain inet filter forward
Transferentziak arrakasta badu eta kontagailuak zeroan jarraitzen badu, nukleoak ez zituen pakete horiek inoiz kudeatu, eta arauak editatzeak ez du hori aldatuko. Errepikatu proba bera zerbitzariaren beraren zerbitzu baten aurka, fluxu horrek ostalariaren pila zeharkatzen duelako eta haren kontagailua mugitzen delako. Bi emaitzak alderatzeak ematen du erantzuna.
Bi xehetasunek okerreko irakurketa eragozten dute. Kate-etiketa batean idatzitako interfaze-izen batek ez du berez ezer iragazten, bat-etortzea arauen barneko interfaze-eremuetan gertatzen delako. Eta 2. geruzako zubi-diseinuak beste modu batera jokatzen du: han bezeroek difusio-domeinu bat partekatzen dute, beraz pareen aurkikuntza espero da, ez bideratze-hutsegitea.
Kommutadorea ez da sarbide-zerrenda bat
Hau da arratsalde bat kostatzen duen zatia. Pareen arteko birbidalketa piztu edo itzali ezarpen bakarra da, eta piztuta dagoen bitartean daemona da birbidalketa-puntu bakarra. Ostalariaren suebakiak ezin du adierazi nork nori hel diezaiokeen, eta bezero bakoitzeko fitxategiek ez dute kommutadorea politika-matrize bihurtzen.
Pare bakoitzeko arauak behar badituzu, aukerak lasterbideari uko egitea eta kontrol gisa ostalariaren suebakiari uko egitea dira. Hura itzaltzeak nukleoaren birbidalketa berrezartzen du, eta horrek zerbitzarian IP birbidalketa gaitzea eta nahi dituzun fluxuetarako arau esplizituak eskatzen ditu. Piztuta edukitzeak politika daemonaren konfigurazioan bizi dela esan nahi du, eta hori praktikan pare guztiak edo bat ere ez da.
Bere adierazpen-putzu eta ataka propioak dituzten zerbitzari-prozesu bereiziak dira tarteko bide erabilgarria. Prozesu bakoitzak sarbide-erabaki bat zehazki darama, beraz bi taldek arau desberdinak izan ditzakete politika-matrizerik gabe. Ostalariak putzuen artean bidera dezake hori asmoa denean, eta orduan suebakiak fluxu horiek ikusten ditu ostalaria zeharkatzen dutelako. Kostua ataka gehigarriak, ziurtagiri gehigarriak eta talde bakoitzeko profil bat dira.
Birbidalketa-puntua aukeratzea
Aukeratu nukleoaren birbidalketa suebakia politika-motorra denean, fluxu bakoitzeko erregistroa behar duzunean edo kontabilitatea garrantzitsua denean. Kostua ostalariaren pilaren bidezko emaria eta mantentzeko arau gehiago dira. Onura da lehendik dagoen tresna orok, kontagailuetatik fluxu-esportatzaileetara, trafikoa berriro deskribatzen duela. Zerbitzari txiki batean kostu hori ikusezina da; errele lanpetuta batean ez.
Aukeratu prozesu barneko birbidalketa pareen arteko trafikoa guztiz baimenduta edo guztiz debekatuta dagoenean eta zerbitzaria horretarako dimentsionatuta dagoenean. Kostua da kontagailuek, ilara-diziplineek eta konexioen jarraipenak barneko fluxuak deskribatzeari uzten diotela; hori onargarria da geroago inork haiengan fidatzen ez badu.
Edozein aukera eginda ere, idatzi suebaki-arauen ondoan. Pareen arteko trafikoa baimendu behar duela dirudien arau-multzo batek, daemonak hala ere erabakitzen duen bitartean, huts egindako transferentzia bat arazten duen hurrengoa engainatzen du. Arauak soilik irakurtzen dituen edonork nukleoa dela atea pentsatuko du.
Zer egiaztatu arauak aldatu aurretik
Irakurri zerbitzariak benetan kargatu duen konfigurazioa, editatu zenuela gogoratzen duzun fitxategia ez, eta egiaztatu pareen aukera dagoen. Aldatu baduzu, ziurtatu zerbitzuak berriz kargatu duela, eta ez soilik diskoan fitxategi bat berridatzi duela.
Ondoren errepikatu proba bezero batetik zerbitzarirako fluxu batekin, arauak bat egiten duela frogatzeko, eta egiaztatu bidalitako bideak, bide falta bat bezeroaren aldetik suebaki-blokeo bat bezalakoa baita. Aldatu arauen ordena erabakia zein birbidalketa-puntuk duen jakin ondoren soilik.