Mae switshis lladd yn methu i gyfeiriad nad yw pobl yn ei ddisgwyl: cawsant eu hadeiladu i rwystro traffig tra mae’r twmnel i lawr, ac mae’r pecynnau sy’n adeiladu’r twmnel eu hunain yn draffig. Dyna’r gwall cyfan. Mae set o reolau sy’n gollwng popeth nad yw’n gadael drwy’r twmnel hefyd yn gollwng yr ysgwyd llaw a fyddai’n ei godi, felly mae’r cleient yn ceisio eto mewn dolen ac mae’r gwall yn perthyn i ba bynnag gam y gwiriwyd yn gyntaf. Cyn ehangu mur tan, darganfyddwch pa un o’r tri cham a wrthodir: y chwiliad enw, y pecyn allanol at y cymar, neu’r ateb sy’n dychwelyd.

Sut mae’r twmnel a’i drafnidiaeth ei hun yn dibynnu ar ei gilydd

Darllenwch gleient VPN fel dau gyflwr rhwydwaith sy’n rhannu un llwybr soced. Cyn bod y twmnel yn bodoli, mae’r cleient yn agor soced ar yr addasydd ffisegol ac yn anfon ffrâmau wedi’u hamgryptio at gyfeiriad a phorth y cymar. Dim ond ar ôl i’r cyfnewid hwnnw lwyddo y mae’n creu’r ddyfais twmnel ac yn gosod llwybrau. Mae switsh lladd yn bolisi am yr ail gyflwr, wedi’i ysgrifennu mor eang ei fod yn berthnasol i’r ddau.

Rheolau sy’n seiliedig ar ryngwyneb yw’r ffurf arferol: derbyniwch yr hyn sy’n gadael drwy tun0 neu wg0, gollwng gweddill y llwybr allbwn. Ni all y ffurfliad hwnnw eithrio cysylltiad y cleient ei hun â’r gweinydd, felly mae gweithrediad cywir yn ychwanegu’r eithriad hwnnw’n benodol, ac felly hefyd y byddwch chi wrth ysgrifennu rheolau â llaw. Mae rheolau fesul rhaglen ar Windows a macOS yn osgoi rhywfaint o hyn drwy baru proses yn lle rhyngwyneb, ond mae’r broses yn dal i orfod mynd allan cyn bod y twmnel yn bodoli.

Tri cham, yn y drefn y maent yn digwydd

Y cam cyntaf yw datrys. Pan fo’r proffil yn cadw enw gwesteiwr yn lle cyfeiriad llythrennol, mae ar y cleient angen ateb DNS cyn iddo anfon unrhyw beth. Mae proffil sy’n cyfeirio DNS at ddatryswr y twmnel yn creu pengaead: dim ond drwy’r twmnel y dylai’r chwiliad ei alluogi y gellir cyrraedd y datryswr. Mae datrys y tu allan i’r twmnel, neu binio’r pwynt diwedd i gyfeiriad, yn dileu’r amwysedd.

Yr ail gam yw’r pecyn allanol, sy’n gorfod goroesi llwybro ac yna’r mur tan, yn y drefn honno. Mae wireguard-tools yn trin hanner llwybro hyn ar gyfer WireGuard drwy farcio ei becynnau ei hun ac ychwanegu rheol polisi fel eu bod yn hepgor y llwybr diofyn a osododd newydd; tudalen llyfr llaw wg-quick yn disgrifio’r rheol honno a’r tabl y mae’n ei ddefnyddio. Ailadeiladwch y llwybro hwnnw â llaw, neu gadewch i ail offeryn ailysgrifennu’r rheolau, a gellir anfon y pecynnau wedi’u marcio yn ôl i’r twmnel y maent i fod i’w greu.

Y trydydd cam yw’r llwybr dychwelyd. Nid yw ysgwyd llaw heb ateb yn brawf o ollwng allan; mae yr un mor gyson â rheol fewnbwn gweinydd neu ddyfais NAT a anghofiodd y mapio. Gwahanwch y rhain cyn cyffwrdd â’r cleient.

What you seeStageWhere to look
The client log repeats a resolve step and no packets appear on the wire1, name lookupResolver path while the tunnel is down
The send counter on the physical adapter stays flat2, routingPeer route and policy rules
The send counter rises and a firewall drop counter rises2, firewallRule order, mark, and interface match
Packets leave and nothing comes back3, return pathServer input rules, NAT, listening port

Mae cleientiaid yn cofnodi’r symptom y maent yn ei ganfod, nid y cam a fethodd, felly mae’r tabl fel arfer yn gyflymach na’r log.

Mae cyfrifwyr yn penderfynu’n gyflymach na logiau

Ar Linux, nft list ruleset neu iptables -vnL OUTPUT yn argraffu cyfrifydd pecynnau fesul rheol. Cysylltwch unwaith, gadewch iddo fethu, yna darllenwch y cyfrifwyr eto. Rheol y symudodd ei chyfrifydd yw rheol a darodd yr ysgwyd llaw; os na symudodd unrhyw beth yn unman, ni chyrhaeddodd y pecyn y mur tan erioed. Rwyf wedi gweld set o reolau yn gollwng ei hysgwyd llaw ei hun, a dim ond y cyfrifwyr a ddywedodd hynny.

