Pi fel cleient VPN: un rheolwr neu sgript eich hun?
Cymharu proffil NetworkManager â sgript cleient wedi’i wneud â llaw ar Raspberry Pi, gan gynnwys twnnel llawn, DNS, IPv6 ac ymddygiad pan fydd y twnnel yn cwympo.
Mae Raspberry Pi nad oes angen iddo amddiffyn ond ei draffig allan ei hun yn cael dau ddyluniad realistig: gadael i’r rheolwr rhwydwaith berchen ar y twnnel, neu gadw sgript sy’n berchen arno. Gall y ddau gludo traffig. Maent yn methu mewn gwahanol leoedd, a’r methiant y gallwch ei ddiagnosio o bell am ddau o’r gloch y bore yw’r un sy’n werth ei ddewis. Cymharwch nhw ar berchnogaeth, ar yr hyn y mae twnnel llawn yn ei olygu unwaith y bydd IPv6 a DNS yn rhan o’r darlun, ac ar yr hyn sy’n digwydd y foment y bydd y twnnel yn cwympo.
Dau berchennog ar un twnnel
Dyluniad A yw proffil y tu mewn i reolwr rhwydwaith y system: proffil OpenVPN wedi’i fewnforio neu gysylltiad WireGuard brodorol, a actifedir wrth gychwyn gan yr un gwasanaeth sy’n codi Ethernet a Wi-Fi. Dyluniad B yw uned o’ch un eich hun sy’n rhedeg y cleient yn uniongyrchol, yn golygu ffurfweddiad y datryswr ac yn gosod ei lwybrau a’i reolau wal dân ei hun. Mae’r ddau yn ddyluniadau dilys; maent yn wahanol o ran pwy gaiff newid y tabl llwybro.
Mae’r methiannau’n wahanol oherwydd bod y perchnogion yn wahanol. Gydag A, mae proffil nad yw’n actifadu yn gadael y rhyngwyneb i fyny a’r twnnel i lawr, ac mae logiau’r rheolwr yn dweud pam. Gyda B, mae sgript sy’n llwyddo’n hanner yn gadael llwybrau ar ôl sy’n goroesi’r broses a’u creodd. Rhedeg y ddau yw’r canlyniad gwaethaf: dwy broses yn ysgrifennu’r llwybr diofyn, dau olygiad o’r datryswr yn rasio wrth gychwyn, a dwy set o gyfrinachau i’w cylchdroi.
Dewiswch un perchennog fesul twnnel ac analluogwch y llall cyn i chi brofi unrhyw beth. Mae dau berchennog hefyd yn golygu dau le i edrych pan fydd y twnnel i fyny ac yn ddim yn datrys. Mae’r un rheol honno’n atal y rhan fwyaf o’r cyflyrau dryslyd a ddisgrifir yn nhrafodaethau Pi VPN.
Yr hyn y mae mewnforio yn ei greu, ac nad yw’n ei greu
Ar Raspberry Pi OS Bookworm ac yn ddiweddarach yr offeryn ffurfweddu rhwydwaith diofyn yw NetworkManager, felly proffil yw’r cartref naturiol i dwnnel cleient. Mae mewnforio angen y ategyn cyfatebol wedi’i osod; heb hynny mae’r mewnforio’n methu â neges am fath cysylltiad heb ei gefnogi, sef y signal gonest i stopio a gosod yr ategyn.
nmcli connection import type openvpn file ./provider.ovpn
nmcli connection show
nmcli --ask connection up id provider-name
Mae mewnforio yn storio proffil. Nid yw’n profi bod yr ochr arall yn gyrraedd, ac nid yw’n gwarantu bod pob cyfarwyddeb yn y ffeil wedi goroesi’r trosiad. Darllenwch y cysylltiad sy’n deillio o hynny a gwirio’r rhannau sy’n cario hunaniaeth ac ymddiriedaeth: y dystysgrif, y gwesteiwr o bell a’r porthladd, ac a ofynnir am gyfrinair neu a’i storio.
Mae actifadu gyda --ask yn cadw ymadrodd cyfrinair allan o hanes y plisgyn ar flwch a rennir. Ar gyfer Pi heb oruchwyliaeth byddwch yn y pen draw am i’r proffil godi wrth gychwyn, sy’n benderfyniad ar wahân i’w godi unwaith â llaw.
Twnnel llawn, wedi’i gymharu ar draws y ddau ddyluniad
Mae twnnel llawn yn haeriad am lwybrau, nid am fwriad, ac mae’r ddau ddyluniad yn ei fynegi’n wahanol. Mae’r dull proffil yn gofyn i’r rheolwr osod llwybr diofyn a’i osodiadau datryswr; mae’r dull sgript yn gwneud yr hyn a ddywed y sgript, gan gynnwys dim. Nid yw’r un dyluniad yn gorchuddio IPv6 oni bai y dywedir wrtho, a bydd llwybr diofyn IPv6 heb ei gyffwrdd yn cludo traffig y tu allan i’r twnnel yn fodlon tra bod IPv4 yn edrych yn berffaith.
ip -4 route get 198.51.100.23
ip -6 route show default
resolvectl query example.org
Defnyddiwch gyfeiriad dogfennaeth ar gyfer y chwiliad llwybr a rhowch westeiwr y mae gennych ganiatâd i’w brofi yn ei le. Mae’r gorchymyn cyntaf yn dangos pa ryngwyneb y byddai’r Pi yn ei ddefnyddio ar gyfer cyrchfan cyffredin; mae’r ail yn dangos a oes llwybr diofyn IPv6 yn bodoli o hyd; mae’r trydydd yn profi pa ddatryswr a atebodd. Darllenwch y tri cyn credu unrhyw haeriad am dwnnel llawn.
Os yw cyfarwyddiadau’r darparwr yn addo twnnel llawn ond bod y llwybr diofyn IPv6 yn goroesi, mae’r Pi yn gollwng. Analluogwch IPv6 ar y cyswllt i fyny neu ofynnwch i’r proffil ei hawlio, a phenderfynwch yn fwriadol yn lle darganfod hynny’n ddiweddarach.
Methiant agored yn erbyn methiant caeedig
Pan fydd y twnnel yn cwympo, mae tabl llwybro sy’n colli ei lwybr diofyn yn syml yn dychwelyd i’r cyswllt i fyny corfforol, ac mae traffig yn parhau’n agored. Dyna fethiant agored, a dyna ymddygiad diofyn y ddau ddyluniad oni bai bod rhywbeth yn ei atal. Mae’r rhan fwyaf o bobl yn darganfod hyn wythnosau’n ddiweddarach wrth ddarllen log wal dân.
Mae methiant caeedig yn costio mynediad o bell i chi pan fydd y twnnel i lawr, felly mae angen eithriad bwriadol ar gyfer y llwybr rheoli. Un ffordd yw rheol sy’n caniatáu dim ond cyfeiriad y cymar VPN y tu allan i’r twnnel:
sudo nft add table inet vpnkill
sudo nft 'add chain inet vpnkill out { type filter hook output priority 0; policy accept; }'
sudo nft add rule inet vpnkill out oifname != "tun0" ip daddr != 203.0.113.24 reject
Cymharwch y gost weithredol yn onest. Yn aml ni all proffil fynegi’r rheol hon, felly mae methiant caeedig yn eich gwthio tuag at y dyluniad sgript neu tuag at uned fach sy’n gosod y rheol yn annibynnol ar y twnnel. Beth bynnag, cofnodwch y gwrthodiadau am wythnos: mae gwrthodiad distaw yn edrych yn union yr un fath â gwasanaeth wedi torri, a byddwch am y cyfrifydd pan fydd defnyddiwr yn adrodd bod un safle wedi stopio llwytho.
Dewis ar gyfer Pi heb sgrin
Os yw’r ddelwedd eisoes yn rhedeg NetworkManager, nad oes angen unrhyw beth egsotig ar y twnnel, a’ch bod am iddo ddilyn y cyswllt i fyny yn awtomatig, cymerwch y proffil. Os oes angen llwybro polisi arnoch, sawl twnnel a ddewisir fesul cyrchfan, neu reol methiant caeedig sy’n rhaid bodoli cyn i’r twnnel godi, cymerwch y sgript a pherchen ar bob rhan ohoni, gan gynnwys trefn cychwyn a glanhau. Mae cymysgu’r ddau ddyluniad yn costio mwy na’r naill na’r llall ar ei ben ei hun.
Mae mudo rhyngddynt yn bennaf yn fater o drefn: analluogwch yr hen berchennog, cadarnhewch nad oes llwybr nac unrhyw gofnod datryswr hen wedi goroesi, yna galluogwch yr un newydd ac ailgychwyn ddwywaith. Gall un ailgychwyn guddio ras y mae ail yn ei ddatgelu. Gorffennwch drwy brofi’r Pi yn hytrach na’r twnnel: datryswch enw, estynnwch rywbeth dros IPv4, estynnwch dros IPv6 os ydych wedi’i gadw, yna gollyngwch y twnnel a chadarnhau bod yr ymddygiad a ddewiswyd gennych yn digwydd go iawn. Mae rhyngwyneb yn ip link yn ddechrau’r prawf, nid y diwedd.