OpenVPN klijent za cijeli LAN na OpenWrtu: ispravan redoslijed
Vlasništvo nad sučeljem, pravila zone, maskiranje i tablice po SSID-u četiri su odvojena posla. Obavite ih redom i tunel na razini cijelog usmjerivača prestaje vam se suprotstavljati.
Četiri neovisna posla stavljaju cijeli LAN usmjerivača iza jednog tunela. Tunelski uređaj treba vlasnika, zonu vatrozida, odredište prijevoda prema uplinku i, ako neki klijenti moraju ostati izvan VPN-a, usmjeravanje prema izvorišnoj adresi. Tunelu koji se poveže, a ništa ne prolazi, obično nedostaje jedna od te četiri stvari. Rad u redoslijedu ovisnosti znači da kvar na kraju pripada koraku koji ste upravo promijenili. Svaki korak u nastavku završava nečim što možete promatrati, što sljedeći korak čuva od nagađanja.
Odredite što dijeli tunel
Usmjerivač koji dijeli Wi-Fi i DHCP može sam pokretati klijenta. Tako svaki priključeni uređaj završava iza tunela bez postavljanja po uređaju, i to je raspored koji želi većina malih lokacija. To je ujedno i raspored s najvećim dosegom kvara kad tunel padne, jer svaki uređaj odjednom gubi put. Ništa na LAN-u ne zadržava ispravan izlazni put.
Drugi usmjerivač iza prvoga, koji pokreće klijenta s vlastitom podmrežom, ograničava tunel na svoje uređaje. Lakše ga je ukloniti i lakše objasniti onome tko ga naslijedi. Cijena je dosezljivost između dviju strana bez rute ili prosljeđivanja porta.
U svakom slučaju, neka LAN podmreže budu različite. Identični rasponi čine da jedna strana izgleda izravno povezana, a crna rupa koja iz toga nastane satima izgleda kao kvar VPN-a.
Dajte tunelu vlasnika
Deklarirajte tunel kao mrežno sučelje s imenom, uređajem i bez vlastitog protokola. Mrežni sustav tada stvara i upravlja uređajem, a sve dalje upućuje na sučelje po imenu, a ne po uređaju. To je ono što zoni omogućuje da ga pronađe.
Ne stvarajte isti uređaj na dva mjesta. Ručno izrađen tunel uz deklarirano sučelje stvara uređaj koji postoji, ali nije u zoni, ili onaj koji nestaje pri ponovnom učitavanju. Oboje izgleda kao da je klijent zakazao, a nijedno ne daje pogrešku koja imenuje stvarni uzrok. Odaberite deklarativni put i izbrišite ručni.
Držite ime identičnim u mrežnoj, vatrozidnoj i VPN konfiguraciji. Zona navodi mreže po imenu, pa tipfeler ostavlja tunel izvan svake zone dok samo sučelje izgleda ispravno. Ispravno sučelje bez pravila najteže je stanje uočiti.
Stavite ga u zonu, pa prosljeđujte u nju
Zona vatrozida mjesto je gdje žive pravila: ulaz, izlaz, prosljeđivanje i maskiranje. Tunelom koji nije u zoni upravljaju zadane vrijednosti koje niste odabrali, a to rijetko odgovara potrebama klijenta na usmjerivaču. Blokovi u nastavku deklariraju sučelje, smještaju ga u zonu i dopuštaju LAN promet u tu zonu.
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'
Na izdanjima starijim od 21.02 isti redak sučelja piše se kao option ifname, pa prije lijepljenja provjerite koji oblik instalirani firmware parsira. Blok za prosljeđivanje dopuštenje je koje LAN prometu uopće omogućuje korištenje tunela. Bez njega uređaj je podignut, klijent je povezan, a nijedan LAN host ne dolazi do tunela. To je najčešća prijava da je veza uspostavljena, ali interneta nema kod klijenata na usmjerivaču.
Maskiranje na VPN zoni skuplja svaku LAN adresu u tunelsku adresu usmjerivača prije nego paket izađe. To uklanja potrebu za povratnom rutom do vaše podmreže na drugoj strani.
Ako druga strana već usmjerava vaš LAN, isključivanje maskiranja zadržava izvorišne adrese vidljivima i čini zapise po klijentu smislenima. Odaberite jedno i zapišite koje, jer dvije mogućnosti kasnije stvaraju različita potporna pitanja. Uklanjanje zadanog prosljeđivanja s LAN-a na WAN odvojena je odluka s vlastitom posljedicom. Uklonite ga i vlastiti pristup usmjerivača internetu odlazi zajedno s njim.
Imenujte stvarni uplink u NAT-u
Na firmwareu na kojem se pravilo prijevoda piše ručno, odlazno sučelje je polje koje odlazi naopako. Pravilo koje imenuje vlan2 ne radi ništa kad sesija završava na ppp0. Pravilo bez ikakvog sučelja može prevoditi promet koji je trebao ostati privatan. Nijedna od tih pogrešaka ne najavljuje se, jer tunel nastavlja raditi.
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
Zamijenite ppp0 u tom pravilu sučeljem iz ip route ili popisa aktivnih sučelja, pa promatrajte brojač dok LAN host učitava stranicu. Na usmjerivaču s jednim pružateljem jedno pravilo maskiranja za uplink obično je dovoljno. Drugo pravilo za tunelsko sučelje nije zamjena za prvo.
Zatim dodajte opcije klijenta koje odlučuju što ulazi u tunel. Direktiva redirect-gateway šalje internetski promet klijenta kroz VPN, a bez nje tunel nosi samo rute koje poslužitelj gura. Provjerite dobivenu tablicu ruta prije nego što dirnete DNS.
Podijelite Wi-Fi drugom tablicom
Jedna tablica ruta ne može držati dva zadana puta. Drugi SSID koji mora zaobići tunel zato treba vlastitu podmrežu i vlastitu tablicu. Dodijelite tuneliranom SSID-u vlastiti raspon, pa usmjerite samo taj raspon u tunel pravilom koje odabire tablicu.
Paketi za usmjeravanje po pravilima na OpenWrtu izražavaju upravo tu kombinaciju. Ručno to također funkcionira, s pravilom prema izvorištu i tablicom čiji zadani put pokazuje na tunelski uređaj.
Provjerite podjelu s obje mreže. Klijent na tuneliranom SSID-u trebao bi pokazivati izlaznu adresu VPN-a, a klijent na običnom SSID-u adresu pružatelja. Kad oba izgledaju isto, pravilo pogađa pogrešno izvorište ili se tablica nikad ne konzultira. Testirajte i nakon ponovnog spajanja, jer pravilo koje ovisi o imenu sučelja puca kad se uređaj prenumerira.
Posumnjajte na sat i zastavicu uređaja
Zastavica persist-tun ostavlja tunelski uređaj na mjestu kroz ponovna pokretanja. To odgovara poslužitelju i zbunjuje klijenta čije stanje treba graditi iznova. Uklonite je dok rješavate problem klijenta na usmjerivaču, jer uređaj koji preživi neuspješno pregovaranje skriva koji je korak doista pukao. Vratite je kad se klijent pouzdano povezuje, i ne prije.
Sat je drugi tihi kvar. Usmjerivač bez baterijski podržanog sata kreće od epohe, što znači da provjere certifikata padaju dok NTP ne sustigne. Usporedite vremenske oznake u zapisima sa stvarnim vremenom prije nego što dirnete certifikat, jer klijent koji se poveže minutu nakon podizanja obično čeka na sinkronizaciju vremena.