I wahanu na chyrhaeddodd y mur tan erioed oddi wrth na adawodd y gwesteiwr erioed, gwyliwch y rhyngwyneb ei hun. ip -s link show dev wlan0 yn adrodd am becynnau a anfonwyd, a tcpdump -ni wlan0 udp port 51820 yn dangos y ffrâmau. Os yw’n aros yn wastad tra mae’r cleient yn ceisio eto, mae’r nam yn uwch na netfilter: llwybr cymar ar goll, rheol polisi’n pwyntio i ddyfais nad yw’n bodoli eto, neu wall soced y mae’r cleient yn ei lyncu.

Profwch eithriadau yn erbyn cyfeiriadau dogfennaeth fel 203.0.113.10, fel na all slip brofi gwesteiwr rhywun arall.

Mae eithriad pwynt diwedd hen ffasiwn yn darllen fel methiant gweinydd

Mae’r fersiwn fwyaf twyllodrus yn ymddangos ar ôl i gyfeiriad y cymar newid: mae gwasanaeth cyfeiriad deinamig wedi’i symud, adeiladwyd y gwesteiwr o’r newydd, neu mae cyfeiriad allbwn eich rhwydwaith yn wahanol. Mae’r eithriad yn dal i enwi’r hen gyfeiriad, felly mae pecynnau i’r un newydd yn taro’r rheol ollwng. Roedd yr un cyfluniad yn gweithio ddoe, a dyna pam mae pobl yn dechrau drwy ddatrys problemau’r gweinydd.

Nid yw enw gwesteiwr y tu mewn i reol mur tan yn eich achub. Yn nftables mae’r enw’n cael ei ddatrys pan lwythir y set reolau, felly mae’n pinio pa gyfeiriad bynnag a oedd yn bodoli’r funud honno ac yn mynd yn hen fel un llythrennol. Yr ateb parhaol yw diweddaru’r eithriad pan fo’r pwynt diwedd yn newid a’i gadw’n gul: un cyfeiriad cymar, un porth trafnidiaeth. Mae ystod sy’n ddigon eang i oroesi newid cyfeiriad hefyd yn ddigon eang i ollwng traffig diberygl.

Pan fo’r switsh lladd yn rhedeg ar westeiwr y gweinydd

Mae’r un ddibyniaeth yn bodoli ar y pen arall, ac mae’n haws ei cholli yno. Os yw’r peiriant sy’n gweithredu fel eich gweinydd VPN hefyd yn rhedeg cleient bwrdd gwaith gyda switsh lladd, neu broffil mur tan wedi’i gopïo o liniadur, mae ei reolau gollwng yn berthnasol i’r gwasanaeth sy’n terfynu’r twmneli. Mae atebion i ysgwyd llaw cleient yn cael eu gollwng, felly mae pob cleient yn methu cysylltu tra mae’r gweinydd yn edrych yn iach ac mae ei ryngwyneb twmnel yn eistedd heb ei ddefnyddio.

Mae ar y gwesteiwr hwnnw angen tri derbyniad cul o flaen y gollwng: y porth gwrando ar y rhyngwyneb ffisegol, y rhyngwyneb twmnel ar gyfer traffig wedi’i ddatgryptio, a throi ymlaen o’r twmnel tuag at beth bynnag y mae’r cleientiaid i fod i’w gyrraedd. Darllenwch y set sydd wedi’i gosod gyda nft list ruleset, iptables -S, neu pfctl -sr cyn newid unrhyw beth, a chofiwch fod set reolau wedi’i chadw yn goroesi ailgychwyn, felly mae camgymeriad yno’n goroesi’r broses a’i gwnaeth.

Trefn adfer sy’n cadw’r peiriant yn gaeëdig

Gweithiwch allan o’r proffil. Darllenwch gyfeiriad a phorth y cymar y mae’r cleient yn eu defnyddio, cadarnhewch fod yr enw gwesteiwr yn datrys heb y twmnel, yna ychwanegwch un eithriad ar gyfer y cyfeiriad a’r porth hwnnw ar yr addasydd ffisegol yn unig. Ailgysylltwch a gwyliwch y cyfrifydd anfon; ysgwyd llaw wedi’i gwblhau yw’r arwydd bod yr ail gam wedi’i drwsio.

Gadewch weddill y polisi gollwng yn ei le wrth brofi. Gwiriad diniwed yw ceisio cysylltiad â chyfeiriad dogfennaeth diberygl a chadarnhau ei fod yn dal i ddod i ben, sy’n dangos bod y switsh lladd yn gweithio yn hytrach na chael ei ddiffodd. Tynhau’r eithriad unwaith y bydd y twmnel yn sefydlog, a pheidiwch â gadael caniatâd parhaol i bopeth ar gyfer deuaidd y cleient am ei fod yn gyfleus.

Os daw’r twmnel i fyny ac mae’r rhaglen yn dal i fethu, nid y cam hwn yw’r camau sy’n weddill: mae DNS hollt, MTU, a llwybro fesul rhaglen bob un yn cynhyrchu twmnel cysylltiedig â thraffig wedi torri, ac mae gan bob un wiriad cyntaf gwahanol.

Erthyglau cysylltiedig