Heel-LAN OpenVPN-kliënt op OpenWrt: ’n werkende volgorde
Eienaarskap van die koppelvlak, sonebeleid, masquerade en tabelle per SSID is vier aparte take. Doen dit in volgorde, dan hou ’n routerwye tonnel op om teen jou te veg.
Vier onafhanklike take plaas ’n router se hele LAN agter een tonnel. Die tonneltoestel het ’n eienaar nodig, ’n firewall-sone, ’n vertaalteiken na die opstroom toe, en, as sommige kliënte van die VPN af moet bly, roetering volgens bronadres. ’n Tonnel wat verbind terwyl niks deurgaan nie, het gewoonlik een van daardie vier ontbreek. Om in afhanklikheidsorde te werk, beteken dat ’n mislukking aan die einde by die stap hoort wat jy pas verander het. Elke stap hieronder eindig met iets wat jy kan waarneem, wat keer dat die volgende een ’n raaiskoot is.
Bepaal wat die tonnel deel
Die router wat Wi-Fi en DHCP uitdeel, kan die kliënt self laat loop. Dit plaas elke gekoppelde toestel agter die tonnel sonder enige opstelling per toestel, en dit is die reëling wat die meeste klein persele wil hê. Dit is ook die een met die wydste impak wanneer die tonnel val, want elke toestel verloor sy pad gelyktydig. Niks op die LAN behou ’n werkende roete na buite nie.
’n Tweede router agter die eerste, wat die kliënt met sy eie subnet laat loop, beperk die tonnel tot sy eie toestelle. Dit is makliker om te verwyder en makliker om te verduidelik aan wie dit ook al oorneem. Die prys is bereikbaarheid tussen die twee kante sonder ’n roete of ’n poortaanstuur.
Maak in elk geval die LAN-subnette onderskeidend. Identiese reekse laat een kant direk gekoppel lyk, en die gevolglike swart gat lyk ure lank soos ’n VPN-fout.
Gee die tonnel ’n eienaar
Verklaar die tonnel as ’n netwerkkoppelvlak met ’n naam, ’n toestel en geen eie protokol nie. Die netwerkstelsel skep en bestuur dan die toestel, en alles stroomaf verwys na die koppelvlak volgens naam eerder as volgens toestel. Dit is wat die sone in staat stel om dit te vind.
Moet nie dieselfde toestel op twee plekke skep nie. ’n Handgemaakte tonnel langs ’n verklaarde koppelvlak lewer ’n toestel wat bestaan maar nie in ’n sone is nie, of een wat by herlaai verdwyn. Albei lyk of die kliënt gefaal het, en nie een lewer ’n fout wat die werklike oorsaak noem nie. Kies die verklarende pad en verwyder die handmatige een.
Hou die naam identies in die netwerk-, firewall- en VPN-konfigurasie. Die sone lys netwerke volgens naam, so ’n tikfout laat die tonnel buite elke sone terwyl die koppelvlak self gesond lyk. ’n Gesonde koppelvlak sonder beleid is die moeilikste toestand om raak te sien.
Soneer dit, stuur dan daarin aan
’n Firewall-sone is waar beleid woon: input, output, forward en masquerade. ’n Tonnel in geen sone nie word deur verstekke beheer wat jy nie gekies het nie, wat selde is wat ’n routerkliënt nodig het. Die blokke hieronder verklaar die koppelvlak, plaas dit in ’n sone en laat LAN-verkeer in daardie sone toe.
config interface 'vpn'
option device 'tun0'
option proto 'none'
config zone
option name 'vpn'
list network 'vpn'
option input 'REJECT'
option output 'ACCEPT'
option forward 'REJECT'
option masq '1'
config forwarding
option src 'lan'
option dest 'vpn'
Op weergawes ouer as 21.02 word dieselfde koppelvlakreël as option ifname geskryf, so kyk watter vorm die geïnstalleerde firmware ontleed voordat jy dit plak. Die aanstuurblok is die toestemming wat LAN-verkeer hoegenaamd van die tonnel laat gebruik maak. Sonder dit is die toestel op, is die kliënt gekoppel, en bereik geen LAN-gasheer die tonnel nie. Dit is die mees algemene verslag van gekoppel maar geen internet by routerkliënte.
Masquerade op die VPN-sone vou elke LAN-adres in die router se tonneladres saam voordat die pakket vertrek. Dit verwyder die behoefte aan ’n terugroete na jou subnet aan die ander kant.
As die ander kant reeds jou LAN roeteer, hou die afskakel van masquerade bronadresse sigbaar en maak dit logboeke per kliënt betekenisvol. Kies een en skryf neer watter een, want die twee keuses lewer later verskillende ondersteuningsvrae. Die verwydering van die verstek LAN-na-WAN-aanstuur is ’n aparte besluit met sy eie gevolg. Neem dit weg en die router se eie internettoegang gaan daarmee saam.
Noem die werklike opstroom in NAT
Op firmware waar die vertaalreël met die hand geskryf word, is die uitgaankoppelvlak die veld wat verkeerd gaan. ’n Reël wat vlan2 noem, doen niks wanneer die sessie op ppp0 eindig nie. ’n Reël sonder enige koppelvlak kan verkeer vertaal wat privaat moes gebly het. Nie een van die foute kondig homself aan nie, want die tonnel bly werk.
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
Vervang ppp0 in daardie reël met die koppelvlak uit ip route of die lys van lopende koppelvlakke, en kyk dan na die teller terwyl ’n LAN-gasheer ’n bladsy laai. Op ’n router met een verskaffer is een masquerade-reël vir die opstroom gewoonlik genoeg. ’n Tweede reël vir die tonnelkoppelvlak is nie ’n plaasvervanger vir die eerste nie.
Voeg dan die kliëntopsies by wat bepaal wat die tonnel binnegaan. ’n redirect-gateway-direktief stuur die kliënt se internetverkeer deur die VPN, en sonder dit dra die tonnel net die roetes wat die bediener stoot. Kyk na die resulterende roetetabel voordat jy aan DNS raak.
Splits die Wi-Fi met ’n tweede tabel
Een roetetabel kan nie twee verstekke hou nie. ’n Tweede SSID wat die tonnel moet omseil, het dus sy eie subnet en sy eie tabel nodig. Wys die getonnelde SSID sy eie reeks toe en roeteer dan net daardie reeks in die tonnel in met ’n reël wat die tabel kies.
Beleidsroetering-pakkette op OpenWrt druk presies daardie kombinasie uit. Dit werk ook met die hand, met ’n bronreël en ’n tabel waarvan die verstek na die tonneltoestel wys.
Kontroleer die splitsing van albei netwerke af. ’n Kliënt op die getonnelde SSID moet die VPN se uitgangsadres wys, en ’n kliënt op die gewone SSID moet die verskaffer s’n wys. Wanneer albei dieselfde lyk, pas die reël die verkeerde bron of die tabel word nooit geraadpleeg nie. Toets ook ná ’n herverbinding, want ’n reël wat van die koppelvlaknaam afhang, breek wanneer die toestel hernommer word.
Verdenk die klok en die toestelvlag
Die persist-tun-vlag laat die tonneltoestel oor herstarte heen in plek. Dit pas ’n bediener en verwar ’n kliënt wie se toestand van nuuts af opgebou moet word. Verwyder dit terwyl jy ’n routerkliënt ontfout, want ’n toestel wat ’n mislukte onderhandeling oorleef, verberg watter stap werklik gebreek het. Sit dit terug sodra die kliënt betroubaar koppel, en nie vroeër nie.
Die klok is die ander stil mislukking. ’n Router sonder ’n batterygedrewe klok begin by die epog, wat beteken sertifikaatkontroles misluk totdat NTP bykom. Vergelyk die logtydstempels met die werklike tyd voordat jy aan ’n sertifikaat raak, want ’n kliënt wat ’n minuut ná die opstart koppel, wag gewoonlik op tydsinchronisasie.