OpenWrt VPN zona, prosljeđivanje i maskiranje: što vam treba?
Ulaz u zonu, prosljeđivanje i maskiranje odgovaraju na različita pitanja. Odlučite što vaš VPN promet treba prije nego otvorite WAN zonu.
Tri promjene se pomiješaju kad god se VPN sretne s OpenWrt: otvaranje porta, dopuštanje prosljeđivanja i uključivanje maskiranja. One odgovaraju na različita pitanja i obično je samo jedna od njih stvarni zahtjev. Čitanje svake kontrole prema ulozi prometa koju vodi pretvara nagađanje u odluku i također govori koji simptom očekivati kada je promjena pogrešna. Počnite imenovanjem uloge koja nije uspjela, a ne kvadratića kojeg se sjećate.
Imenujte ulogu prometa prije nego dotaknete kontrolu
Ulaz u zonu odlučuje što može doći do samog rutera. Izlaz iz zone pokriva promet koji ruter sam stvara, prosljeđivanje zone je zadano za promet koji prolazi kroz zonu, a maskiranje odlučuje hoće li se izvorna adresa prepisati na izlazu. To su četiri različita pitanja, a politika zone odgovara na sva odjednom istom vrijednošću, zato je promjena na razini cijele zone grubo sredstvo. Imenovano pravilo može odgovoriti na jedno od njih bez diranja ostalih.
Korisna karta je po ulozi prometa, jer to je ono što možete promatrati kad nešto zakaže. Svaka uloga u nastavku ima jednu kontrolu koja je određuje i jedan simptom koji na nju upućuje:
| Traffic role | Control that decides it | Where it lives in the config | Symptom when it is wrong |
|---|---|---|---|
| A client reaching a listener on the router | Input policy of the zone that carries the connection, or a rule for the port | option input in the zone stanza, or a named rule | The handshake never completes and the tunnel log says nothing |
| A tunnel client reaching the router itself | Input policy of the tunnel zone | option input in the VPN zone | A ping to the gateway fails |
| A tunnel client reaching another LAN host | Forwarding from the tunnel zone to the LAN zone | config forwarding plus the zone assignment | The gateway answers and the file share times out |
| The router's own traffic leaving the WAN | Output policy, and translation if the far side needs it | option output and option masq | The tunnel never establishes, or replies vanish |
Slušatelj na ruteru treba jedno usko ulazno pravilo
OpenVPN poslužitelj na ruteru prima promet adresiran na ruter, pa njegova vanjska veza ovisi o ulaznoj politici zone koja ga nosi. Dopustite konfigurirani transport i port, a sve ostalo u toj zoni ostavite odbijeno. Jedno pravilo za port mnogo je manja promjena od dopuštanja na razini zone i upravo njega možete objasniti i nakon godinu dana.
Dvije stvari čine to pravilo sigurnim za zadržavanje: imenuje port koji usluga stvarno koristi i stoji uz definiciju zone kako bi sljedeća osoba vidjela zašto postoji. Retci u nastavku samo su oblik, a port zamjenjuje ono što je konfigurirano na poslužitelju. Promijenite taj port na oba mjesta kada se usluga preseli, jer pravilo ostavljeno na starom nevidljivo je do revizije.
config zone
option name 'wan'
option input 'REJECT'
option forward 'REJECT'
option output 'ACCEPT'
option masq '1'
config rule
option name 'allow-openvpn'
option src 'wan'
option proto 'udp'
option dest_port '1194'
option target 'ACCEPT'Provjerite prije ponovnog učitavanja, jer sintaksna pogreška u datoteci vatrozida može ostaviti ruter bez ispravnog skupa pravila. U izdanju koje koristi fw4 provjera je zasebna naredba i glasno pada umjesto da tiho prihvati neispravan blok. Ponovno učitajte tek nakon što provjera prođe i čuvajte prethodnu datoteku tamo odakle je možete vratiti.
fw4 check
service firewall reloadZahtjev klijenta prolazi kroz prosljeđivanje, ne kroz ulaz
Nakon autentifikacije zahtjev klijenta tunela za LAN uslugom stvara proslijeđeni tok, pa je kontrola koja ga određuje odnos prosljeđivanja između zone tunela i LAN zone. Dodijelite sučelje tunela željenoj zoni, zatim deklarirajte smjer, izvore i uslugu. Dodjela zone je ono što pravilu prosljeđivanja daje smisao i oboje ima smisla samo čitano zajedno. Odnos prosljeđivanja koji kao izvor navodi zonu tunela, a kao odredište LAN zonu, čita se kao jedna namjerna odluka, dok se dva dopuštanja na razini zone čitaju kao nesreća.
Dolazak do samog rutera i dalje koristi ulazni put, zato ping prema pristupniku ne govori ništa o dijeljenju datoteka iza njega. Ta dva neuspjeha žive u različitim blokovima i popravljaju se različitim izmjenama. Zapišite oba puta odvojeno prije nego promijenite bilo koji.
Maskiranje je odluka o usmjeravanju, a ne dopuštenje
Maskiranje prepisuje izvornu adresu odabranog odlaznog prometa. Može spasiti izlazni dizajn u kojem daleka strana nema povratni put i također skriva adrese pojedinih klijenata od svake usluge koja bilježi ili odobrava po adresi. Isključivanje je izbor usmjeravanja povratnog puta, a ne sigurnosni prekidač koji zatvara ulaznu rupu. Tunel koji radi s uključenim prevođenjem, a pada u trenutku isključivanja, obično ima povratni put koji nedostaje, a ne pravilo vatrozida koje nedostaje.
Usmjerena alternativa zahtijeva povratni put na dalekoj strani umjesto prevođenja. Nijedna opcija ne daje dopuštenje vatrozida ni račun aplikacije, zato isključivanje maskiranja gotovo nikad ne popravlja klijenta tunela koji ne može doći nikamo. IPv4 i IPv6 politiku također tretirajte odvojeno, jer jedna postavka prevođenja ne opisuje obje obitelji.
Dokažite odluku dopuštenim i odbijenim zahtjevom
Pošaljite jedan zahtjev koji bi trebao biti dopušten i jedan koji bi trebao biti odbijen, zatim odredite kontrolu koja je donijela svaku odluku. Stranica koja se slučajno učita nije dokaz; dokaz je pravilo koje se poklopilo, u lancu u kojem se poklopilo. Odbijanje je jednako važno kao uspjeh, jer pokazuje da politika nešto radi, a ne da je sve dopušteno.
Dvije naredbe daju vam taj dokaz u trenutnom izdanju. Brojač na odgovarajućem pravilu pomiče se kada se zahtjev prihvati, a zapisnik pokazuje odbacivanje ako ste uključili bilježenje za to pravilo:
nft list chain inet fw4 forward_wan
logread -f | grep -i -E 'DROP|REJECT'Zadržite administrativni put koji još možete koristiti prije nego promijenite bilo koju politiku vatrozida i slijedite postupak provjere i vraćanja vlasnika konfiguracije. Promjena koja vas zaključa izvan rutera nije rezultat testa, to je drugi incident. Zapišite zonu i ulogu prometa uz svako promatranje, kako bi par rezultata objasnio politiku umjesto da opisuje sretno učitavanje stranice.