MikroTik VPN korisnik ide predaleko: ograničite na jedan host i jedan port
PPP profil može smjestiti dodijeljenu adresu tunela u listu adresa, a jedan jump lanac može dopustiti jedan host i port prije odbacivanja.
Tunel se podiže, prijava uspijeva i svaki host na mreži odgovara. To nije pokvaren VPN; to je VPN bez modela dozvola. RouterOS autentificira račun i zatim usmjerava njegove pakete kao i svačije, pa firewall mora osigurati ograničenje. Dodavanje tog ograničenja bez kvarenja prijave cijeli je posao.
Autentifikacija završava tamo gdje dozvola počinje
Kad je PPP sesija podignuta, paketi klijenta ulaze u forward lanac kao promet s bilo kojeg drugog sučelja. Ako je routerova forward politika popustljiva, konzultant tu popustljivost nasljeđuje pri prijavi. Račun nikada nije nosio opseg, pa na računu nema što mijenjati. Skup pravila napisan je za zaposlenike i nova sesija mu se jednostavno pridružila.
Provjerite na koji se put zahtjev odnosi prije nego što išta napišete. Promet prema hostovima iza routera prolazi kroz forward, dok promet prema samom routeru, uključujući winbox i SSH, prolazi kroz input. Opseg koji pokriva samo forward ostavlja uređaj otvorenim za istog klijenta.
Oba lanca trebaju odluku, čak i ako je odluka ostaviti input zatvorenim. Taj izbor pripada zahtjevu za pristup, a ne naknadnoj misli.
Priložite sesiju imenovanoj listi
PPP profil može smjestiti adresu koju dodjeljuje u imenovanu listu adresa kad sesija počne. To pretvara prolaznu adresu tunela u nešto što firewall može usporediti po imenu, a unos nestaje kad sesija završi. Račun zatim nasljeđuje opseg iz svog profila, a ne iz pravila koje adresu tvrdo kodira.
Prvo stvorite profil, zatim secret eksplicitno povežite s njim. Secret koji još pokazuje na zadani profil reproducira izvorni problem.
Imenujte profil i listu tako da njihovi zadaci budu očiti i komentirajte oboje referencom zahtjeva. Jedan profil može služiti više ljudi s istim opsegom, dok lista i dalje identificira svaku živu sesiju. To je jeftinije za pregled od pravila po osobi.
/ppp profile add name=scoped-consultant remote-address=consultant-pool address-list=vpn-scoped-clients
/ppp secret add name=consultant password=... service=ovpn profile=scoped-consultant
Zabilježite dopuštenu uslugu u jednoj listi
Stavite dopušteni poslužitelj u njegovu vlastitu listu adresa umjesto da adresu ugrađujete u filtar pravilo. Lista se može revidirati, proširivati i komentirati, a pravilo koje je koristi ne mijenja se kad se poslužitelj preseli. Jedan unos izgleda pretjerano dok ne dođe drugi host, što se obično dogodi.
Uparite listu kad je adresa dinamička ili raspodijeljena po opterećenju, a uparite adresu izravno kad je rezervirana i stabilna. Svaki se izbor čita jasno ako komentar imenuje uslugu i vlasnika.
Ograničite protokol i port kao i host. Accept za host bez ograničenja porta otvara svaku uslugu koju taj host pokreće, što je šire nego što većina zahtjeva za pristup namjerava. Port je dio dozvole, a ne detalj koji se dodaje kasnije.
/ip firewall address-list add list=vpn-targets address=10.0.0.10 comment="consultant RDP target"
Poredajte jump prije svakog širokog accepta
Jump pravilo šalje proslijeđeni promet s ograničene liste u privatni lanac u kojem cijela politika stane u tri retka. Prvo pravilo prihvaća dopušteno odredište i port, a posljednje odbacuje sve ostalo. Jump mora stajati iznad svakog širokog accepta u forwardu, jer raniji accept znači da se jump nikad ne izvršava. Držite accept za established i related prije jumpa kako bi povratni promet i dalje tekao.
Provjerite da nijedno fasttrack pravilo ne može provesti taj promet pored ograničenog lanca. Fasttrack zaobilazi ostatak filtra putanje, a ograničena sesija koja je fasttrackana nije nimalo ograničena.
Ponovite odluku za input lanac ako routerove vlastite usluge trebaju biti nedostupne. Opseg koji blokira proslijeđeni promet i ostavlja winbox otvoren samo je napola dovršen.
/ip firewall filter
add chain=forward action=jump jump-target=scoped-vpn src-address-list=vpn-scoped-clients
add chain=scoped-vpn action=accept protocol=tcp dst-address-list=vpn-targets dst-port=3389
add chain=scoped-vpn action=drop
Provjerite brojačima i članstvom u listi
S klijenta testirajte dopuštenu uslugu i onu koja mora propasti, zatim pročitajte statistiku pravila na routeru. Brojači accept i drop pokazuju kojim je putem išao svaki paket, što klijent ne može vidjeti. Potvrdite i da se adresa žive sesije pojavila u ograničenoj listi.
Prazna lista znači da je račun na drugom profilu ili da je profil izgubio postavku liste adresa. Rastući drop brojač uz neuspjelu dopuštenu uslugu znači da se odredište ili port ne podudaraju s onim što klijent šalje.
Testirajte istu uslugu po imenu i po adresi prije nego što bilo što zaključite. Neuspjeh razrješavanja imena izgleda točno kao blokiran port s klijentove strane. Zatim zabilježite profil, obje liste i jedinu dopuštenu uslugu u zahtjev za pristup kako bi sljedeći pregled uspoređivao umjesto rekonstruirao.
/ip firewall filter print stats where chain=scoped-vpn
/ip firewall address-list print where list=vpn-scoped-clients