OpenVPN-klient for heile LAN-et på OpenWrt: ein arbeidsrekkjefølgje
Eigarskap til grensesnittet, sone-policy, masquerade og tabellar per SSID er fire separate jobbar. Gjer dei i rekkjefølgje, og tunnelen som dekkjer heile rutaren sluttar å kjempe mot deg.
Fire uavhengige jobbar set heile LAN-et til ein rutar bak ein tunnel. Tunneleininga treng ein eigar, ei brannmursone, eit omsetjingsmål mot opplenka og, om nokre klientar må halde seg utanfor VPN-en, ruting etter kjeldeadresse. Ein tunnel som koplar til medan ingenting går gjennom, manglar vanlegvis ein av dei fire. Å arbeide i avhengigheitsrekkjefølgje betyr at ein feil på slutten høyrer til trinnet du nettopp endra. Kvart trinn nedanfor sluttar med noko du kan sjå, og det held det neste frå å bli ei gjetting.
Avgjer kva som deler tunnelen
Rutaren som deler ut Wi-Fi og DHCP kan køyre klienten sjølv. Det set kvar tilkopla eining bak tunnelen utan oppsett per eining, og det er ordninga dei fleste små anlegg vil ha. Det er òg den med størst skadeomfang når tunnelen fell, fordi kvar eining mistar ruta si samstundes. Ingenting på LAN-et held på ein fungerande veg ut.
Ein andre rutar bak den første, som køyrer klienten med sitt eige subnett, grensar tunnelen til sine eigne einingar. Han er lettare å fjerna og lettare å forklara for den som arvar han. Prisen er nåbarheit mellom dei to sidene utan ei rute eller ei portvideresending.
Same kva, gjer LAN-subnetta ulike. Identiske område får den eine sida til å sjå direkte tilkopla ut, og det resulterande svarte holet blir lese som ein VPN-feil i timar.
Gi tunnelen ein eigar
Erklær tunnelen som eit nettverksgrensesnitt med eit namn, ei eining og ingen eigen protokoll. Nettverkssystemet opprettar og administrerer då eininga, og alt nedstraums viser til grensesnittet ved namn i staden for ved eining. Det er det som lèt sona finna han.
Ikkje opprett same eining på to stader. Ein handlaga tunnel ved sida av eit erklært grensesnitt gir ei eining som finst, men ikkje er i ei sone, eller ei som forsvinn ved omlasting. Begge ser ut som klienten feila, og ingen av dei gir ein feil som namngir den verkelege årsaka. Vel den deklarative vegen og slett den manuelle.
Hald namnet identisk i nettverks-, brannmur- og VPN-konfigurasjonen. Sona listar nettverk ved namn, så ein skrivefeil lèt tunnelen stå utanfor kvar sone medan grensesnittet sjølv ser friskt ut. Eit friskt grensesnitt utan policy er den vanskelegaste tilstanden å oppdaga.
Set han i ei sone, og videresend så inn i henne
Ei brannmursone er der policyen bur: input, output, forward og masquerade. Ein tunnel som ikkje er i noka sone, blir styrt av standardverdiar du ikkje valde, og det er sjeldan det ein rutarklient treng. Blokkene nedanfor erklærer grensesnittet, plasserer det i ei sone og lèt LAN-trafikk koma inn i den sona.
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'
På utgåver eldre enn 21.02 blir same grensesnittlinja skriven som option ifname, så sjekk kva form den installerte fastvaren tolkar før du limer inn. Videresendingsblokka er løyvet som lèt LAN-trafikk bruka tunnelen i det heile. Utan henne er eininga oppe, klienten tilkopla, og ingen LAN-vert når tunnelen. Det er den vanlegaste rapporten om tilkopla men utan internett på rutarklientar.
Masquerade på VPN-sona kollapsar kvar LAN-adresse til tunneladressa til rutaren før pakken forlèt. Det fjernar trongen for ei returrute til subnettet ditt på den andre sida.
Om den andre sida alt rutar LAN-et ditt, held avslege masquerade kjeldeadressene synlege og gjer loggar per klient meiningsfulle. Vel éin og skriv ned kven, fordi dei to vala gir ulike støttespørsmål seinare. Å fjerna standardvideresendinga frå LAN til WAN er ei separat avgjerd med si eiga følgje. Tek du henne bort, forsvinn rutaren sin eigen internettilgang med henne.
Namngi den verkelege opplenka i NAT
På fastvare der omsetjingsregelen er handskriven, er det utgåande grensesnitt feltet som går gale. Ein regel som namngir vlan2 gjer ingenting når sesjonen sluttar på ppp0. Ein regel utan noko grensesnitt kan omsetja trafikk som burde ha vore privat. Ingen av feila kunngjer seg sjølv, fordi tunnelen held fram å verka.
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
Erstatt ppp0 i den regelen med grensesnittet frå ip route eller den køyrande grensesnittlista, og sjå så på teljaren medan ein LAN-vert lastar ei side. På ein rutar med éin leverandør er éin masquerade-regel for opplenka normalt nok. Ein andre regel for tunellgrensesnittet er ikkje ei erstatning for den første.
Legg så til klientvala som avgjer kva som kjem inn i tunnelen. Eit redirect-gateway-direktiv sender internettrafikken til klienten gjennom VPN-en, og utan det ber tunnelen berre rutene serveren dytter. Sjekk den resulterande rutetabellen før du rører DNS.
Del Wi-Fi-en med ein andre tabell
Éin rutetabell kan ikkje halda to standardruter. Ein andre SSID som må omgå tunnelen treng derfor sitt eige subnett og sin eigen tabell. Gi den tunnelerte SSID-en sitt eige område, og rut så berre det området inn i tunnelen med ein regel som vel tabellen.
Policy-ruting-pakkar på OpenWrt uttrykkjer akkurat den kombinasjonen. Det går òg for hand, med ein kjelderegel og ein tabell der standarden peikar på tunneleininga.
Sjekk delinga frå begge nettverka. Ein klient på den tunnelerte SSID-en skal visa utgangsadressa til VPN-en, og ein klient på den vanlege SSID-en skal visa leverandøren si. Når begge ser like ut, treff regelen feil kjelde eller tabellen blir aldri spurd. Test òg etter ein ny tilkopling, fordi ein regel som avheng av grensesnittnamnet, blir broten når eininga får nytt nummer.
Mistenk klokka og einingflagget
Flagget persist-tun lèt tunneleininga bli liggjande på plass gjennom omstartar. Det passar ein server og forvirrar ein klient der tilstanden skal byggjast opp att frå grunnen. Fjern det medan du feilsøkjer ein rutarklient, fordi ei eining som overlever ei mislukka forhandling, skjuler kva trinn som faktisk braut. Set det tilbake når klienten koplar til påliteleg, og ikkje før.
Klokka er den andre stille feilen. Ein rutar utan batteriklokke startar ved epoken, som betyr at sertifikatsjekkar feilar til NTP kjem på plass. Samanlikn loggtidsstempla med verkeleg tid før du rører eit sertifikat, fordi ein klient som koplar til eit minutt etter oppstart, vanlegvis ventar på tidssynkronisering.