Aplikazio lokala, VPN araua: zergatik ez den inoiz pizten zure FORWARD katea
Makinako prozesu batek OUTPUT erabiltzen du, ez FORWARD. Aukeratu hooka izen-espazio egokian, eta gero erabaki marka bat edo bide arrunta nahikoa den.
VPN trafikoarentzako arau bat gehitzen duzu FORWARD katean, eskaera Linux makina beretik exekutatzen duzu, eta kontagailua zeroan geratzen da. Araua ziurrenik zuzena da. Paketeak ez zuen inoiz bide hori hartu, makinak berak sortutako eskaera ez baitu berak birbidaltzen. Paketearen bizitza sockettik kablera jarraitzeak azaltzen du zergatik, eta araua non kokatzen den.
Aurkitu non jaio zen paketea
Netfilterren hook ordenak hiru kasu bereizten ditu, eta horietako batek soilik dakar FORWARD:
| Origin | Path | Hook that sees it |
|---|---|---|
| Local process | OUTPUT then POSTROUTING | OUTPUT, POSTROUTING |
| Addressed to a local service | PREROUTING then INPUT | PREROUTING, INPUT |
| Received for another host | PREROUTING, FORWARD, POSTROUTING | FORWARD |
Aplikazio lokal bat OUTPUT bidean hasten da, nukleoak jada ezarri baitu paketea hemen sortzen dela eta inoiz ez dela birbidaltzeko hautagaia. Tunel bat sortzeak ez du sailkapen hori aldatzen; tunela paketeak irten dezakeen gailua da, irteera lokala transit bihurtzen duen etapa bat ez.
Bi pakete, istorio bat
Tunela martxan dagoenean, aplikazioaren barne-paketea eta kanpo-pakete zifratua objektu desberdinak dira. Barne-paketeak aplikazioak aukeratutako helmuga eta karga daramatza. Kanpo-paketeak zifratutako testua darama parearen helbidera eta portera, eta hori da fisikoki interfazea zeharkatzen duena.
Zure politikak horietako bat dakar, eta okerra aukeratzea ohiko arrazoia da arau bat ezer egiten ez duela emateko. Parearen kanpo-helbidearekin bat datorren arau batek tunel pakete guztiak berdin ikusten ditu, barruko aplikazioak zer egiten duen edozein dela ere. Barruko helmuga batekin bat datorren arauak axola zaizun trafikoa ikusten du, eta araua instalatu duzun hookera pakete hori iristen denean soilik piztuko da.
Izen-espazioek muga mugitzen dute
Edukiontzi batek zailagoa egiten du printzipioa aldatu gabe. Aplikazioaren eskaera edukiontziaren sareko izen-espazioaren barruko irteera lokala da. Ostalariak trafiko hori Ethernet interfaze birtual batean jasotzen du eta birbidal dezake, beraz ostalariko FORWARD arau bat esanguratsua izan daiteke, nahiz eta eskaera sortu zuen prozesuak inoiz ukitu ez zuen ostalariaren OUTPUT katea.
Hook bat aukeratu aurretik, zehaztu non bizi diren arau-multzoa eta tunela. Edukiontzi barruko tunela, ostalarian tunela edukiontzia haren bidez bideratuta, eta izen-espazio bereizi bateko tunela hiru topologia desberdin dira, arau-kokapen desberdinekin. Irakurri arauak gailua duen izen-espazioan, ez soilik lehenetsian.
Galdetu ea markarik behar duzun
Helburua helburu-prefixu bat tunelaren bidez bidaltzea bada, prefixu horrentzako bide bat nahikoa izan daiteke. Egiaztatu bide eraginkorrak lehenik, zerbitzariak bultzatutako guztia barne: birbideratutako lehenetsitako bide batek eraman nahi zenuen politika estua baino trafiko gehiago bidaltzen du VPN bidez, eta markatze kopuruak ez du emaitza asmoarekin bat egingo.
Sailkapena beharrezkoa da erabakia bide batek adieraz ezin dezakeen zerbaitean oinarritzen denean, hala nola iturburuan, erabiltzailean edo prozesuan. Jasotako trafikoarentzat, PREROUTINGeko markatzeak funtzionatzen du. Trafiko lokalarentzat, markatzea irteerako etapa batean gertatu behar da, marka ezarri ondoren bidekuntza-kontsulta berri bat has dezakeena. nftablesekin, hori route motako katea da irteerako hookean; irteerako iragazki-kate arruntak balioa ezarriko du eta bidea aldatu gabe utziko du.
iptablesekin, baliokidea mangle OUTPUT antolamenduan bizi da, eta baldintza bera da: bidekuntza-erabakia berrikusi behar da marka existitzen den ondoren. Gero, politika-arau batek marka kontsumitu behar du eta bide erabilgarria duen taula batera seinalatu. conntrack marka ezartzea hirugarren eragiketa bereizia da; balio bat gordetzen du fluxuan eta ez du berak balio hori uneko paketean jartzen bidekuntzak irakur dezan.
Egiaztatu kontsulta eta kontagailua elkarrekin
nft list ruleset
ip route get 198.51.100.25
ip route get 198.51.100.25 mark 0x1
Helbidea eta marka adibideak dira, eta bi bide-kontsultek galdera desberdinak erantzuten dituzte. Bigarrenak galdetzen du nukleoak zer egingo lukeen paketeak marka hori balu; ez du erakusten zure arau-multzoak bat esleitzen duenik. Hipotesi-proba gisa tratatu, ez politikak funtzionatzen duen frogatzat.
Gero, exekutatu eskaera kaltegabe bat eta begiratu bi gauza aldi berean: aukeratu duzun hookeko kontagailua eta paketeak benetan hartu zuen irteera. Kontagailua mugitzen bada eta paketea beste nonbaitetik irteten bada, marka edo taula oker daude. Bat ere mugitzen ez bada, paketea ez da hook horretara iristen, eta hurrengo galdera izen-espazioa edo bidea da.
Azkenik, mugatu proba mekanismoak adieraz dezakeenera. Helbide baterako bide bat ez da politika iraunkor bihurtzen helbideak aldatzen dituen zerbitzu batentzat. Lehenengo erabaki paketeen irismena, eta gero egiaztatu bidekuntza- eta markatze-diseinuak irismen horri euts diezaiokeen berriz konektatu ondoren.